Da sich momentan wieder die Fehlermeldungen über stehengebliebene CCUs häufen, hier mal eine Auflistung der Dinge, die benötigt werden, um das Problem ernsthaft zu analysieren:
- Werden LAN-Adapter (HM-CFG-LAN) eingesetzt?
- Werden Repeater (HM-Sys-sRP-Pl) eingesetzt?
- Welche und wieviele Geräte sind vorhanden (siehe Inventurskript in meiner Signatur)
- Welche Zusatzsoftware (http://www.homematic-inside.de/software) ist installiert?
- Welche automatisch laufenden Programme (Zeitsteuerungen oder auf Änderungen/Aktualisierungen reagierende Programme) werden genutzt?
- Wird System.Exec in Skripten (z. B. lcd_msg) genutzt?
- Bitte ein aktuelles Logfile posten (WebUI -> Einstellungen -> Systemsteuerung -> Zentralen-Wartung -> Logdatei herunterladen).
- Wie alt ist die Zentrale?
- Welche Firmware läuft auf der Zentrale?
- Beschreibung Eures Problems: Was geht nicht mehr (Programme, Aufruf WebUI, Anmeldung SSH etc.)
- Ausgabe des Befehls free
- Ausgabe des Befehls cat /proc/meminfo
- Ausgabe des Befehls ps
- Ausgabe des Befehls uptime
- Wenn "mein" kompiliertes Busybox-Paket (siehe Signatur) auf der CCU vorhanden ist, ist auch die Ausgabe von ./busybox top interessant
Erweiterte Analyse mittels CCU2-Bordmitteln (strace):
Um eine erweiterte Analyse durchzuführen, wenn die Prozesse durch Fehler beendet werden und damit nicht mehr in der Prozeßliste auftauchen, kann man einen strace mitlaufen lassen. Anhand der dadurch gewonnenen Informationen ist es für die Programmierer viel einfacher, Probleme im Code zu finden und zu beheben. Um einen strace durchführen zu können, startet zunächst die CCU2 neu. Stellt das Logging über die WebUI für den problematischen Teil (Logikschicht ReGaHSS oder rfd auf "alles loggen"; idealerweise verwendet Ihr einen syslog-Server, wenn vorhanden - die meisten nas-Systeme liefern das zum Beispiel mit). Deaktiviert eventuell installierte Watchdogs zunächst. Dann müsst Ihr Euch per SSH auf der CCU2 anmelden.
Um die Menge an Logging zu erhöhen bitte folgende Befehle per SSH absetzen:
Code: Alles auswählen
mount -oremount,rw /
vi /etc/init.d/S01logging
Code: Alles auswählen
mount -oremount,ro /
Abhängig davon, welcher Prozess sich selbst beendet, muss dieser zunächst beendet werden:
Mit
Code: Alles auswählen
ps -ef
Code: Alles auswählen
258 root /usr/sbin/sshd
350 root /bin/hs485dLoader -l 5 -dw /etc/config/hs485d.conf
353 root /bin/hs485d -l 5 -g -i 0
366 root /bin/rfd -d -f /etc/config/rfd.conf -l 5
372 root java -Xmx32m -Dlog4j.configuration=file:///etc/config/log4j.xml -Dfile.encoding=ISO-8859-1 -jar /opt/HMServer/HMServer.jar
416 root ntpclient -h ntp.homematic.com -l
463 root /bin/ReGaHss -f /etc/rega.conf -l 2
Code: Alles auswählen
kill -9 PID
Code: Alles auswählen
mkdir /tmp/debug
Code: Alles auswählen
strace -ff -o/tmp/debug/rfd rfd -l 0 -f /etc/config/rfd.conf > /tmp/debug/rfd.log &
Code: Alles auswählen
strace -ff -o/tmp/debug/rega ReGaHss -f /etc/rega.conf -l 2 > /tmp/debug/rega.log &
Alternativ kann man auch auf eine initialisierte SD-Karte loggen (das kann für rega jedoch kritisch werden, da die Oberfläche dadurch eventuell langsam wird):
Code: Alles auswählen
mkdir /media/sd-mmcblk0/debug
strace -ff -o/media/sd-mmcblk0/debug/rfd rfd -l 0 -f /etc/config/rfd.conf > /media/sd-mmcblk0/debug/rfd.log &
#oder
strace -ff -o/media/sd-mmcblk0/debug/rega ReGaHss -f /etc/rega.conf -l 2 > /media/sd-mmcblk0/debug/rega.log &