DOIF: Befehl mit Komma und zusätzlicher wait Angabe

Begonnen von hre1, 02 Mai 2020, 23:42:22

Vorheriges Thema - Nächstes Thema

hre1

Guten Abend,

bis jetzt habe ich durch das Lesen in diesem tollen Forum ja alle meine Probleme selber lösen können, aber heute hat mir die DOIF-Sytax mit einer - so dachte ich jedefalls - eher leichten Definition echt die Grenzen gezeigt.

Meine Definition sieht wie folgt aus:
defmod WG.SZ.LAMP.doif.CARLIE_NACHTLICHT.SET_EINAUS DOIF ([WG.SZ.LAMP.dummy.CARLIE_NACHTLICHT:"on"])\
(\
   ({Log(3, "$DEVICE ausgeschaltet und Timer deaktiviert")}),\
   (set WG.SZ.LAMP.hue.GROUP2.BETT scene Carlie Pink),\
   (set WG.SZ.LAMP.hue.GROUP2.BETT xy 0.5612,0.4042 : bri 1 : transitiontime 200)\
)\
DOELSE ([WG.SZ.LAMP.dummy.CARLIE_NACHTLICHT:"off"])\
(\
   ({Log(3, "$DEVICE ausgeschaltet und Timer deaktiviert")})\
   (set WG.SZ.LAMP.hue.GROUP2.BETT off)\
)
attr WG.SZ.LAMP.doif.CARLIE_NACHTLICHT.SET_EINAUS do always
attr WG.SZ.LAMP.doif.CARLIE_NACHTLICHT.SET_EINAUS group Beleuchtung
attr WG.SZ.LAMP.doif.CARLIE_NACHTLICHT.SET_EINAUS room Beleuchtung,WIR.SCHLAFZIM
attr WG.SZ.LAMP.doif.CARLIE_NACHTLICHT.SET_EINAUS wait 0,5,5:0,0


Jedoch funktioniert die Verzögerung für die 5s nicht. Ich nehme an, dass "wait" nicht die  Anweisung  "(set WG.SZ.LAMP.hue.GROUP2.BETT xy 0.5612,0.4042 : bri 1 : transitiontime 200)" berücksichtigt. Versuche ich aber nun noch eine Klammer so wie:

"((set WG.SZ.LAMP.hue.GROUP2.BETT xy 0.5612,0.4042 : bri 1 : transitiontime 200))"


einzufügen bekomme ich die Fehlermeldung:

(set WG.SZ.LAMP.hue.GROUP2.BETT xy 0.5612,0.4042 : bri 1 : transitiontime 200): Unknown command (set, try help.
   
im error Reading des DOIF. Kann mich mal bitte jemand erhellen? Die Lampen tun es derzeit ja leider nicht... :)


Otto123

#1
Hi,

das hier ((Befehl 1),(Befehl 2),(Befehl n)) oder auch ((Befehl 1)(Befehl 2)) ist der falsche Syntax.
Im Ausführungsteil sind die Befehle in dem Fall so zu schreiben
(Befehl 1)(Befehl 2)(Befehl n)
Ist hier genau erklärt https://fhem.de/commandref_DE.html#DOIF_wait

Gruß Otto
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

hre1

Erstmal ganz herzlichen Dank für deine schnelle Antwort Otto. Meinst du in etwa so?

([WG.SZ.LAMP.dummy.CARLIE_NACHTLICHT:"on"])
   (set WG.SZ.LAMP.hue.GROUP2.BETT scene Carlie Pink)
   (set WG.SZ.LAMP.hue.GROUP2.BETT xy 0.5612,0.4042 : bri 1 : transitiontime 9000)
DOELSE ([WG.SZ.LAMP.dummy.CARLIE_NACHTLICHT:"off"])
   (set WG.SZ.LAMP.hue.GROUP2.BETT off)


Damit bekomme ich dann die Fehlermeldung:

