"Etwas" funktioniert nicht erkennen.

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Antworten
Benutzeravatar
zautrix
Beiträge: 383
Registriert: 22.05.2016, 18:41
Wohnort: Badisch-Sibirien
Danksagung erhalten: 40 Mal

"Etwas" funktioniert nicht erkennen.

Beitrag von zautrix » 23.10.2019, 20:56

Moin!
Ich bin ja seit langer Zeit damit beschäftigt mir eine Smarthome Zentrale zu basteln, die bei einer Störung schnell wieder verfügbar ist.
Im Augenblick ist mein Stand, dass ich auf einem Tinkerboard S eine Raspberrymatic zu laufen habe. Darauf läuft ioBroker als Addon, mit dem zigbee Adapter von ioBroker steuere ich meine Zigbee Geräte über einen Zigbee Stick (eingesteckt auf demselben Tinkerboard) mit externer Antenne.
Dieselbe Hardware habe ich daneben zu stehen, ausgeschaltet. Wenn ich eine Störung erkenne schalte ich das eine System per Hand über eine Fritzdect Steckdose aus, das andere (Reserve System) an.
Nun ist ja das Reserve System nicht auf dem identischen Stand vom ersten System. (Geräte ggf. geändert, ioBroker history Daten nicht aktuell, usw).
Bisher erkannte ich eine Störung immer selbst ( und nicht durch Fluchen und Drohungen meiner Frau). Diese einzige Störung war ein "Amoklaufen" des HmIp Servers, behoben durch Neustart desselben. Aber die Hardware der Zentrale kann natürlich immer "abrauchen", gerade im Urlaub.

Nun würde ich gerne von extern ein Überwachungssystem laufen lassen, das mir Störungen auf meiner Smarthome Zentrale meldet und diese versucht zu beheben.

Dieses Überwachungssystem wäre ein weiteres Tinkerboard mit einem ioBroker drauf und einigen wenigen Adaptern. Zumindestest der Pushover Adapter für eine Nachricht auf mein Handy. Und ggf. noch Weitere.
Und einem neu von mir zu schreibendem Programm( wie auch immer das genau aussieht, ich habe da ein GUI Programm mit C++ und Qt im Kopf, möglichst DAU kompatibel ( ich hasse nämlich Kommandozeilen)), das die Smarthome Zentrale überwacht, und versucht etwas zu beheben, wenn es nicht funktioniert. Zum Beispiel von Zentrale "A" auf Zentrale "Reserve" umzuschalten, wenn Zentrale A "tot" ist. Und danach das nächtliche Backup (gesichert auf mein Überwachungssystem) von A dort einspielen.
Oder nur auf Zentrale A den HmIp Server neu zu starten, wenn HmIp Geräte "nicht funktionieren."

Soooo, und nun meine Frage:
Habt ihr irgendwelche Ideen, wie man erkennt, ob etwas nicht funktioniert?
Beispiel von mir: Ich kann Zentrale A nicht anpingen 5 mal hintereinander, also schalte ich auf Zentrale Reserve um. Problem gelöst.
Aber wie erkenne ich zum Bleistift, ob der HmIp Server "spinnt"?

Hier nun noch meine Fragen an Jens:
Gehe ich recht in der Annahme, dass der Rfd und HmIp Server auf Raspimatic durch monit neu gestartet werden, wenn sie crashen?

Danke für eure Hilfe und Ideen!
Gruß aus Nord-Baden,
z.

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: "Etwas" funktioniert nicht erkennen.

Beitrag von hobbyquaker » 23.10.2019, 21:29

zautrix hat geschrieben:
23.10.2019, 20:56
Habt ihr irgendwelche Ideen, wie man erkennt, ob etwas nicht funktioniert?
Die Schnittstellenprozesse monitoren kann man z.B. so machen:
RPC Client sendet Ping Command, wenn nicht innerhalb 2sek ein Pong Event auf dem RPC Server eintrudelt stimmt was nicht.

BidCos-RF und Wired kann man zusätzlich noch mit der RPC Methode list(Bidcos)Interfaces checken ob das Funkmodul, LAN-Gateways und das Wired-LAN-Gateway verbunden sind und ob der DutyCycle irgendeinen Schwellwert überschreitet.

Um zu checken ob die Rega "lebt" kann man z.B. ein simples

Code: Alles auswählen

Write("ok");
an die Remote Script Schnittstelle schicken, wenn was anderes als "ok" zurückkommt stimmt was nicht ;-)

Man kann das natürlich auch noch viel weiter treiben, konkret z.B. die Funkverbindung und Funktion eines bestimmten Aktors testen und so wirklich vom RPC Client Ende-zu-Ende bis zum Aktor und zurück testen. Z.B. ein Schaltaktor mit ON_TIME 10sek anschalten und schauen ob nach 10sek auch ein Event reinkommt der mitteilt dass der Aktor wieder ausgegangen ist. Damit ist der Check aber eben auch von einem Aktor abhängig, muss man sich überlegen ob das sinnvoll ist im jeweiligen Szenario.
Für die Rega könnte man z.B. auch ein Totmann-Programm bauen, das z.B. alle 5 Minuten eine Variable toggelt und im check-script nachschauen ob die letzte Änderung der Variable <= 5 Minuten her ist, so würde man z.B. auch die Funktion des Zeitmoduls monitoren können.

Andere gängige Monitoring Methoden wären Check-Scripte die z.B. einfach schauen ob die relevanten Prozesse noch laufen, wie der System Load, die Speichernutzung, der io Load etc aussieht. Ob das in Deinem Szenario notwendig/sinnvoll ist kann ich aber nicht beantworten.

Der Kreativität sind beim Thema Monitoring jedenfalls kaum Grenzen gesetzt ;-)

Ein wenig Inspiration kannst Dir vielleicht auch hier holen: https://github.com/hobbyquaker/check_homematic

Benutzeravatar
zautrix
Beiträge: 383
Registriert: 22.05.2016, 18:41
Wohnort: Badisch-Sibirien
Danksagung erhalten: 40 Mal

Re: "Etwas" funktioniert nicht erkennen.

Beitrag von zautrix » 24.10.2019, 10:57

Vielen, vielen Dank für Deine Antwort!
Das liest sich alles sehr hilfreich.

Ich werde mir wohl erst einmal eine Spezifikation erstellen, was man wie testen kann und was die Konsequenzen wären, wenn es etwas nicht funktioniert.
So könnte man z.B. bei einem HmIp Problem erst einmal versuchen den HmIp Server neu zu starten, bevor man die Zentrale selbst abschaltet und die Ersatz-Zentrale anschaltet. Und auch ein automatisches Einspielen eines Backups macht ggf. nur Sinn, wenn die Zentrale per ping gar nicht erreichbar ist. Nicht dass man mit dem Backup auch die Ersatz Zentrale lahmlegt.
Und das Schwierigste ist natürlich das Testen der ganzen Logik. Ich glaube, ich brauche noch ein paar mehr Raspimatics als Test System...
Gruß aus Nord-Baden,
z.

Antworten

Zurück zu „RaspberryMatic“