Mit DOIF auf Änderung von Readings der Homematic Wetterstation reagieren

Begonnen von bart0190, 02 September 2018, 11:38:52

Vorheriges Thema - Nächstes Thema

bart0190

Hallo,
Ich möchte die Regenmenge pro Tag berechnen und auch die aktuelle Menge am Tag anzeigen. Die Homematic Wetterstation hat ein Regen-Reading ("rain") welches nur den aufsummierten Wert, seitdem es aktiviert wurde, anzeigt.
Nun habe ich mir gedacht die Tagesregenmenge zu berechnen und das über DOIF versucht.
Anscheinend schaffe ich es aber nicht, dass er bei Änderung des Regenwerts (Reading "rain") öfter als einmal reagiert. Nach abspeichern des DEF Befehls berechnet er 1x.
Vielleicht checke ich auch einfach grundlegend was bei DOIF nicht und ich muss noch was zurücksetzen


define di_RegenHeute_Berechnung DOIF ([Wetterstation:"^rain:..*$"]) ({ my $varWetterRain = ReadingsVal("Wetterstation", "rain", ""); my $varRegenStartwert = ReadingsVal("RegenHeuteStartwert_dy", "state", ""); my $varRegenHeute = sprintf("%.2f",($varWetterRain-$varRegenStartwert)); fhem("set RegenHeute_dy $varRegenHeute") })

(das mit ";" und ";;" wenn man in Command Zeile eingibt weiß ich)

In der Abfrage hab ich auch schon probiert
([Wetterstation:"rain"])
bzw.
([Wetterstation:""])
Er berechnet aber immer nur 1x.  :(

Mit notify schaff ich nicht einmal 1x
define noti_RegenWertAenderung notify (Wetterstation:rain:..*) (set RegenWertAenderung_dy toggle)
Da es nicht immer regnet, hab ich zum Testen natürlich einen anderen Wert genommen, die Windrichtung, also:
define noti_RegenWertAenderung notify (Wetterstation:windDirection:..*) (set RegenWertAenderung_dy toggle)

Die Events sind im Event-Monitor sichtbar und sind auch beim DOIF device sichtbar, aber das commando passiert nur einmal.

Device Wetterstation 2018-09-02 11:29:09
cmd 1 2018-09-02 11:11:39
cmd_event Wetterstation 2018-09-02 11:11:39
cmd_nr 1 2018-09-02 11:11:39
e_Wetterstation_events brightness: 207,humidity: 87,isRaining: 0,rain: 178.77,T: 17.8 H: 87 W: 3 R: 178.77 IR: 0 WD: 110 WDR: 45 S: 116 B: 207 ,sunshine: 116,temperature: 17.8,windDirRange: 45,windDirection: 110,windSpeed: 3 2018-09-02 11:29:09
state cmd_1 2018-09-02 11:11:39


Hat jemand eine Idee was ich probieren könnte?

danke
bart

Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

Damian

https://fhem.de/commandref_DE.html#DOIF_Ereignissteuerung

dort steht:
ZitatWünscht man eine Ausführung des gleichen Befehls mehrfach nacheinander bei jedem Trigger, unabhängig davon welchen Zustand das DOIF-Modul hat, weil z. B. Garage nicht nur über die Fernbedienung geschaltet wird, dann muss man das per "do always"-Attribut angeben.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

bart0190

super danke für die schnelle Antwort!
Ja, wer lesen kann ist klar im Vorteil. :)
Damit wird es höchstwahrscheinlich klappen.
lg
bart
Raspberry Pi 4 - FHEM, Homematic HM-CFG-LAN, ESP32 mit ePaper Display, Raspberry Pi 3 - BT Lokalisierung, PC - Squeezebox Server, Raspberry Pi 2 +HifiBerry - SB Player1, Raspberry Pi 2 +AVReceiver - SB Player2, nVidia Shield TV +AVReceiver - SB Player3, 2x Logitech Harmony Hub, echo dot Gen3

Brockmann

Nix gegen DOIF und nur als ergänzender Hinweis gedacht:
Das statistics-Modul macht das und noch einiges mehr quasi "out of the box", beispielsweise auch Tendenz beim Luftdruck oder Durchschnitt über einen Zeitraum X für Windrichtung und -stärke usw.
Die Daten werden als Reading in die Wetterstation geschrieben, deshalb ist es eine schöne Ergänzung und Aufwertung, finde ich.