Automatisches Speichern der fhem.cfg nach modify

Begonnen von Yil, 14 Februar 2016, 23:06:25

Vorheriges Thema - Nächstes Thema

Yil

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
HM CCU3 und HCU mit ca. 50 HM-Komponenten inkl. Bausätzen
fhem auf RPi mit Sonos, EnOcean-CUL, ZWAVE-CUL und Bluetooth,
HUE, UniFi

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Ellert

Oder Du benutzt wie im at beschrieben "modifyTimeSpec".

Yil

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
HM CCU3 und HCU mit ca. 50 HM-Komponenten inkl. Bausätzen
fhem auf RPi mit Sonos, EnOcean-CUL, ZWAVE-CUL und Bluetooth,
HUE, UniFi

Ellert

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 ":"

Yil

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

HM CCU3 und HCU mit ca. 50 HM-Komponenten inkl. Bausätzen
fhem auf RPi mit Sonos, EnOcean-CUL, ZWAVE-CUL und Bluetooth,
HUE, UniFi

Ellert

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