Merkwürdiges Verhalten von at und Readingsval

Begonnen von Ruebezahl, 02 März 2016, 10:40:03

Vorheriges Thema - Nächstes Thema

Ruebezahl

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


Ellert

Versuch es mal mit zusätzlichen runden Klmmern {(...)}

Ruebezahl

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>

Ruebezahl

#3
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.

Hans Franz

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
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

Ruebezahl

Das funktioniert, muss ich es halt so machen......  :-\
Danke.

Ellert

Ü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.

Ruebezahl

stimmt!!! Da war bei mir wohl der Wunsch der Vater der Lesebrille  8)