Einrichten der OCCU mit dem Funkmodul HM-MOD-RPI-PCB

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

carbolineum
Beiträge: 116
Registriert: 10.02.2012, 12:52
Danksagung erhalten: 2 Mal

Einrichten der OCCU mit dem Funkmodul HM-MOD-RPI-PCB

Beitrag von carbolineum » 27.09.2015, 18:04

Fragen und Diskussion bitte im Thread http://homematic-forum.de/forum/viewtop ... 56&t=26872

Hallo,

hier ein kurze Anleitung, wie man die OCCU mit dem HM-MOD-RPI-PCB grundsätzlich zum Laufen bekommt. Natürlich muss an vielen Stellen noch Feinschliff betrieben werden.

Dies ist Teil 1: Installation und Konfiguration des RFD und des Raspbian für die Verwendung des RPI-Funkmoduls.

Ein RPI mit einem aktuellen Raspbian und eingebautem Modul sollte bereits vorhanden sein ;-). Grundkenntnisse in Linux ebenfalls.

Der Einfachheit halber wurden alle Befehle auf dem RPI als root abgesetzt.

Das Funkmodul benutzt den UART des RPI, welcher beim Raspbian aber standardmäßig für die serielle Konsole verwendet wird. Deshalb müssen wir diese Konsolenfunktion deaktivieren.

Dazu öffnen wir zunächst die Datei /boot/cmdline.txt und ändern dort den Parameter

Code: Alles auswählen

console=ttyAMA0
in

Code: Alles auswählen

console=tty1
Dann öffnen wir die Datei /etc/inittab und suchen nach folgender Zeile:

Code: Alles auswählen

T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
Diese Zeile muss auskommentiert werden, indem man eine Raute an den Zeilenanfang setzt:

Code: Alles auswählen

#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
Um die Änderungen wirksam werden zu lassen, starten wir den RPI neu.

Nach dem Reboot legen wir einen leeren Ordner /opt/hm an. Hierhin wird die OCCU später installiert.

Nun wechseln wir auf dem RPI in einen beliebigen Ordner, z.B. /root und laden die aktuelle Version der OCCU herunter mit

Code: Alles auswählen

wget https://github.com/eq-3/occu/archive/master.zip
Das Archiv entpacken wir mit

Code: Alles auswählen

unzip master.zip
und wechseln dann in den entpackten Ordner occu-master.

Dort gibt es einen Unterordner namens arm-gnueabihf. In diesen wecheln wir und rufen dort

Code: Alles auswählen

./install.sh
auf. Dadurch werden die OCCU-Dateien in den zuvor erstellten Ordner /opt/hm kopiert.

Ist das erfolgt, legen wir für den Ordner /hm/opt/etc/config noch einen symbolischen Link nach /etc/config an. Der wird benötigt, da im rfd scheinbar noch hardcodierte Pfade nach /etc/config existieren:

Code: Alles auswählen

ln -s /opt/hm/etc/config /etc/config
Jetzt öffnen wir mit einem Textediitor die Datei /etc/config/rfd.conf. Dort suchen wir nach folgendem Parameterblock: (Solltet ihr in Eurem Texteditor so komische ^M sehen, dann kommt das daher, dass die Datei im DOS-Format ist. Einfach ignorieren ;-) ).

Code: Alles auswählen

[Interface 0]
Type = CCU2
ComPortFile = /dev/ttyAPP0
AccessFile = /dev/null
ResetFile = /dev/ccu2-ic200
Diesen ändern wir wie folgt:

Code: Alles auswählen

[Interface 0]
Type = CCU2
ComPortFile = /dev/ttyAMA0
AccessFile = /dev/null
ResetFile = /sys/class/gpio/gpio18/value
Damit ist der für das Funkmodul zuständige Prozess rfd fertig konfiguriert. Damit der rfd aber mit dem Modul kommunizieren kann, muss er in der Lage sein, einen Reset-Befehl an das Funk-Modul zu senden. Um den Reset des Moduls auszulösen, muss der GPIO-Pin 18 auf High (1) gesetzt werden. Der muss mit den folgenden Befehlen darauf vorbereitet werden.

Zuerst müssen wir den gewünschten GPIO-Pin verfügbar machen, er wird sozusagen exportiert:

Code: Alles auswählen

echo 18 > /sys/class/gpio/export
Nun müssen wir dem GPIO-Pin noch sagen, ob er ein Ein- oder Ausgang werden soll. Wir brauchen hier einen Ausgang:

