Hallo zusammen, Ich nutze in einem DOIf ein Reading um damit zu rechnen.
Hier mal das DOIF
defmod do_licht_S6_off DOIF ([[doif_Klappensteuerung_S6:timer_01_c01]-{sunset_abs(-1800)}]) (set Licht_S6_off off)\
DOELSE (set Licht_S6_off on)
Das doif_Klappensteuerung_S6:timer_01_c01 hat den Wert 12.02.2019 15:00:00. Ich brauche aber nur die 15:00:00 und möchte dort noch 5 Minuten also 300 Sekunden dazu rechnen. Das bekomme ich irgendwie nicht hin. .EVTPART1 war mein erster Gedanke. Funktioniert aber verständlicherweise nicht
Würde mich über einen Beispielcode sehr freuen
Danke
Andreas
Die deutschsprachige Befehlsreferenz ist für DOIF immer die erste Anlaufstelle zur Beantwortung von Fragen, auch für Deine ;)
https://commandref.fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen
Danke, das hatte ich nicht gefunden
Hallo,
vielen Dank, das mit dem auslesen der Zeit hat schon mal geklappt
Hier mein jetziger Code
defmod do_licht_S4_off DOIF ([[doif_Klappensteuerung_S4:timer_01_c01:"(\d\d):(\d\d):(\d\d)":"$1:$2:$3"]-{sunset_abs(-1800)}]) (set Licht_S4_off off)\
DOELSE (set Licht_S4_off on)
Was mir jetzt noch fehlt ist, das bei dem Reading noch 5 Minuten dazugerechnet werden sollen. mit +[300] bin ich vom Datum her im September angekommen. Habe FHEM Referenz durchgeschaut, auch hier im Forum den Beitrag zum rechnen mit Zeiten. Ich gehe davon aus das ich da einfach etwas falsch verstehe.
Vielen Dank
Andreas
Du könntest das Inhaltsverzeichnis der deutschsprachigen Befehlsreferenz nutzen, um Themen zu finden, deren Inhalt wahrscheinlich weiter hilft. Dort sollte sich auch etwas zu "Zeit" und "berechen" finden lassen.
Du kannst die Voreinstellung ändern, damit die deutschsprachige Hilfe direkt auch in der Detailansicht angezeigt wird, https://wiki.fhem.de/wiki/DOIF/Tipps_zur_leichteren_Bedienung
Es gibt aktuell sogar eine ähnliche, gelöste Frage im Forum https://forum.fhem.de/index.php/topic,97310.0.html
Man könnte sich auch merken, Rechnungen mit Zeiten werden immer in runde Klammern gesetzt.
Hi,
Ich lese DOIF Timer Zeiten mit substr aus dem Reading aus:
{(substr(ReadingsVal("DOIF","timer_01_c01",""),11,8))}
ergibt dann eine Zeit wie 00:00.
Was bei dir ungefähr so sein könnte:
defmod do_licht_S4_off DOIF ([{(substr(ReadingsVal("doif_Klappensteuerung_S4","timer_01_c01",""),11,8))}-{sunset_abs(-1800)}]) (set Licht_S4_off off)\
DOELSE (set Licht_S4_off on)
und mit Addieren von 300 sec:
defmod do_licht_S4_off DOIF ([({(substr(ReadingsVal("doif_Klappensteuerung_S4","timer_01_c01",""),11,8))}+300)-{sunset_abs(-1800)}]) (set Licht_S4_off off)\
DOELSE (set Licht_S4_off on)
(möglicherweise muss hier noch eine eckige Klammer drum gesetzt werden)
es geht auch:
defmod do_licht_S4_off DOIF ([([doif_Klappensteuerung_S4:timer_01_c01:"(\d\d:\d\d:\d\d)"]+300)-{sunset_abs(-1800)}]) (set Licht_S4_off off)\
DOELSE (set Licht_S4_off on)
... und für den Eigennamen des DOIF kann die Kurzform $SELF angegeben werden.
[$SELF:timer_01_c01:"(\d\d:\d\d:\d\d)"]
Zitat von: Ellert am 13 Februar 2019, 19:21:31
... und für den Eigennamen des DOIF kann die Kurzform $SELF angegeben werden.
[$SELF:timer_01_c01:"(\d\d:\d\d:\d\d)"]
und wenn wir noch weiter überlegen, dann fällt uns bestimmt noch eine kürzere Darstellung ein :)
Super,
vielen Dank.
Andreas
Zitat von: Damian am 13 Februar 2019, 20:29:30
und wenn wir noch weiter überlegen, dann fällt uns bestimmt noch eine kürzere Darstellung ein :)
In der Tat
[$SELF:timer_01_c01:"([\d:]{8})"]
Zitat von: Ellert am 13 Februar 2019, 23:02:02
In der Tat [$SELF:timer_01_c01:"([\d:]{8})"]
einen habe ich noch:
[$SELF:timer_01_c01:"(.{8}$)"]
Auch nicht schlecht, aber nur ohne Wochentagbeschränkung.