[Gelöst] DWD Aktion bei Gewitter

Begonnen von fExplorer, 20 Mai 2019, 17:00:15

Vorheriges Thema - Nächstes Thema

fExplorer

Hallo,

ich habe ein notify welches bei DWD Aktualisierung Events auslösen soll, falls eine Gewitterwarnung vorliegt und wir uns in dem Gewitterzeitraum befinden:

DWD { if (index ( lc(ReadingsVal("DWD", "a_0_eventDesc", undef)), "gewitter" ) != -1 and time_str2num(ReadingsVal("DWD", "a_0_onset", undef) ) >= time() and time_str2num(ReadingsVal("DWD", "a_0_expires", undef) ) < time() ) {fhem("set myTestSwitch1 on; set Rollo Ab"); }else{ fhem("set myTestSwitch1 off; set Rollo Auf"); }}

Mein Problem liegt beim Auswerten von a_0_eventDesc.
(Wenn gewitter in ReadingsVal("DWD", "a_0_expires".. vorhanden,...)
Wenn ich die index funktion mit lowercase in einem perl script teste erhalte ich die gewünschten Ergebnisse. Woran kann es liegen dass es in fhem nicht live finktioniert und auch bei aktivem Gewitter mein Rollo hochgefahren wird?



mumpitzstuff

time_str2num(ReadingsVal("DWD", "a_0_onset", undef) ) >= time()

time_str2num(ReadingsVal("DWD", "a_0_expires", undef) ) < time()

Ich vermute das hier ist falsch? onset sollte doch in der Vergangenheit liegen, also kleiner als time() sein und expires in der Zukunft, also größer/gleich sein.

fExplorer

Zitat von: mumpitzstuff am 20 Mai 2019, 17:45:31
time_str2num(ReadingsVal("DWD", "a_0_onset", undef) ) >= time()

time_str2num(ReadingsVal("DWD", "a_0_expires", undef) ) < time()

Ich vermute das hier ist falsch? onset sollte doch in der Vergangenheit liegen, also kleiner als time() sein und expires in der Zukunft, also größer/gleich sein.

Knick in der Optik ;-) Danke

Ich habe das jetzt so
DWD { if ( ReadingsVal("DWD", "a_0_event", 0) > 30 and ReadingsVal("DWD", "a_0_event", 0) < 36 and time_str2num(ReadingsVal("DWD", "a_0_onset", 0) ) <= time() and time_str2num(ReadingsVal("DWD", "a_0_expires", 0) ) > time() ) {fhem("set Gewitter on"); }else{ fhem("set Gewitter off"); }}