the at function "Value('uptime')" must return a timespec and not ???
oder
Wrong timespec Value('uptime'): either HH:MM:SS or {perlcode}
oder vergleichbares.
Ersetze ich die Variable mit einer Zeit wie in folgendem Beispiel
define Aktion at *18:15 {Log 1,'Der Wert für uptime beträgt: '.Value('uptime')}
findet sich im Log auch der entsprechende Eintrag zum Inhalt von uptime.
Das gleiche Problem tritt übrigen auch auf, wenn ich auf, wenn ich auf die Definition des Dummy-Devices verzichte und die Variable als Perl-Variable nach folgendem Muster anlege:
define uptime_init notify Handsender_oben \
{my $uptime;; if ($we){$uptime = '12:00'} \
else \
{$uptime = '08:00'} \
{Log 1,'Der Wert für uptime beträgt: '.($uptime)}}
Hier kommt erschwerend noch hinzu, dass $uptime außerhalb des notify nicht mehr gültig ist.
Meine Frage hierzu ist nun:
Ist es überhaupt möglich, nach at mit einer Variablen zu arbeiten oder sehe ich nur nicht, wie die Konstruktion aussehen muss?Wie wärs mit dem "modify"-Befehl, um die Zeit der at-Aktion zu ändern (und ohne dummy).
Also z.B. so, weiß nicht, obs 100%ig stimmt!
define Handsender_oben FS20 0eb8 00
define Aktion at *08:00 mach_irgendwas
define uptime_init notify Handsender_oben \
{if ($we){fhem ("modify Aktion *12:00")} \
else {fhem ("modify Aktion *08:00")}
Aktion already defined, delete it first
wer weiß warum:
define uptime_init notify Handsender_oben {if ($we){fhem "modify uptime 12:00"} else {fhem "modify uptime 08:00"} }define uptime_init notify Handsender_oben {if ($we){fhem "modify uptime 12:00"} else {fhem "modify uptime 08:00"} }
in des Skript führt zu dem angegebenen Fehler. Und in dieser Zeile wird das Objekt Aktion wohl nicht ein zweites Mal angelegt, sondern nur der Teil nach at modifiziert.
Es geht mir im Augenblick auch nicht in erster Linie darum, was ich wie anders machen kann, sondern um das eingangs geschilderte Problem und die damit gestellten Fragen:
Ist es überhaupt möglich, nach at mit einer Variablen zu arbeiten oder sehe ich nur nicht, wie die Konstruktion aussehen muss?
Wenn ja, wie muss im ersten Fall die Konstruktion dann aussehen?
Wie mache ich im zweiten Fall $uptime auch außerhalb des Notify gültig?
Tritt der Fehler bei anderen genau so auf, auch der welcher bei modify auftritt?
Jedoch werde ich den Gedanken noch einmal aufgreifen und uptime anders benennen. Ich fürchte jedoch, dass das Problem bleibt.
Gruß Hubert
Gerade ausporbiert, bei mir funzt alles:
fhem> define uptime dummy
fhem> set uptime 09:00
fhem> define testtimer at {Value("uptime")} set ez_Schreibtisch on
fhem> list testtimer
Internals:
NAME testtimer
NTM 09:00:00
STATE Next: 09:00:00
define: the at function "Value("uptime")" must return a timespec and not ???
und zweites verschwindet der Testtimer bei den aufgelisteten Geräten.
Der Rest ist dann natürlich geschenkt und ich komme wieder zu meinen eingangs gestellten Fragen.
Gruß Hubert
Da muss Rudi ran :)
=8-)