Raspberry PI, Watchdog gegen Überflutung

Für eine Home-Automatisierung gibt es diverse Anwendungsfälle, die von der einfachen Kopplung der Heizungsthermostate mit Fensterkontakten bis zur umfangreichen autarken Steuerung von Prozessen reichen kann. Spätestens wenn die Steuerung nicht nur Werte ausliegt und abzeigt, oder einfache Aktionen, wie das Licht einzuschalten, ausführen kann muß man sich Gedanken um die Ausfallsicherheit machen.

So kann es sicherlich unschön sein, wenn während des Urlaubs die Gartensteuerung nicht funktioniert und die Pflanzen die Köpfe hängen lassen bzw. der Rasen vertrocknet ist. Noch schlimmer aber ist das Gegenteil, wenn die aktivierte Beregnung aufgrund des Absturzes nicht wieder gestoppt wurde und die Beregnung dann gleich zwei Wochen am Stück durch arbeitete.

Besonders Produkte für den Consumermarkt können sich, anhängig von den damit betriebenen Geräten und der darauf laufenden Prozesse, sehr unterschiedlich verhalten. Für den Fall dass sich die Steuerung nicht erwartungsgemäß verhält sollte also immer eine Möglichkeit des Resets aus der Ferne geben. Aber was, wenn die Kontrolleinheit nicht mehr zu erreichen ist, also auf Anfragen über das Netzwerk nicht mehr reagiert und auch über den Fehlzustand nicht informiert?

Für diese Fälle braucht es einen Watchdog, also einen Prozess der die korrekte Ausführung überwacht und bei einem Absturz des Systems automatisch einen Reset ausführt. Für die, auch bei mir eingesetzte, HomeMatic bringt das System bereits einen Watchdog mit der auch aktiviert ist. Allerdings schlägt der Watchdog nur dann zu, wenn das Betriebssystem selbst nicht mehr funktioniert. Tritt dieser Fall ein, dann erkennt das der Watchdog nach 60 Sekunden und startet neu.

Allerdings überwacht der Watchdog dabei nicht die eigentliche Steuerung und deren Prozesse. Stützt also die HomeMatic oder ein Kommunikationsprozess ab, so passiert… Garnichts.

Allerdings kann man den Watchdog Prozess aufbohren und dabei auch andere Vorgänge mit testen. Das grundlegende Skript das hierzu genutzt werden kann habe ich im HomeMatic-Forum (http://homematic-forum.de/forum/viewtopic.php?f=31&t=15282#p121072) gefunden und stammt bereits aus dem Jahre 2013. Prinzipiell sieht das Skript vor, den Prozess (Deamon) der das „Lebenszeichen“ aktualisiert abzuschalten und durch einen eigenen Prozess zu ersetzen, der dann natürlich auch noch diverse andere Parameter überwachen kann.

Einfach gesagt geht es darum, dass in einer Datei /dev/watchdog ein Wert jede Sekunde erhöht wird. Erreicht der Wert 60, so startet der ARM-Prozessor neu. Der eigene Überwachungsprozess muss als „lediglich“ dafür sorgen, dass in der Datei nie die Zahl 60 erreicht wird. Wie dies umgesetzt wird ist komplett dem Umsetzenden überlassen.

Der im Artikel aufgezeigte Ansatz nutzt einen WebUI Programm, um ein Skript aufgerufen, welches den Zähler zurücksetzt. Ist die WebUI abgestürzt, so erfolgt kein Aufruf des Skriptes, somit kein Rücksetzen des Zählers. Damit wird nach kurzer Zeit der Wert 60 erreicht und der Prozessor startet neu.

Diese Vorgehensweise bietet noch viel Möglichkeiten zum Erweitern. Viel Erfolg beim Basteln.

Ersten Kommentar schreiben

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht.


*


16 + elf =