Grundsätzliches zur Problemanalyse, erweiterte Analyse

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Gesperrt
Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Grundsätzliches zur Problemanalyse, erweiterte Analyse

Beitrag von anli » 30.08.2012, 19:47

Hallo.

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.)
Wenn Ihr Euch noch per SSH anmelden könnt (siehe http://homematic-forum.de/forum/viewtop ... =26&t=3014) wären folgende Angaben hilfreich:
  • 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
Bitte zuerst nach dem oder ähnlichen Problemen über die Suche hier oben rechts suchen. Passt kein Thread, dann bitte einen Neuen eröffnen.

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
Jetzt Zeile 10 wie folgt ändern (4096KB pro Dateien, default war 200): SYSLOG_OPTIONS="-m 0 –s4094", dazu mit dem Cursor auf die 0 gehen, a drücken Leerschritt und -s4094 eingeben, dann ESC und dann :wq drücken

Code: Alles auswählen

mount -oremount,ro /
(nur so ist sichergestellt, dass die Änderungen geschrieben werden). Dann die CCU2 neu starten

Abhängig davon, welcher Prozess sich selbst beendet, muss dieser zunächst beendet werden:
Mit

Code: Alles auswählen

ps -ef
bekommt Ihr die Prozessliste. Die Ausgabe sieht beispielsweise wie folgt aus (gekürzt):

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
Dort sucht Ihr den problematischen Prozess (rega oder rfd) und merkt Euch die Nummer vor der Zeile, in der der Prozess steht (hier beispielsweise 366 für rfd oder 463 für rega) - diese Nummer ist die Prozess-ID, kurz PID. Jetzt gebt Ihr auf der Konsole

Code: Alles auswählen

kill -9 PID
ein. Dadurch wird der entsprechende Prozess "gewaltsam" beendet. Jetzt legt Ihr ein temporäres Verzeichnis an, in das die Logs geschrieben werden:

Code: Alles auswählen

mkdir /tmp/debug
Nun ist alles bereit und Ihr könnt den problematischen Prozess mit strace starten - entweder rfd:

Code: Alles auswählen

strace -ff -o/tmp/debug/rfd rfd -l 0 -f /etc/config/rfd.conf > /tmp/debug/rfd.log &
oder rega:

Code: Alles auswählen

strace -ff -o/tmp/debug/rega ReGaHss -f /etc/rega.conf -l 2 > /tmp/debug/rega.log &
Nun wird im Verzeichnis /tmp/debug eine Menge an Logs geschrieben, die sehr hilfreich sind. Diese Logs müssen vor dem nächsten Neustart der CCU2 runterkopiert werden, da sie beim Neustart wieder verschwinden. Auch das strace muss nach einem Neustart wieder eingerichtet werden.
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 &
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

Gesperrt

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“