HomeMatic Tutorial

HomeMatic – Einfacher CCU-Watchdog mit Pushover und Tasker

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:

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):

powd00

powd01

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“:

powd02a

Als Ergebnis sollte jede Stunde eine „Lebenszeichen“-Nachricht im Pushover-Eingang ankommen:

powd03

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…

powd04

Als Ereigniskategorie wird „Plugin“ gewählt…

powd05

…und dann „Pushover Notification“, das bei installierter Pushover App verfügbar sein sollte.

powd06

Innerhalb des Pushover Plugins genügt es, unter „Title matches“ den Titel der Pushover Application, hier „HM CCU“ einzugeben.

powd07

Für dieses Profil wird ein neuer Task, hier „HM CCU Alive Trigger wahr“ angelegt, der als Aktion eine Variable „%CCUalive“ auf wahr setzt:

powd09

powd10

powd11

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“…

powd12

…und stellt das Zeitmodul wie folgt ein:

powd13

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:

powd14

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:

powd15

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:

powd16

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:

powd17

powd18

Auch ein automatischer Reboot der CCU sollte über einen „HTTP Get“-Befehl möglich sein.

Zum korrespondierenden Beitrag im…
HomeMatic-Forum

 

Bitte beachten...

SMART WOHNEN by sTeRn AV ist ein rein privates Projekt. Support kann ich daher nur im Rahmen meiner begrenzten Freizeit leisten, hierfür bitte ich um Verständnis. Meine Hinweise, Anleitungen, Schaltungen und Software werden so angeboten, „wie sie sind“. Die Verwendung erfolgt auf eigenes Risiko, ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung.
Creative Commons Lizenzvertrag
Copyright © Jens-Peter Stern | SMART WOHNEN by sTeRn AV | smart-wohnen.org
  1. rUmtifUsel

    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

  2. rUmtifUsel

    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

  3. Reinhard Böldicke

    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

      • Reinhard Böldicke

        Hallo Jens,
        danke für deine schnelle Rückmeldung. Ich werde mal nachlesen.

        Gruß
        Reinhard

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich stimme zu.