Code: Alles auswählen

echo out > /sys/class/gpio/gpio18/direction
Nun kann der rfd-Prozess den Reset des Modules bei Bedarf initiieren. (Siehe Parameter ResetFile in der rfd.conf)

Da die GPIO-Einstellungen nach einem Neustart des RPI verloren gehen, kann man die Konfiguration mit einem einfachen Initscript, welches man z.B. als /etc/init.d/mod-hm-uart speichert, automatisieren:

Code: Alles auswählen

#!/bin/sh
# description: GPIO fuer HM-MOD-UART initialisieren

### BEGIN INIT INFO
# Provides:             hm-mod-uart
# Required-Start:       $local_fs $remote_fs
# Required-Stop:        $local_fs $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Initialize HN-MOD-UART
### END INIT INFO

set -e

case "$1" in
'start')
        echo "Preparing GPIO for HM-MOD-UART..."
        if [ ! -d /sys/class/gpio/gpio18 ] ; then
                 echo 18 > /sys/class/gpio/export
                 echo out > /sys/class/gpio/gpio18/direction
                RETVAL=$?
        fi
        ;;
*)
        echo "Usage: $0 { start }"
        RETVAL=1
        ;;
esac
exit $RETVAL
Um das Script zu aktivieren, geben wir noch ein:

Code: Alles auswählen

update-rc.d mod-hm-uart defaults
Nun können wir mit den ersten Tests beginnen.

Wir starten den rfd manuell mit Debug-Logging als Vordergrundprozess und mit folgenden Parametern:

Code: Alles auswählen

export HM_HOME=/opt/hm
export LD_LIBRARY_PATH=$HM_HOME/lib
$HM_HOME/bin/rfd -c -l 0 -f /opt/hm/etc/config/rfd.conf
Wenn alles geklappt hat, beginnt die Ausgabe von rfd mit folgenden Zeilen:

Code: Alles auswählen

root@raspi-2:~/occu-master/arm-gnueabihf# $HM_HOME/bin/rfd -c -l 0 -f /opt/hm/etc/config/rfd.conf
2015/09/27 17:55:12.354 <Info> BidCoS-Service started
2015/09/27 17:55:12.356 <Info> XmlRpc Server is listening on TCP port 2001
2015/09/27 17:55:12.396 <Debug> () CCU2CommController::handleIdentifyEvent(): Handling incoming identify event.
2015/09/27 17:55:12.398 <Debug> () CCU2CommController::handleIdentifyEvent(): Coprocessor entered bootloader. Starting application.
2015/09/27 17:55:12.399 <Debug> () CCU2CommController::startCoprocessorApp(): Trying to start coprocessor application
2015/09/27 17:55:12.900  CCU2CommController::startCoprocessorAppThreadFunction(): Send start command
2015/09/27 17:55:13.337 <Debug> () CCU2CommController::handleIdentifyEvent(): Handling incoming identify event.
2015/09/27 17:55:13.337 <Debug> () CCU2CommController::handleIdentifyEvent(): Coprocessor entered application. Life is good.
2015/09/27 17:55:13.363 <Info> CCU2CommController::init(): Coprocessor Bootloader Version is: 1.0.3
2015/09/27 17:55:13.363 <Info> CCU2CommController::init(): Coprocessor Firmware Version is: 1.2.1
Sollte vomn rfd nachfolgende Ausgabe kommen, dann ist bei der Umsetzung der obigen Schritte etwas falsch gelaufen oder es existiert evtl. ein HW-Problem.

Code: Alles auswählen

root@raspi-2:~/occu-master/arm-gnueabihf# echo 0 /sys/class/gpio/gpio18/value
0 /sys/class/gpio/gpio18/value
root@raspi-2:~/occu-master/arm-gnueabihf# echo 0 >/sys/class/gpio/gpio18/value
root@raspi-2:~/occu-master/arm-gnueabihf# $HM_HOME/bin/rfd -c -l 0 -f /opt/hm/etc/config/rfd.conf
2015/09/27 17:29:25.175 <Info> BidCoS-Service started
2015/09/27 17:29:25.177 <Info> XmlRpc Server is listening on TCP port 2001
2015/09/27 17:29:30.182 <Debug> () CCU2CommController::startCoprocessorApp(): Trying to start coprocessor application
2015/09/27 17:29:30.683  CCU2CommController::startCoprocessorAppThreadFunction(): Send start command
2015/09/27 17:29:31.684 <Debug> () CCU2CommController::waitForCoProcessorResponse(): Timeout while waiting for response.

