Hi Zusammen,
kann mir jemand helfen. Ich will auf meinem Lametric Display wenn es regnet alle 5 Minuten einen Text sehen, dass es regnet.
Lösen wollte ich es mit einem DOIF.
Leider versteh ich nicht genau, wo der Fehler ist.
([+:05] and [Regensensor:"rain"]) (set lametric msg 'a72' 'Es regnet')
Beim manuellen Anstoßen über set nassmeldung_alle_5min cmd_1
kommt der Text.
Als Attribut habe ich noch do always eingetragen.
Danke für eure Hilfe
dann poste doch bitte erstmal deine komplette definition. syntax sieht soweit erstmal richtig aus
da es nicht so oft regnet, würde ich das aber auch eher über ein Notify lösen. kenne ja deine devices nicht, aber ich geh mal davon aus, dass ich das richtig zusammengewürfelt hab. ungetestet und späte uhrzeit... ;) aber so in etwa müsste das aussehen - setzt aber voraus, dass dein regensensor (wie bei mir) minütlich aktualisiert wird.
defmod nassmeldung_alle_5min Notify Regensensor:rain {
fhem "set lametric msg 'a72' 'Es regnet'" if (time_str2num(ReadingsTimestamp('lametric','msg',0)) < (time()-300)) ;
}
Hi Guybrush,
wo wäre denn den Vorteil eines Notifys?
Soweit ich es sehen kann bekomme ich im Logfile nur die Statusänderung von dry zu rain.
Das wäre die komplette Definition:
defmod nassmeldung_alle_5min DOIF ([+:05] and [Regensensor:"rain"]) (set lametric msg 'a72' 'Es regnet')
attr nassmeldung_alle_5min do always
attr nassmeldung_alle_5min room Logik
setstate nassmeldung_alle_5min cmd_1
setstate nassmeldung_alle_5min 2022-09-14 03:31:30 Device Regensensor
setstate nassmeldung_alle_5min 2022-09-14 23:41:54 cmd 1
setstate nassmeldung_alle_5min 2022-09-14 23:41:54 cmd_event set_cmd_1
setstate nassmeldung_alle_5min 2022-09-14 23:41:54 cmd_nr 1
setstate nassmeldung_alle_5min 2022-09-14 03:31:30 e_Regensensor_events commState: CMDs_done
setstate nassmeldung_alle_5min 2022-09-14 01:33:28 mode enabled
setstate nassmeldung_alle_5min 2022-09-14 23:41:54 state cmd_1
setstate nassmeldung_alle_5min 2022-09-15 01:35:00 timer_01_c01 15.09.2022 01:40:00
wenn ich das richtig sehe funktioniert das nicht weil Du zwei Events mit und abfragst. Zwei Events können nie zur selben Zeit wahr sein.
Versuch doch mal den Zustand für Dein Regensensor mit eq "rain" abzufragen ungefähr so
defmod nassmeldung_alle_5min DOIF ([+:05] and [Regensensor:DEIN_READING_MIT_rain] eq "rain") (set lametric msg 'a72' 'Es regnet')
Gruss Stephan
defmod nassmeldung DOIF ([Regensensor:state] eq "rain"]) (set lametric msg 'a72' 'Es regnet')
solle schon reichen, denn Regensensor liefert ja ein Event, daher ist das Pollen im 5 Minutentakt kontraproduktiv.
Danke für eure Hilfe.
Mir geht es darum, dass die Meldung alle 5 Minuten auf dem Lametric-Display angezeigt werden soll. Die Anzeige ist recht kurz und wechselt dann wieder zu einem Standard-Wert zum Bsp. der Uhrzeit.
Hab es gerade hiermit getestet, leider hat es nicht funktioniert:
defmod nassmeldung_alle_5min DOIF ([+:05] and [Regensensor:state eq "rain"]) (set lametric msg 'a72' 'Es regnet')
Zitat von: Andiarbeit am 16 September 2022, 12:09:19
Danke für eure Hilfe.
Mir geht es darum, dass die Meldung alle 5 Minuten auf dem Lametric-Display angezeigt werden soll. Die Anzeige ist recht kurz und wechselt dann wieder zu einem Standard-Wert zum Bsp. der Uhrzeit.
Hab es gerade hiermit getestet, leider hat es nicht funktioniert:
defmod nassmeldung_alle_5min DOIF ([+:05] and [Regensensor:state eq "rain"]) (set lametric msg 'a72' 'Es regnet')
Da war noch ein Tippfehler drin, es muss heißen:
defmod nassmeldung_alle_5min DOIF ([+:05] and [Regensensor:state] eq "rain") (set lametric msg 'a72' 'Es regnet')[/c
Großartig!
Es funktioniert. Danke :-)