Hallo,
ich habe da ein Problem mit
at und einem
Readingsval bei der Definition und sehe vermutlich den Wald vor Bäumen nicht.
Folgende Definition möchte ich haben:
Zitatdefine Zeit dummy
set Zeit 2016-03-02T12:00
define X1 at {ReadingsVal("Zeit","state","9999-12-31T23:59").":00"} set .....
als Antwort auf das define X1 bekomme ich immer
the function "ReadingsVal("Zeit","state","9999-12-31T23:59").":00"" must return a timespec and not 2016-03-02T12:00:00.
Füge ich diese Zeitangabe direkt ein, also
Zitatdefine X1 at 2016-03-02T12:00:00 set ....
geht das ohne Probleme.
Setze ich Zeit auf eine reine Uhrzeit, z.B. 12:00 geht es auch.
Was mache ich falsch?
Viele Grüße
Versuch es mal mit zusätzlichen runden Klmmern {(...)}
Also das war dann leider nicht die Lösung, sah hoffnungsvoll aus. Ich habe auch mal beim Defaultwert eine "richtige" Zeit angegeben, aber das war es auch nicht.
fhem> list Zeit
Internals:
CFGFN
NAME Zeit
NR 138
STATE 2016-03-02T12:00
TYPE dummy
Readings:
2016-03-02 14:14:25 state 2016-03-02T12:00
Attributes:
fhem> define X1 at {(ReadingsVal("Zeit","state","00:00").":00")} set ....
the function "(ReadingsVal("Zeit","state","00:00").":00")" must return a timespec and not 2016-03-02T12:00:00.
fhem>
Das funktioniert übrigens ebenfalls nicht, würde eigentlich auch meiner Absicht nicht entsprechen. Auch mehr Klammern haben nichts gebracht.
fhem> set Zeit 12:00
fhem> define X1 at {"2016-03-02T".(ReadingsVal("Zeit","state","00:00").":00")} set ....
the function ""2016-03-02T".(ReadingsVal("Zeit","state","00:00").":00")" must return a timespec and not 2016-03-02T12:00:00.
fhem>
Und das ist mir noch eingefallen:
fhem> set Zeit 2016-03-02T16:00:00
fhem> define X1 at {time_str2num(ReadingsVal("Zeit","state","00:00:00"))} set Anwesend xy
the function "time_str2num(ReadingsVal("Zeit","state","00:00:00"))" must return a timespec and not 1456930800.
Etwas umständlicher sollte es gehen.
{my $t=ReadingsVal("Zeit","state","9999-12-31T23:59").":00";;fhem("define X1 at $t set .....")}
Vlt. weiss aber jemand eine bessere Lösung.
Gruß
Hans
Das funktioniert, muss ich es halt so machen...... :-\
Danke.
Übrigens: In der Commandref wird zu <datespec> nicht erwähnt, dass auch eine Perlfunktion angegeben werden kann, sondern nur zu <timespec>.
set Zeit 12:00
define X1 at {ReadingsVal("Zeit","state","23:59")} set .....
Funktioniert einwandfrei.
stimmt!!! Da war bei mir wohl der Wunsch der Vater der Lesebrille 8)