2015/09/27 17:29:35.184 <Fatal error> CCU2CommController::init(): Init failed. Cannot start coprocessor application.
2015/09/27 17:29:36.186 <Debug> () CCU2CommController::waitForCoProcessorResponse(): Timeout while waiting for response.

2015/09/27 17:29:36.187 <Error> () CCU2CommController::setCSMACAEnabled(): Error disabling CSMA/CA.
2015/09/27 17:29:37.189 <Debug> () CCU2CommController::waitForCoProcessorResponse(): Timeout while waiting for response.

2015/09/27 17:29:37.191 <Error> No BidCoS-Interface available
2015/09/27 17:29:37.193 <Warning> Error initializing interfaces
Sollte alles einwandfrei laufen, empfiehlt es sich, noch ein kleines Initscript zu erstellen, um einen automatischen Start beim Booten des Raspberrys zu ermöglichen:

Dazu legen erstellen wir die Datei /etc/init.d/rfd mit folgendem Inhalt:

Code: Alles auswählen

### BEGIN INIT INFO
# Provides:             rfd
# Required-Start:       $local_fs $remote_fs
# Required-Stop:        $local_fs $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Start rfd
### END INIT INFO

start() {
        echo -n "Starting rfd: "
        export HM_HOME=/opt/hm
        export LD_LIBRARY_PATH=$HM_HOME/lib
        start-stop-daemon -S -q -m -p /var/run/rfd.pid --exec $HM_HOME/bin/rfd -- -d -l 0 -f /opt/hm/etc/config/rfd.conf
        echo "OK"
}
stop() {
        echo -n "Stopping rfd: "
        start-stop-daemon -K -q -p /var/run/rfd.pid
        echo "OK"
}
restart() {
        stop
        start
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        restart
        ;;
  *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $?
Aktiviert wird das Script dann mit

Code: Alles auswählen

update-rc.d rfd defaults

Teil 2: Installation und Konfiguration der ReGaHSS (WebUI) und des lighttpd.

Nachdem der rfd nun läuft, kommt der umfangreichste Teil, da in der WebUI insbesondere die Konfigurationsseiten der Systemsteuerung noch vollständig auf eine Original-CCU1 bzw. CCU2 ausgelegt sind.

2.1 lighttpd

Zunächst sorgen wir dafür dass der HTTP-Server lighttpd gestartet wird. Die ReGaHss hat zwar auch einen eigenen Webserver, welcher aktiv ist. Dieser wird aber nicht verwendet.

Durch den Aufruf von install.sh wie in Teil 1 beschrieben, sollten alle notwendigen Dateien für den lighttpd schon an der richtigen Stelle liegen.

Am einfachsten bauen wir uns zuerst wieder ein Init-Script, über welches wir dann den lighttpd automatisch und/oder manuell starten können.

Der Dateiname lautet dann /etc/init.d/lighttpd.

Code: Alles auswählen

### BEGIN INIT INFO
# Provides:             lighttpd
# Required-Start:       $local_fs $remote_fs
# Required-Stop:        $local_fs $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Start lighttpd
### END INIT INFO

start() {
        echo -n "Starting lighttpd: "
        export HM_HOME=/opt/hm
        export LD_LIBRARY_PATH=$HM_HOME/lib
        start-stop-daemon -S -q -p /var/run/lighttpd.pid --exec $HM_HOME/bin/lighttpd -- -f /opt/hm/etc/lighttpd/lighttpd.conf -m /opt/hm/lib/lighttpd/
        echo "OK"


}
stop() {
        echo -n "Stopping lighttpd: "
        start-stop-daemon -K -q -p /var/run/lighttpd.pid
        echo "OK"
}
restart() {
        stop
        start
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        restart
        ;;
  *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $?
Aktiviert wird das Script mit

Code: Alles auswählen

update-rc.d lighttpd defaults
Zunächst sollte sichergestellt sein, dass kein anderer Webserver-Prozess auf Port 80 lauscht.
Dann starten wir den lighttpd manuell mit

Code: Alles auswählen

service lighttpd start
Damit ist der lighthttpd fertig eingerichtet und man kann sich zur Kontrolle mit

Code: Alles auswählen

pgrep lighttpd
dessen Prozess-ID ausgeben lassen.

Erfolgt keine Ausgabe, ist beim Start etwas schief gelaufen, und man sollte einen Blick in /var/log/lighttpd-error.log werfen.

2.2 ReGaHss

Nun widmen wir uns der ReGaHss, in diesem Bereich sind eine ganze Reihe Anpassungen zu machen.

Zunächst kopieren wir die Seiten der WebUI an die richtige Stelle. Die Quellseiten befinden sich im Ordner occu-master/WebUI, dort wechseln wir hinein.

Mit

Code: Alles auswählen

cp -a bin www /opt/hm
werden die Dateien kopiert.

Dann fehlen noch einige wichtige Dateien in /opt/hm/etc/config, die wir beispielhaft wie folgt anlegen:

1. /opt/hm/etc/config/syslog

Code: Alles auswählen

LOGHOST=192.168.0.123
LOGLEVEL_RFD=0
LOGLEVEL_HS485D=0
LOGLEVEL_REGA=0
2. /opt/hm/etc/config/netconfig

Code: Alles auswählen

HOSTNAME=raspi-2
MODE=MANUAL
CURRENT_IP=192.168.0.1
CURRENT_NETMASK=255.255.255.0
CURRENT_GATEWAY=192.168.0.253
CURRENT_NAMESERVER1=192.168.0.1
CURRENT_NAMESERVER2=8.8.8.8
IP=192.168.0.36
NETMASK=255.255.255.0
GATEWAY=192.168.0.253
NAMESERVER1=192.168.0.1
NAMESERVER2=8.8.8.8
CRYPT=0
3. /opt/hm/etc/config/TZ

Code: Alles auswählen

CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
4. /boot/VERSION

Code: Alles auswählen

VERSION=2.12.0
Damit später das Systemprotokoll, die Gerätestati und ähnliches in der WebUI korrekt dargestellt werden können, muss noch ein symbolischer Link erstellt werden.

Code: Alles auswählen

ln -s /opt/hm/www /www
Jetzt legen wir uns ein weiteres Initscript /etc/init.d/ReGaHss an:

Code: Alles auswählen

### BEGIN INIT INFO
# Provides:             ReGaHss
# Required-Start:       $local_fs $remote_fs
# Required-Stop:        $local_fs $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Start ReGaHss
### END INIT INFO

start() {
        echo -n "Starting ReGaHss: "
        export HM_HOME=/opt/hm
        export LD_LIBRARY_PATH=$HM_HOME/lib
        start-stop-daemon -S -b -q -m -p /var/run/ReGaHss.pid --exec $HM_HOME/bin/ReGaHss -- -l 0 -f /opt/hm/etc/rega.conf
        echo "OK"
}
stop() {
        echo -n "Stopping ReGaHss: "
        start-stop-daemon -K -q -p /var/run/ReGaHss.pid
        echo "OK"
}
restart() {
        stop
        start
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        restart
        ;;
  *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit $?
und aktivieren es mit

Code: Alles auswählen

update-rc.d ReGaHss defaults
Jetzt starten wir den Prozess mit

Code: Alles auswählen

service ReGaHss start
Nun sollten wir mit dem Webbrowser bereits die WebUI auf dem Raspi aufrufen können. Geräte anlernen und bedienen sollte bereits funktionieren.

In der Systemsteuerung funktioniert jetzt noch nicht alles wie erwartet, hier müssen wir einiges an den Konfigurationsseiten anpassen.

syslog: Damit die ReGaHss den Syslog-Server neu starten kann, muss in der Datei /opt/hm/www/config/cp_maintenance.cgi

ab Zeile 904

Code: Alles auswählen

 catch {exec killall syslogd}
 catch {exec killall klogd}
 exec /etc/init.d/S01logging start
geändert werden in

Code: Alles auswählen

# catch {exec killall syslogd}
# catch {exec killall klogd}
exec /etc/init.d/rsyslog restart
Zusatzsoftware einspielen: Damit Zusatzsoftware grundsätzlich eingespielt werden kann, sind die folgenden Anpassungen nötig. Es wird aber nicht alle Zusatz-Software funktionieren, da deren Autoren sie noch für diese OCCU-Version anpassen müssten. Hier geht es lediglich um den Mechanismus zur Installation/Deinstallation.

Für den Zusatzsoftware-Mechanismus wird noch ein Shellscript benötigt, welches wir unter /opt/hm/bin/firmware_update.sh mit folgendem Inhalt erstellen. Ich habe es mir aus dem LXCCU-Projekt "ausgeliehen".

Code: Alles auswählen

#!/bin/bash
# Adopted from LXCCU-Project file /bin/update_firmware.run

log() {
  logger -t homematic -p user.notice $1
}

#echo "OCCU: Entering addon install mode"
log "OCCU: Entering addon install mode"
if [ ! -f /var/new_firmware.tar.gz ]; then
  log "OCCU: addon image archive does not exist. Nothing to do"
  #echo "OCCU: addon image archive does not exist. Nothing to do"
  exit
fi

#echo "OCCU: extract addon archive"
log "OCCU: extract addon archive"
cd /var
cat new_firmware.tar.gz | gunzip | tar x
rm new_firmware.tar.gz
if [ ! -x /var/update_script ]; then
  log "OCCU: Error unzipping addon image archive. Nothing to do"
  #echo "OCCU: Error unzipping addon image archive. Nothing to do"
  exit
fi

log "OCCU: prepare mount points to simulate ccu"
#echo "OCCU: prepare mount points to simulate ccu"
cat /var/update_script | sed -r 's/mount -t ubifs ubi0:root ([\/\w\-]*)/mount -o bind \/ \1/' > /var/update_script_prepare
cat /var/update_script_prepare | sed -r 's/mount -t ubifs ubi1:user ([\/\w\-]*)/mount -o bind \/usr\/local \1/' > /var/update_script

log "OCCU: start update_script as OCCU"
#echo "OCCU: start update_script as OCCU"
chmod +x /var/update_script
cd /var/
/var/update_script CCU2

# Fallback
/sbin/reboot
Dann ändern wir noch die Datei /opt/hm/www/config/cp_software.cgi wie folgt:

Ab Zeile 506 die Prozedur

Code: Alles auswählen

proc action_install_start {} {
    if {[isOldCCU]} {
        exec /sbin/init -q
    } else {
        exec /bin/kill -SIGQUIT 1
    }^M
}^M
ändern in

Code: Alles auswählen

proc action_install_start {} {
    if {[isOldCCU]} {
        exec /sbin/init -q
    } else {
        #exec /bin/kill -SIGQUIT 1
        # OCCU: Erst noch die homematic.regadom sichern
        rega system.Save()
        # OCCU: Then execute firmware update script
        exec /opt/hm/bin/firmware_update.sh
    }
}
Nun sollte das Einspielen von Zusatz-Software prinzipiell klappen.

Backups erstellen und einspielen: Damit wir Backups erstellen und einspielen können, müssen folgende Änderungen vorgenommen werden:

Zunächst muss dass Original-config-Verzeichnis (/opt/hm/etc/config) nach /usr/local/etc/verlagert werden. Dort wird es beim Backup und Restore erwartet. Damit aber auch die OCCU weiterhin funktioniert, erstellen wir einige symbolische Links.

- Erstmal alle HM-Prozesse beenden, (rfd, lighttpd, ReGaHss), dazu kann man die Initscripte nehmen.
- Dann sicherstellen, dass es im Moment kein Verzeichnis /usr/local/etc/config gibt. Sollte eigentlich nicht sein.
- Den in Teil 1 (rfd) erstellten symbolischen Link in /etc/config löschen wir wieder mit

Code: Alles auswählen

rm /etc/config
Nun verlagern wir das config-Verzeichnis und erstellen die passenden Symlinks:

Code: Alles auswählen

mv /opt/hm/etc/config /usr/local/etc
ln -s /usr/local/etc/config /etc
ln -s /usr/local/etc/config /opt/hm/etc
und starten alle Prozesse wieder.

Für Backup und Restore wird u.a. ein Dienstprogramm namens crypttool verwendet. Damit die WebUI dieses ausführen kann, erstellen wir ein Wrapper-Script /bin/crypttool mit folgenden Inhalt:

Code: Alles auswählen

#!/bin/sh
export HM_HOME=/opt/hm
export LD_LIBRARY_PATH=$HM_HOME/lib
exec $HM_HOME/bin/crypttool $@
und geben diesem die Ausführungsrechte mit

Code: Alles auswählen

chmod +x /bin/crypttool
Dann passen wir noch das Script /opt/hm/www/config/cp_security.cgi an, welches einige Befehle enthält, die auf dem Raspi nicht benötigt werden:

Ab Zeile 477:

Code: Alles auswählen

                exec umount /usr/local
                exec /usr/sbin/ubidetach -p /dev/mtd6
                exec /usr/sbin/ubiformat /dev/mtd6 -y
                exec /usr/sbin/ubiattach -p /dev/mtd6
                exec /usr/sbin/ubimkvol /dev/ubi1 -N user -m
                exec mount /usr/local
ändern in

Code: Alles auswählen

                # exec umount /usr/local^M
                # exec /usr/sbin/ubidetach -p /dev/mtd6
                # exec /usr/sbin/ubiformat /dev/mtd6 -y
                # exec /usr/sbin/ubiattach -p /dev/mtd6
                # exec /usr/sbin/ubimkvol /dev/ubi1 -N user -m
                # exec mount /usr/local
Damit sollte das Backup und Restore funktionieren. Ein einfacher Test verlief bei mir erfolgreich.

Der nächste Teil, HMServer einrichten kommt in Kürze. Dann verschwindet auch die Warnung mit den VirtualDevices.

Viel Spass beim Experimentieren :)

P.S.: Alles ohne Gewähr, Fehlerfreiheit ist nicht garantiert. Wenn jemandem etwas auffällt, korrigiere ich es gerne.

Viele Grüße

Michael
Zuletzt geändert von carbolineum am 26.11.2015, 15:32, insgesamt 3-mal geändert.

Benutzeravatar
jmaus
Beiträge: 9862
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 464 Mal
Danksagung erhalten: 1880 Mal
Kontaktdaten:

Re: Einrichten der OCCU mit dem Funkmodul HM-MOD-RPI-PCB

Beitrag von jmaus » 29.09.2015, 10:18

Danke für die Anleitung. Hab das ganze jetzt mal umgesetzt und es funktioniert wunderbar soweit. Bitte dann sobald wie möglich die anderen Teile der Anleitung posten damit man auch Sachen wie das WebUI, etc. noch installiert bekommt.
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

kbach
Beiträge: 112
Registriert: 21.01.2014, 14:24
System: Alternative CCU (auf Basis OCCU)
Wohnort: bei Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 2 Mal

Re: Einrichten der OCCU mit dem Funkmodul HM-MOD-RPI-PCB

Beitrag von kbach » 12.10.2015, 09:37

Hallo,
ich habe das Funkmodul erfolgreich eingerichtet. Die CCU läuft auch. Ich kann auch Aktoren anlernen. Leider komme ich aber nicht in den Menüpunkt 'Zentrale Wartung' (mit meiner Vermutung, es könnte ein Java- Problem sein bin ich nicht weitergekommen). Somit kann ich mein Backup aus der CCU1 nicht übernehmen. Es kommt auch ständig die Meldungen - Eine Komponente der Homematic ist nicht verfügbar - oder so ähnlich.
Bis hierher zu kommen war es für mich schon schwierig. Das install-hm.sh kopiert ja nicht alle Verzeichnisse. So habe ich die Verzeichnisse Firmware und WebUI manuell kopiert.
Bei den anderen Verzeichnissen, wie z.B. CCU2 weiß ich nicht ob die gebraucht werden. Wenn ja, weiß ich nicht wohin diese zu kopieren sind. Bei der Analyse der Verzeichnisse auf der CCU bin ich dabei nicht weitergekommen.
Nun würde ich gern wissen, ob diese Anleitung fortgeführt wird oder ob dieser Weg z.Z. eine Sackgasse ist.
Ich habe auch das Geschehen um RaspberryMatic verfolgt und auch hiermit eine erste Installation gemacht. Hier lohnen sich für mich weitere Tests nicht solange der CuxD hierfür nicht verfügbar ist.
Ich würde aber auch nur ungern einen Raspi nur für die Homematic einsetzen, da ich diverse Dinge (z.B. Alarmanrufe, Sprachausgaben, ...) um die Homematic herum auf der Basis eines Raspi gebaut habe. Das würde ich natürlich gern auf einem Gerät vereinen.

Mit meiner CCU1 bin ich am Ende. Hier dauern manche Aufrufe im WebUI mehr als 20 Minuten. Ich bin also stark an diesem Lösungsweg interessiert!

Gruß, kbach

carbolineum
Beiträge: 116
Registriert: 10.02.2012, 12:52
Danksagung erhalten: 2 Mal

Re: Einrichten der OCCU mit dem Funkmodul HM-MOD-RPI-PCB

Beitrag von carbolineum » 12.10.2015, 14:12

Hi,

bin leider noch nicht dazu gekommen, hier weiterzuschreiben, ich denke Ende der Woche ist es soweit.

In aller Kürze: Die Rega erwartet, dass im Config-Ordner bereits bestimmte Dateien existieren. Fehlen diese, funktionieren einige Seiten der Systemsteuerung nicht korrekt.

Lege mal folgende Dateien in /opt/hm/etc/config an. Den Inhalt dieser Beispieldateien kannst Du im Anschluss über die Menüs der Systemsteuerung auf Deine Bedürfnisse anpassen:


1. /opt/hm/etc/config/syslog

Code: Alles auswählen

LOGHOST=192.168.0.123
LOGLEVEL_RFD=5
LOGLEVEL_HS485D=1
LOGLEVEL_REGA=0
2. /opt/hm/etc/config/netconfig

Code: Alles auswählen

HOSTNAME=raspi-2
MODE=MANUAL
CURRENT_IP=192.168.0.1
CURRENT_NETMASK=255.255.255.0
CURRENT_GATEWAY=192.168.0.253
CURRENT_NAMESERVER1=192.168.0.1
CURRENT_NAMESERVER2=8.8.8.8
IP=192.168.0.36
NETMASK=255.255.255.0
GATEWAY=192.168.0.253
NAMESERVER1=192.168.0.1
NAMESERVER2=8.8.8.8
CRYPT=0
3. /opt/hm/etc/config/TZ

Code: Alles auswählen

CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
Noch ein Tipp: im /tmp des Raspi liegen bei Fehlern in der WebUI häufig Dateien mit dem Namen cgimail.*. Darin sind meist wertvolle Informationen über die Fehlerursache zu finden.

Backups einspielen habe ich noch nicht probiert, wird aber bestimmt auch noch anpassungen erfordern. Probiere ich die Tage mal aus.

Viele Grüße

Michael

kbach
Beiträge: 112
Registriert: 21.01.2014, 14:24
System: Alternative CCU (auf Basis OCCU)
Wohnort: bei Berlin
Hat sich bedankt: 5 Mal
Danksagung erhalten: 2 Mal

Re: Einrichten der OCCU mit dem Funkmodul HM-MOD-RPI-PCB

Beitrag von kbach » 12.10.2015, 15:38

Hallo Michael,
vielen Dank für die Hinweise. Ein Stück hat mich das weitergebracht. Ich komme jetzt auch in den Menüpunkt 'Zentrale Wartung' .
Dazu mußte ich aber die Datei VERSION nach /root kopieren. Die gehört auf dem Raspi zukünftig aber bestimmt nicht dahin.
Die Info dazu fand ich in der von Dir genannten Datei /tmp/cpi...
Das war's dann aber auch schon an Fortschritten. Backup erstellen bzw. importieren geht nicht. Beim Erstellen hat er ein Problem mit der Datei crypttool. Beim einspielen meint er meine Datei sei keine Backupdatei.
Zusatzsoftware installieren geht ebenfalls nicht. Auch hier habe ich keinen Hinweis auf eine Fehlerquelle finden können.
Wie ich jetzt gesehen habe komme ich auch nicht in den Menüpunkt 'Allgemeine Einstellungen'. Da gab es auch keinen Hinweis unter /tmp/cgi...

Das ist dann wohl noch eine größere Baustelle. Ich warte dann lieber Deine Aktivitäten ab.

Vielen Dank für die Unterstützung

Gruß, kbach

Nrgmc3
Beiträge: 21
Registriert: 19.04.2007, 15:55

Re: Einrichten der OCCU mit dem Funkmodul HM-MOD-RPI-PCB

Beitrag von Nrgmc3 » 17.10.2015, 10:08

Hallo Michael!

Vielen Dank für den ersten Teil der Anleitung!
Weißt du schon, wann du den Rest online stellst?
Kenne mich da nicht so aus, und es wäre einfacher von einem erfahrenen das alles zu kopieren! ;-)

Gruß

rid
Beiträge: 15
Registriert: 31.10.2014, 10:55

Re: Einrichten der OCCU mit dem Funkmodul HM-MOD-RPI-PCB

Beitrag von rid » 17.10.2015, 20:33

Moin carbolineum,

erst mal VIELEN DANK! Top Arbeit die du hier Lieferst!!

Deiner Anleitung konnte ich soweit komplett folgen und habe - meines Erachtens nach - jeden Schritt erfolgreich umgesetzt. Leider funktioniert es nicht so wie bei dir und den anderen.

Code: Alles auswählen

2015/10/17 18:54:13.172 <Info> BidCoS-Service started
2015/10/17 18:54:13.180 <Info> XmlRpc Server is listening on TCP port 2001
2015/10/17 18:54:13.189 <Error> CCU2CommController::init(): Init failed. Cannot reset coprocessor. (Hint: Cannot write reset)
2015/10/17 18:54:13.194 <Error> No BidCoS-Interface available
2015/10/17 18:54:13.196 <Warning> Error initializing interfaces
Hattest du das Problem auch? Auch der Hinweis "Cannot write reset" macht mich stutzig. Den GPIO18-Pin habe ich doch richtig konfiguriert?

Code: Alles auswählen

root@tmw-server:~# ls /sys/class/gpio/gpio18
active_low  device  direction  edge  subsystem  uevent  value
root@tmw-server:~# cat /sys/class/gpio/gpio18/value
0
root@tmw-server:~# cat /sys/class/gpio/gpio18/direction
out
Irgendeine Idee?
Zuletzt geändert von rid am 17.10.2015, 20:54, insgesamt 1-mal geändert.

carbolineum
Beiträge: 116
Registriert: 10.02.2012, 12:52
Danksagung erhalten: 2 Mal

Re: Einrichten der OCCU mit dem Funkmodul HM-MOD-RPI-PCB

Beitrag von carbolineum » 17.10.2015, 20:51

rid hat geschrieben:Moin carbolineum,

Hattest du das Problem auch? Auch der Hinweis "Cannot write reset" macht mich stutzig. Den GPIO18-Pin habe ich doch richtig konfiguriert?

Irgendeine Idee?
Hi,

wenn Du das Verzeichnis "firmware" aus dem Verzeichnis cccu-master mitsamt Inhalt nach /etc/config kopierst sollten die Firmware-Fehlermeldungen verschwinden.

Wegen dem "Cannot write Reset":

wie sieht Deine rfd.conf aus? Ist auch die Zeile

Code: Alles auswählen

ResetFile = /sys/class/gpio/gpio18/value
korrekt enthalten?

Viele Grüße

Michael

carbolineum
Beiträge: 116
Registriert: 10.02.2012, 12:52
Danksagung erhalten: 2 Mal

Re: Einrichten der OCCU mit dem Funkmodul HM-MOD-RPI-PCB

Beitrag von carbolineum » 17.10.2015, 20:53

Nrgmc3 hat geschrieben:Hallo Michael!

Vielen Dank für den ersten Teil der Anleitung!
Weißt du schon, wann du den Rest online stellst?
Kenne mich da nicht so aus, und es wäre einfacher von einem erfahrenen das alles zu kopieren! ;-)

