Letzte Aktualisierung am 1. Juli 2023
Dieser Beitrag ist obsolet, da ich das beschriebene Verfahren selbst seit einiger Zeit nicht mehr nutze. Er wird nicht mehr aktualisiert. Das Vorgehen funktioniert aber möglicherweise nach wie vor. Die Kommentare wurden geschlossen.
Mit der neuen Tasker-Integration von Pushover lässt sich sehr einfach ein „Watchdog“ realisieren, der bei Ausfall der CCU eine Warnung ausgibt und bei Bedarf weitere Maßnahmen einleiten kann. Der Idee hinder der Vorgehensweise ist das regelmäßige Versenden eines „Lebenszeichens“ durch die CCU dessen Eingang mittels Tasker überwacht wird. Hier die Anleitung…
Voraussetzungen:
- Pushnachrichtenversand mit der CCU über Pushover ist eingerichtet
- Installierte Pushover App auf einem Android Smartphone
- Installierte Tasker App auf einem Android Smartphone
Zunächst ist der Versand der „Lebenszeichens-Nachricht“ im Web-UI der CCU einzurichten. Hiefür bietet sich z.B. der stündliche Versand der Nachricht mit Hilfe des Zeitmoduls an (die Bedingung „CCU im Reboot“ kann natürlich weggelassen werden):
string nachricht = "CCU still alive";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -d token=TOKEN -d user=USER -d message='"#nachricht#"' -d sound=bike http://api.pushover.net/1/messages.json");
Am Besten nutzt man dafür eine eigens eingerichtete Pushover-Application mit eigenem Token, z.B. mit dem Namen „HM CCU“:
Als Ergebnis sollte jede Stunde eine „Lebenszeichen“-Nachricht im Pushover-Eingang ankommen:
In einem zweiten Schritt wird in der Tasker App der Watchdog eingerichtet. Hierzu legt man ein neues Profil – hier im Beispiel mit dem Namen „HM CCU Alive Sensor“ – vom Typ „Ereignis“ an…
Als Ereigniskategorie wird „Plugin“ gewählt…
…und dann „Pushover Notification“, das bei installierter Pushover App verfügbar sein sollte.
Innerhalb des Pushover Plugins genügt es, unter „Title matches“ den Titel der Pushover Application, hier „HM CCU“ einzugeben.
Für dieses Profil wird ein neuer Task, hier „HM CCU Alive Trigger wahr“ angelegt, der als Aktion eine Variable „%CCUalive“ auf wahr setzt:
Hierdurch wird die Tasker-Variable „%CCUalive“ mit jeder eingehenden Pushnachricht mit dem Titel „HM CCU“, hier also immer um nn:08 Uhr, auf wahr gesetzt.
Damit der Watchdog funktioniert, muss die -Variable „%CCUalive“ kurz vor Eingang dieser Nachricht auf „falsch“ gesetzt werden. Dies geschieht mit einem weiteren Profil „HM CCU Alive Reset“. Hier wählt man als Typ „Zeit“…
…und stellt das Zeitmodul wie folgt ein:
Analog zu oben wird für dieses Profil ein neuer Task angelegt, hier „HM CCU Alive Trigger falsch“, der als Aktion die Variable „%CCUalive“ auf falsch setzt:
Nun fehlen nur noch die Aktionen, die bei Ausbleiben der „Alive“-Nachricht ausgeführt werden. Dies löst ein drittes Profil „HM CCU Alive Fehlermeldung“, das wiederum durch ein Zeitmodul einige Minuten nach dem erwarteten Eingang der „Alive“-Nachricht getriggert wird:
Innerhalb der zugehörigen Aufgabe (Task) können nun beliebige Aktionen ausgeführt werden.
Wichtig ist hierbei, dass bei jeder Aktion die folgende Bedingung eingefügt wird, ansonsten wird die Aktion immer um nn:12 Uhr ausgeführt, nicht nur bei Ausbleiben der „Alive“-Nachricht:
Sinnvolle Aufgaben können z.B. das Versenden von Nachrichten über E-Mail oder andere Dienste, das Abspielen einer Audio-Warnung oder ein einfaches Pop-Up auf dem Smartphone sein:
Auch ein automatischer Reboot der CCU sollte über einen „HTTP Get“-Befehl möglich sein.
Zum korrespondierenden Beitrag im…
Tolles HowTo, danke dafür!
Sage mal, wie hast Du das Problem behoben, dass alle Stunde das Handy die Pushovernachricht anzeigt? Mit den QuietHours funktioniert das nicht wirklich, da man sie nur global vergeben kann und nicht je „App“.
In Tasker gibt es leider keine Möglichkeit die Pushovernachrichten als gelesen zu markieren.
Grüße und ein Frohes Neues Jahr
rUmti
Hallo rUmti,
ich lasse alle Pushnachrichten so anzeigen, wie sie ankommen. Damit ich nachts nicht genervt werde, nutze ich die App „Silent Time“. Die hält mir auch andere Töne vom Leib. Nur mein Wecker „Alarm Droid“ darf sich melden.
Liebe Grüße Jens
Hi.
wie wäre es mit den Parametern:
warum lasst ihr nicht -d sound= bike weg und setzt dafür:
-d priority=-2
Somit kommt überhaupt keine Benachrichtigung ! Tasker jedoch erkennt die eingegangene Nachricht und reagiert….
Mike
Hallo Mike,
stimmt, so kann man es auch recht einafch lösen, danke.
Liebe Grüße Jens
Gerne 🙂
und noch eine Änderung, die ich empfehle. (mittlerweile habe ich mich ein wenig eingelesen)
Ich würde empfehlen statt des Zeitmoduls CUXD Timer zu verwenden, wenn dieses ja sowieso schon installiert sein soll.
Ich habe den Timer gesetzt mit :8:0 (Also 8 Minuten nach jeder vollen Stunde)
Also Timer starten mit TIMER_SET auf :8:0
bzw besser in den Geräteeinstellungen SYSTEM|TIMER_PRESET :8:0 und
SYSTEM|REPEAT den Haken setzen.
Die Abfrage des Timers in deinem Beispiel wäre dann statt dem Zeitmodul wie folgt:
Gerät Timer bei Timer_Get im Wertebereich kleiner oder gleich 0.00 s bei Aktualisierung auslösen
Aktivität dann dein Pushover Skript.
Vorteil: Der Timer stimmt auch nach einem Reset und kommt immer 8 Minuten nach der vollen Stunde, ansonsten korrigiert sich das ja erst am nächsten Tag um 0:08 Uhr und erzeugt auf dem Handy lauter Fehlermeldungen über nicht existierende Abstürze.
Mike
Hallo Mike,
danke für den Hinweis, grundsätzlich ist es nie verkehrt – wo immer möglich – das Zeitmodul durch den CUxD-Timer zu ersetzen, weil es mit dem Zeitmodul bekanntermaßen häufiger mal Probleme gibt und es nicht immer zuverlässig funktioniert.
Liebe Grüße Jens
Hallo Jens,
um das stündliches „AllesOK“ von der CCU nicht auf’s Handy zu bekommen, habe ich den Watchdog jetzt auf mein Nexus 7 ausgelagert, das eh als Steuerung für das Mediola-Frontend fungiert. Da stört es nicht. 😉
Gruß
rUmti
Hallo Jens,
mich würde mal interessieren, wie man ein reboot der CCU hier noch durchführen kann. Ansonsten ist die Anleitung toll.
Gruß Reinhard
Hallo Reinhard,
ich hatte mir den Watchdog damals – als es bei mir häufig zu Abstürzen der CCU kam (ursächlich war die Begrenzung der Skriptvariablen) – auf die Schnelle erstellt, um eine sofortige Information auf das Smartphone zu bekommen, wenn die CCU stehen geblieben ist. Da bei einem gewünschten Reboot das Androidgerät ja im internen Netz oder z.B. via VPN angebunden sein muss, habe ich das selbst nie gebraucht und nicht weiter verfolgt. Daher kann ich dir da keine fertige Lösung anbieten.
Du könntest mal nach „remote reboot linux http-get“ oder so googeln und das dort Angebotene ausprobieren. Grundsätzliche Hinweise zur Nutzung von http-get mittels Tasker findest du z.B. im Abschnitt „Automatisches Laden des Tablets“ des Tutorials HomeMatic – Android Tablet als Hausautomations-Front-End einsetzen.
Die neuen Firmwareversionen laufen aber doch mittlerweile so stabil, dass sich ein solcher Watchdog eigentlich erübrigt 😉 .
Liebe Grüße Jens
Hallo Jens,
danke für deine schnelle Rückmeldung. Ich werde mal nachlesen.
Gruß
Reinhard