Hallo zusammen,
ich habe folgenden Befehl bei mir eingebaut:
define n_wakeupChange notify WeckerMorgens {fhem("modify Wecker_morgens *$EVENT");;}
Hierbei wird ein Dummy ausgelesen, bei dem mit einem Slider eine Zeit eingestellt wird. Das klappt auch ganz gut, allerdings will fhem.cfg nach jeder Änderung neu gespeichert werden, da der Befehl:
define Wecker_morgens at *07:30 ...
damit aktualisiert wird. Ich würde gerne erreichen, dass die Speicherung hier ohne Rückfrage vorgenommen wird.
VG Yil
Hallo Yil,
baust Du einfach ein save
dazu.
Gruß Otto
Oder Du benutzt wie im at beschrieben "modifyTimeSpec".
Sehr cool! Danke! :)
modifyTimeSpec
beschwert sich, dass über $EVENT keine Sekunden übermittelt werden:
n_wakeupChange return value: Wrong timespec *08:08: either HH:MM:SS or {perlcode}
Definiert habe ich das so:
define WeckerMorgens dummy
attr WeckerMorgens setList:time
attr WeckerMorgens webCmd:state
Gibt's da nen Trick?
VG Yil
Zitat von: Yil am 16 Februar 2016, 08:18:46
Sehr cool! Danke! :)
modifyTimeSpec
beschwert sich, dass über $EVENT keine Sekunden übermittelt werden:
n_wakeupChange return value: Wrong timespec *08:08: either HH:MM:SS or {perlcode}
Definiert habe ich das so:
define WeckerMorgens dummy
attr WeckerMorgens setList:time
attr WeckerMorgens webCmd:state
Gibt's da nen Trick?
VG Yil
Vielleicht $EVENT00, $EVENT."00", "$EVENT00", musst mal probieren, wie Du die 00 angehängt bekommst. Oder $EVENT=~s/:$//, $EVENT=~s/\:$//, chop($EVENT) damit löschst Du den ":"
$EVENT:00
funktioniert prima 8)
Der Vorteil ggü. dem mofify-Befehl ist, dass ich nicht mit "save" arbeiten muss. Ich hatte hierbei wiederholt das Phänomen, dass die komplette (und mittlerweile auch recht komplexe) Definition des AT-Befehls komplett aus der fhem.cfg gelöscht wurde.
Was mich zur nächsten Frage bringt:
mit "modifyTimeSpec" ändere ich zwar die Zeit, aber wie die Ausführungshäufigkeit, die als Stern davor steht? Ich würde gerne neben der wiederholten auch die "einmalige" Ausführung zulassen und müsste das jeweils definieren.
fhem("set Wecker1 modifyTimeSpec *$EVENT:00")
produziert einen (nicht ganz unerwarteten) Fehler:
set Wecker1 modifyTimeSpec *16:10:00 : Wrong timespec *16:10:00: either HH:MM:SS or {perlcode}
Dazu sagt die Commandref:
ZitatÄndert die Ausführungszeit. Achtung: die N-malige Wiederholungseinstellung wird ignoriert.
Somit komme ich zum DOIF
define deinWecker DOIF ([[zeitDummy]] and [?WiederholenDummy]) (machwas)
zeitDummy = HH:MM oder HH:MM:SS oder Sekunden nach Mitternacht
WiederholenDummy = 0|1