Gruß
Hi,

ich kämpfe noch mit Problemen bei der Zusatzsoftware. Ich denke morgen Abend wird es so weit sein.

Viele Grüße

Michael

rid
Beiträge: 15
Registriert: 31.10.2014, 10:55

Re: Einrichten der OCCU mit dem Funkmodul HM-MOD-RPI-PCB

Beitrag von rid » 17.10.2015, 20:59

Moin Michael,

danke für deine Antwort. Das mit der Firmware habe ich dann noch lösen können (Und hatte es just rauseditiert, als du geantwortet hast :o).

Du hattest den richtigen Riecher: Mein Pfad für die ResetFile war falsch. Bei mir stand "sys/class/gpio18/value" ;-).

Funktioniert aber trotzdem noch nicht :(

Code: Alles auswählen

2015/10/17 18:56:47.744 <Info> BidCoS-Service started
2015/10/17 18:56:47.751 <Info> XmlRpc Server is listening on TCP port 2001
2015/10/17 18:56:52.763 <Debug> () CCU2CommController::startCoprocessorApp(): Trying to start coprocessor application
2015/10/17 18:56:53.268  CCU2CommController::startCoprocessorAppThreadFunction(): Send start command
2015/10/17 18:56:57.769 <Fatal error> CCU2CommController::init(): Init failed. Cannot start coprocessor application.
2015/10/17 18:56:57.773 <Error> () CCU2CommController::setCSMACAEnabled(): Error disabling CSMA/CA.
2015/10/17 18:56:57.780 <Error> No BidCoS-Interface available
2015/10/17 18:56:57.784 <Warning> Error initializing interfaces

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“