FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: hre1 am 02 Mai 2020, 23:42:22

Titel: DOIF: Befehl mit Komma und zusätzlicher wait Angabe
Beitrag von: hre1 am 02 Mai 2020, 23:42:22
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... :)

Titel: Antw:DOIF: Befehl mit Komma und zusätzlicher wait Angabe
Beitrag von: Otto123 am 02 Mai 2020, 23:50:03
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
Titel: Antw:DOIF: Befehl mit Komma und zusätzlicher wait Angabe
Beitrag von: hre1 am 03 Mai 2020, 00:19:14
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! ;)
Titel: Antw:DOIF: Befehl mit Komma und zusätzlicher wait Angabe
Beitrag von: Otto123 am 03 Mai 2020, 00:58:24
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 ;)
Titel: Antw:DOIF: Befehl mit Komma und zusätzlicher wait Angabe
Beitrag von: hre1 am 03 Mai 2020, 01:35:41
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!