DOIF: aktuelle Uhrzeit + 5 Minuten in ein Dummy schreiben

Begonnen von jailbreaker07, 21 Dezember 2017, 20:07:32

Vorheriges Thema - Nächstes Thema

jailbreaker07

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

   

Ellert

Du kannst die Zeit gleich im DOIF setzen, das spart den Dummy.
setreading $SELF time {(time + 300)}

jailbreaker07

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

Ellert

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

jailbreaker07

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))})

Ellert

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"

jailbreaker07

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

Ellert

Versuche mal
localtime (time + 300) =~ /(\d\d:\d\d:\d\d)/;$1

evtl. das Semikolon doppeln

jailbreaker07

#8
Hey Ellert,
vielen Dank für die Lösung :-)

Gruß

Thorsten


Gesendet von iPhone mit Tapatalk