Tach,
ich will in einem DOIF (hört auf ein IFTTT-Befehl) noch eine Datumsüberprüfung einführen.
Und zwar dass die Aktion darunter nur durchgeführt wird, wenn der Sonnenuntergang vorbei is.
([Web_IFTTT:"^Command.*$"] and [time_str2num($year."-".sprintf("%02i",$month)."-".sprintf("%02i",$mday)." ".ReadingsVal("Sonnenuntergang", "state",0))] < time_str2num(TimeNow()) )
Wenn ich beide Ausgaben in ein Dummy-Device schreiben lasse, is sowohl Datum (ohne time_str2num) als auch Unix-Timestamp richtig.
Trotzdem bekomm ich die Fehlermeldung
Zitaterror: Wrong timespec time_str2num($year."-".sprintf("%02i",$month)."-".sprintf("%02i",$mday)."".ReadingsVal("Sonnenuntergang","state",0)): either HH:MM:SS or {perlcode}
Wo liegt mein Fehler? (und gibt es ggf. ne einfachere methode?)
setstate Sonnenuntergang 17:35:55
setstate Sonnenuntergang 2019-01-26 21:00:09 state 17:35:55
TEst-Dummy
setstate XXX_1 2019-01-26 17:35:55
setstate XXX_1 2019-01-26 20:57:50 state 2019-01-26 17:35:55
Zitat von: call_me_driver am 26 Januar 2019, 21:05:32
Tach,
ich will in einem DOIF (hört auf ein IFTTT-Befehl) noch eine Datumsüberprüfung einführen.
Und zwar dass die Aktion darunter nur durchgeführt wird, wenn der Sonnenuntergang vorbei is.
([Web_IFTTT:"^AlexaHome.*$"] and [time_str2num($year."-".sprintf("%02i",$month)."-".sprintf("%02i",$mday)." ".ReadingsVal("Sonnenuntergang", "state",0))] < time_str2num(TimeNow()) )
Wenn ich beide Ausgaben in ein Dummy-Device schreiben lasse, is sowohl Datum (ohne time_str2num) als auch Unix-Timestamp richtig.
Trotzdem bekomm ich die Fehlermeldung
Wo liegt mein Fehler? (und gibt es ggf. ne einfachere methode?)
setstate Sonnenuntergang 17:35:55
setstate Sonnenuntergang 2019-01-26 21:00:09 state 17:35:55
([Web_IFTTT:"^AlexaHome.*$"] and [?[Sonnenuntergang]-05:00])
dürfte etwas einfacher sein ;)
Stimmt.... was macht die -05:00 ?
Zitat von: Damian am 26 Januar 2019, 21:15:06
([Web_IFTTT:"^AlexaHome.*$"] and [?[Sonnenuntergang]-05:00])
dürfte etwas einfacher sein ;)
Zitat von: call_me_driver am 26 Januar 2019, 21:17:09
Stimmt.... was macht die -05:00 ?
Ein Zeitintervall hat ein Anfang und ein Ende ;)
https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitintervallen
ah... verstehe.. du sagst quasi nicht "wenn sonnenuntergang < aktuelle zeit" ist...
sondern wenn aktuelle zeit zwischen sonnenuntergang und 5 uhr liegt...
versteh ich des richtig? dann kann ich ja 5 uhr auch durch sonnenaufgang ersetzen.... !?
Zitat von: Damian am 26 Januar 2019, 21:32:18
Ein Zeitintervall hat ein Anfang und ein Ende ;)
https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung_mit_Zeitintervallen
Zitat von: call_me_driver am 26 Januar 2019, 22:00:52
ah... verstehe.. du sagst quasi nicht "wenn sonnenuntergang < aktuelle zeit" ist...
sondern wenn aktuelle zeit zwischen sonnenuntergang und 5 uhr liegt...
versteh ich des richtig? dann kann ich ja 5 uhr auch durch sonnenaufgang ersetzen.... !?
ja
perfekt... vielen danke und noch nen schönen sa abend :D
Zitat von: Damian am 26 Januar 2019, 22:06:18
ja
Hallo,
möchte von einem Datums-reading (device:datum) die Zeitspanne zum aktuellen Datum in Tage x anzeigen.
Wie kann man das lösen ?
Gruß Peter und schöne Weihnachten
Hier eine Möglichkeit:
defmod di_diff_days DOIF init {[00:00];set_Reading("Tage",(::time_str2num("$year-".[mydevice:Datum]." 00:00:00") - ::time_str2num("$ymd 00:00:00"))/86400)}
Im Reading Tage des Moduls befindet sich die Anzahl der Tage zum Datum, welches sich in [mydevice:Datum] befindet. Das Datum wird im Format MM-DD erwartet. Bei Änderung des Datums wird die Anzahl automatisch aktualisiert.
Edit: Definition angepasst. Mit init wird sofort nach der Definition das Tage-Reading belegt.