Benutzer:Amenophis86/Artikelentwurf

Aus FHEMWiki
Version vom 2. Januar 2016, 19:00 Uhr von Amenophis86 (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „HM-CC-RT-DN Fehlerüberwachung ist ein Code Snippet zur Überwachung der HM-CC-RT-DN Funk-Heizkörperthermostat von Homematic. == Zielsetzung == Es ka…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

HM-CC-RT-DN Fehlerüberwachung ist ein Code Snippet zur Überwachung der HM-CC-RT-DN Funk-Heizkörperthermostat von Homematic.

Zielsetzung

Es kann vorkommen, dass das Display der Ventile nicht immer im Sichtbereich liegt und somit ein Fehler eines Thermostats durch den Anwender nicht erkannt wird. Durch FHEM kann man sich auf diesen Fehler hinweisen lassen.

Erstellen der nötigen Funktionen

Dazu muss eine readingsGroup erstellt werden, welche alle Thermostate überwacht. Das Reading, auf welches die readingsGroup achtet ist "motorErr". Somit definieren wir die readingsGroup wie folgt:

define MotorUeberwachung readingsGroup .*:motorErr

Anzumerken ist, dass bei der Anlegung sowohl die Hauptdevice, als auch der Channel Clima genommen wird.

Damit wir eine farbliche Übersicht haben, welches Thermostat in Ordnung ist und welches einen Fehler hat, werden wir mittels des Attributs ValueStyle die Farbe der Anzeige ändern:

attr MotorUeberwachung {($READING eq "motorErr" && $VALUE eq "ok")?'style="color:green"':'style="color:red"'

Wir sagen somit FHEM, wenn das Reading "motorErr" dem Wert "ok" gleicht, dann soll es in grün angezeigt werden. Ist das nicht der Fall, dann soll es in rot angezeigt werden.


Benachrichtigung mittels Pushover

Jetzt können wir uns noch über das Pushover Modul zusammen mit Notify eine Nachricht schicken lassen, welche uns darüber informiert, dass ein Thermostat einen Fehler hat. Voraussetzung ist, dass das Pushovermodul angelegt und funktionsfähig ist. Der Code hierzu kann wie folgt aussehen

define MotorMeldung notify .*:motorErr.* {if($EVENT !~ m/ok/) { fhem("set Pushover1 msg 'Heizungs Warnung' '$NAME meldet den Fehler $EVPART1' 'HA_Ede' 0 ''") }}

Somit wird über Pushover eine Nachricht gesendet, sobald irgendein Thermostat im Reading "motorErr" eine andere Meldung, als "ok" sendet. In der Nachricht ist der Name ($Name) des Device enthalten, als auch die Fehlermeldung ($EVTPART1).

Wichtig ist, dass diese Definition auch für alle anderen Devices gilt, welche das Reading "motorErr" haben. Möchte man diese Meldung nur bei seinen Thermostaten haben, kann man wie folgt vorgehen:

define MotorMeldung notify (NameThermostat1|NameThermostat2|...):motorErr.* {if($EVENT !~ m/ok/) { fhem("set Pushover1 msg 'Heizungs Warnung' '$NAME meldet den Fehler $EVPART1' 'HA_Ede' 0 ''") }}

Weiterhin sollte für die Thermostate das Attribut event-on-change-reading in Verbindung mit "motorErr" gesetzt werden. Sonst bekommt man alle 3 Minuten eine Meldung per Pushover, dass der Motor einen Fehler hat. Gerade, wenn man unterwegs ist, kann dies sehr nerven.