set WG.SZ.LAMP.hue.GROUP2.BETT xy 0.5612: Unknown argument xy, choose one of off:noArg on:noArg toggle:noArg statusRequest:noArg pct:colorpicker,BRI,0,1,100 bri:colorpicker,BRI,0,1,254 rgb:colorpicker,RGB color:colorpicker,CT,2000,1,6500 ct:colorpicker,CT,154,1,500 hue:colorpicker,HUE,0,1,65535 sat:slider,0,1,254 xy dimUp:noArg dimDown:noArg ctUp:noArg ctDown:noArg hueUp:noArg hueDown:noArg satUp:noArg satDown:noArg alert:none,select,lselect effect:none,colorloop lights rename savescene deletescene scene:Bettlampen#SZ#Scene,Carlie#Pink,Energie#tanken#[id=blbldxR8lujs2oz],Energie#tanken#[id=dHep667mOlIrOMR],Entspannen#[id=RWjemwJrgmMMKU8],Entspannen#[id=WsNG3ol9YhU72Mv],Frühlingsblüten#[id=40BnCPWZ3B7kGrk],Frühlingsblüten#[id=RPSFHsSQy38GG3z],Gedimmt#[id=2My8SPjHr4ruroA],Gedimmt#[id=OOP2P8Zt3awPQF-],Hell#[id=R0oChvPY72pFYNh],Hell#[id=Vl4JiWnQFFB03GR],Konzentrieren#[id=1S7HGIOYPxO5HJA],Konzentrieren#[id=ACoMFlW9pUGK1fo],Lesen#[id=IOwNqjiFdUbrN4S],Lesen#[id=V6xyYNK37h5bnYF],Nachtlicht#[id=3ukUCFEMSsqGDIV],Nachtlicht#[id=E7kJaAl3g3BGGA3],Nordlichter#[id=nhGOv2akqzlmQSv],Nordlichter#[id=snVcpunVO-9QUi9],Sonnenuntergang#Savanne#[id=5ICUJWVRZYE0XbP],Sonnenuntergang#Savanne#[id=mlKcqfCM0AjB697],Tropendämmerung#[id=7Sz21ViISsZ3CMr],Tropendämmerung#[id=q6xCEw4FMAaDfBG] intervals blink on-till-overnight off-till-overnight on-for-timer off-till on-till off-for-timer attrTemplate:?,C_01_Eurotronic_SPZB0001_Spirit_ZigBee,D_01_Xiaomi_Aqara_MCCGQ11LM_Window_Door_Sensor,E_01a_Xiaomi_Aqara_WSDCGQ11LM_Temperature_Sensor,E_01b_Xiaomi_Aqara_WSDCGQ11LM_Pressure_Sensor,E_01c_Xiaomi_Aqara_WSDCGQ11LM_Humidity_Sensor,F_01a_Xiaomi_Aqara_RTCGQ11LM_Lightlevel_Sensor,F_01a_Xiaomi_Aqara_RTCGQ11LM_Motion_Sensor,G_01_Xiaomi_Aqara_WXKG02LM_Double_Switch 0.4042 : bri 1 : transitiontime 9000: Unknown command 0.4042, try help.

Gerade eben schnell noch ausprobiert, damit klappt's jetzt:

defmod WG.SZ.LAMP.doif.CARLIE_NACHTLICHT.SET_EINAUS DOIF ([WG.SZ.LAMP.dummy.CARLIE_NACHTLICHT:"on"])\
   (set WG.SZ.LAMP.hue.GROUP2.BETT scene Carlie Pink)\
   ((set WG.SZ.LAMP.hue.GROUP2.BETT xy 0.5612,0.4042 : bri 1 : transitiontime 100))\
DOELSE ([WG.SZ.LAMP.dummy.CARLIE_NACHTLICHT:"off"])\
   (set WG.SZ.LAMP.hue.GROUP2.BETT off)\

attr WG.SZ.LAMP.doif.CARLIE_NACHTLICHT.SET_EINAUS do always
attr WG.SZ.LAMP.doif.CARLIE_NACHTLICHT.SET_EINAUS group Beleuchtung
attr WG.SZ.LAMP.doif.CARLIE_NACHTLICHT.SET_EINAUS room Beleuchtung,WIR.SCHLAFZIM
attr WG.SZ.LAMP.doif.CARLIE_NACHTLICHT.SET_EINAUS wait 0,5:0,0


Nochmals vielen lieben Dank! ;)

Otto123

Sobald bei DOIF ein Befehl ein Komma enthält der zum Befehl gehört und nicht als Trenner zwischen den Befehlen dient, muss man doppelt Klammern. Hast Du richtig gemacht ;)
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

hre1

Danke dir, aber ohne deinen Denkanstoß hätte ich den Knoten im Hirn nie entwirrt bekommen. Schön das es jetzt endlich funktioniert.;)

Viele Grüße nach Leipzig!