FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: jailbreaker07 am 21 Dezember 2017, 20:07:32

Titel: DOIF: aktuelle Uhrzeit + 5 Minuten in ein Dummy schreiben
Beitrag von: jailbreaker07 am 21 Dezember 2017, 20:07:32
Hallo,
folgendes DOIF habe ich mir für meine Zwecke umgebaut:

define di_average DOIF ([08:00]) (set TH_Modul desired {([default:temperature]+[outdoor:temperature])/2})

Meins:
define di_average DOIF ([08:00])  ([Status_Regentropfen]<1)
(set Auto_auf {([Uhrzeit]+[00:05])})


Ich möchte zu der aktuellen Uhrzeit (Uhrzeit ist in einen Dummy gesetzt) 5 Minuten hinzu adieren, und diese Zeit dann in das  Dummy "Auto_auf" schreiben.

Jedoch kommt immer folgender error code bei der Ausführung:

   
Syntax error at (eval 333195) line 1, near "19:"

Vielen dank

Gruß

Thorsten

   
Titel: Antw:DOIF: aktuelle Uhrzeit + 5 Minuten in ein Dummy schreiben
Beitrag von: Ellert am 21 Dezember 2017, 20:22:09
Du kannst die Zeit gleich im DOIF setzen, das spart den Dummy.
setreading $SELF time {(time + 300)}
Titel: Antw:DOIF: aktuelle Uhrzeit + 5 Minuten in ein Dummy schreiben
Beitrag von: jailbreaker07 am 21 Dezember 2017, 20:54:57
Hey,
setreading $SELF time {(time + 300)}

unter den Reading time steht bei mir dann : 1513886222.34104

Wenn ich das so mache:
([Status_Regentropfen]<1)
(setreading $SELF time {(TimeNow)})


dann steht bei mir Uhrzeit und Datum..... nur wie mache ich das nur die Uhrzeit da steht und dann 5 Minuten dazu addiert werden?

Gruß

Thorsten
Titel: Antw:DOIF: aktuelle Uhrzeit + 5 Minuten in ein Dummy schreiben
Beitrag von: Ellert am 21 Dezember 2017, 21:07:11
Rechnen geht nur mit Sekunden, Du musst die Sekunden wieder formatieren. Da gibt es verschiedene Möglichkeiten:

https://wiki.fhem.de/wiki/DevelopmentModuleAPI#Time_.2F_Timestamp und dort z.B. FmtDateTime
Titel: Antw:DOIF: aktuelle Uhrzeit + 5 Minuten in ein Dummy schreiben
Beitrag von: jailbreaker07 am 21 Dezember 2017, 21:38:52
Hallo,
mit diesem code habe ich fast das richtige Ergebniss... : Thu Dec 21 21:39:28 2017
Mit dem Regex [0-9,:]{8} bekomme ich auch nur die Uhrzeit herausgefiltert...... nur wie baue ich ich das jetzt im DOIF ein?

([Muster] eq "on")
DOELSE
(setreading $SELF time {(localtime (time + 300))})
Titel: Antw:DOIF: aktuelle Uhrzeit + 5 Minuten in ein Dummy schreiben
Beitrag von: Ellert am 21 Dezember 2017, 23:10:26
Zitatnur wie baue ich ich das jetzt im DOIF ein
Es sollte jetzt ein Reading time mit der Uhrzeit im DOIF geben , oder was meinst Du mit "einbauen"
Titel: Antw:DOIF: aktuelle Uhrzeit + 5 Minuten in ein Dummy schreiben
Beitrag von: jailbreaker07 am 21 Dezember 2017, 23:21:47
Jetzt im Moment habe ich unter time "Thu Dec 21 21:39:28 2017" stehen ich möchte dort aber nur die Uhrzeit stehen haben.
Hatte da an Regeex gedacht, im Regular Expression Tester habe über die Expression [0-9,:]{8}  aus Thu Dec 21 21:25:45 2017  die Uhrzeit 21:25:45  erhalten.
Und nur diese Uhrzeit möchte ich im Reading time von dem DOIF haben.

Gruß

Thorsten
Titel: Antw:DOIF: aktuelle Uhrzeit + 5 Minuten in ein Dummy schreiben
Beitrag von: Ellert am 22 Dezember 2017, 05:59:46
Versuche mal
localtime (time + 300) =~ /(\d\d:\d\d:\d\d)/;$1

evtl. das Semikolon doppeln
Titel: Antw:DOIF: aktuelle Uhrzeit + 5 Minuten in ein Dummy schreiben
Beitrag von: jailbreaker07 am 23 Dezember 2017, 13:34:04
Hey Ellert,
vielen Dank für die Lösung :-)

Gruß

Thorsten


Gesendet von iPhone mit Tapatalk