FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: is2late am 18 Januar 2023, 12:09:21

Titel: (Gelöst) Fehler im Notify?
Beitrag von: is2late am 18 Januar 2023, 12:09:21
Hi,

ich möchte mich durch ein Notify benachrichtigen lassen, wenn der CO2-Wert zu hoch ist.  Das Dummy heisst co2WZ, das Reading dort co2. Folgendes funktioniert nicht:

defmod n_co2WZ notify co2WZ:co2 {if(ReadingsVal('co2WZ','co2',0)>900){fhem "set ECHO_G090LF1072270A6S speak Achtung, CO2-Wert im Wohnzimmer ist zu  hoch, bitte lüften"}}

Dummy: defmod co2WZ dummy
setstate co2WZ CONNECTED
setstate co2WZ 2023-01-18 12:00:59 co2 660
setstate co2WZ 2023-01-18 11:52:55 humidity 28.47
setstate co2WZ 2023-01-17 16:53:30 state CONNECTED
setstate co2WZ 2023-01-18 11:54:57 temperature 25.6


Sieht jemand den Fehler?

Vielen Dank!
Titel: Antw:Fehler im Notify?
Beitrag von: Beta-User am 18 Januar 2023, 12:17:01
Vermutlich ein Problem mit der trigger-regexp. Folgendes _könnte_ helfen:co2WZ:co2:.* 
Möglicherweise gibt es zusätzlich ein Reihenfolgeproblem: "Irgendwas" befüllt per NotifyFn() den dummy, und das notify wird möglicherweise vorher schon mal angefahren, wenn vorher was anderes getriggert hatte. (Anders gesagt: warum dummy, und was befüllt?)
Titel: Antw:Fehler im Notify?
Beitrag von: is2late am 18 Januar 2023, 12:36:40
Hi Beta-User,

danke für Deine Hilfe!
Der Sensor hängt an einem entfernten Pi und sendet die Daten via Fhem2Fhem auf den Hauptrechner. Dort heißt das Gerät ebenfalls co2WZ.
Das RAW:
defmod co2WZ co2mini
attr co2WZ device /dev/co2mini0
attr co2WZ event-min-interval .*:1200
attr co2WZ event-on-change-reading temperature:1,co2:20,humidity:3,.*
attr co2WZ room co2
attr co2WZ serverControl fhem
attr co2WZ serverIp 127.0.0.1
attr co2WZ serverPort xxx

setstate co2WZ opened
setstate co2WZ 2023-01-18 12:32:21 co2 667
setstate co2WZ 2023-01-18 12:32:22 humidity 27.92
setstate co2WZ 2023-01-17 16:54:08 state opened
setstate co2WZ 2023-01-18 12:32:23 temperature 25.7875


Das Dummy erschien mir der einfachste Weg, die Daten aufzunehmen. Tatsächlich erscheinen sie auch dort und können gut visualisiert werden.
Titel: Antw:Fehler im Notify?
Beitrag von: is2late am 18 Januar 2023, 12:43:08
Hey, ich hatte Deinen Vorschlag gleich umgesetzt, aber keine spontane Meldung des Notify bekommen. Jetzt - mit vielleicht viertelstündiger Verspätung - trudelt sie ein. Das war also die Lösung. Vielen Dank!
Titel: Antw:Fehler im Notify?
Beitrag von: Beta-User am 18 Januar 2023, 12:45:46
 :)

Wenn man so ein notify mit Hilfe des Event-Monitors anlegt, bekommt man das gleich "mundgerecht" ;) .

Allerdings kommt vermutlich jetzt zu oft eine Meldung, nämlich bei jeder Aktualisierung über dem Grenzwert...
Titel: Antw:(Gelöst) Fehler im Notify?
Beitrag von: is2late am 18 Januar 2023, 12:50:30
Hab noch nie mit dem Eventmonitor gearbeitet; werde es jetzt mal versuchen.
Wiederholung der Meldungen wäre mir sehr willkommen...soll sich ja niemand totschlafen ;-)

Danke nochmals!
Titel: Antw:(Gelöst) Fehler im Notify?
Beitrag von: is2late am 19 Januar 2023, 12:08:06
Mittlerweile erweist sich die Fülle von Meldungen dann doch als lästig, zumal der CO2-Wert sich auch beim Lüften nur langsam normalisiert.
Hab mit einem Watchdog experimentiert, bin aber nicht zu einem guten Ergebnis gelangt.
Gibt es evtl. eine Möglichkeit innerhalb dieser Zeile, die Meldung einmalig machen?

defmod n_co2WZ notify co2WZ:co2:.* {if(ReadingsVal('co2WZ','co2',0)>900){fhem "set ECHO_G090LF1072270A6S speak Achtung, CO2-Wert im Wohnzimmer ist zu  hoch, bitte lüften"}}

Vielen Dank!
Titel: Antw:(Gelöst) Fehler im Notify?
Beitrag von: Beta-User am 19 Januar 2023, 12:29:14
Mit einem notify brauchst du einen "Marker", den du prüfen kannst, ob die Meldung bereits rausging. Der muss dann bei "Luft ist rein" ggf. auch wieder zurückgesetzt werden...

Gibt viele Möglichkeiten, ich würde vermutlich ein userReading definieren, das nur zwischen 3 oder 4 Zuständen pendelt (z.B. good, ok, suboptimal, bad), und dann auf das reagieren.
Titel: Antw:(Gelöst) Fehler im Notify?
Beitrag von: is2late am 19 Januar 2023, 15:23:30
@Beta-User : Vielen Dank, versuche ich.