Hauptmenü

DOIF und Syntaxproblem?

Begonnen von karpate, 18 August 2016, 21:40:55

Vorheriges Thema - Nächstes Thema

karpate

Hallo,
ich vermute ich sehe den Wald vor lauter Bäumen nicht mehr...ähnliche DOIF-Definitionen habe ich bereits im Einsatz, aber beim speichern der fhem.cfg erhalte ich immer die Fehlermeldung: DI_EG_WZ_Licht_Ind DOIF: expected DOELSEIF or DOELSE: \ Unknown command DOELSEIF, try help.
define DI_EG_WZ_Licht_Ind DOIF (\
([16:00-22:30]) and ([my_home_Twilight:twilight_weather] <= 30) and ((Value("Handy_Bella") eq "present") or (Value("Handy_Ingo") eq "present")) )\
(set PCA301_WZ1 on, set PCA301_WZ2 on)\
DOELSEIF (\
([16:00-22:30]) and ([my_home_Twilight:twilight_weather] <= 30) and ([FBDECT_16:power] ge "10") )\
(set PCA301_WZ1 on, set PCA301_WZ2 on)\
DOELSEIF (\
([20:00-22:30]) and ([FBDECT_16:power] le "10") )\
(set PCA301_WZ1 off, set PCA301_WZ2 off)
DOELSEIF (\
([20:00-22:30])) (set PCA301_WZ1 off, set PCA301_WZ2 off)
attr DI_EG_WZ_Licht_Ind group Steuerung


Kann mir jemand auf die Sprünge helfen an was es hängt?

Vielen Dank und Gruß
Ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

kumue

ungetestet


([16:00-22:30] and [my_home_Twilight:twilight_weather] <= 30 and (Value("Handy_Bella") eq "present") or (Value("Handy_Ingo") eq "present")) (set PCA301_WZ1 on, set PCA301_WZ2 on)
DOELSEIF ([16:00-22:30] and ([my_home_Twilight:twilight_weather] <= 30) and ([FBDECT_16:power] ge "10")) (set PCA301_WZ1 on, set PCA301_WZ2 on)
DOELSEIF ([20:00-22:30] and ([FBDECT_16:power] le "10") ) (set PCA301_WZ1 off, set PCA301_WZ2 off)
DOELSEIF ([20:00-22:30]) (set PCA301_WZ1 off, set PCA301_WZ2 off)

karpate

Hallo kumue und Danke,
in fhem.cfg klappt das Speichern

define DI_EG_WZ_Licht_Ind DOIF ([16:00-22:30] and [my_home_Twilight:twilight_weather] <= 30 and (Value("Handy_Bella") eq "present") or (Value("Handy_Ingo") eq "present")) (set PCA301_WZ1 on, set PCA301_WZ2 on)\
DOELSEIF ([16:00-22:30] and ([my_home_Twilight:twilight_weather] <= 30) and ([FBDECT_16:power] ge "10")) (set PCA301_WZ1 on, set PCA301_WZ2 on)\
DOELSEIF ([20:00-22:30] and ([FBDECT_16:power] le "10") ) (set PCA301_WZ1 off, set PCA301_WZ2 off)\
DOELSEIF ([20:00-22:30]) (set PCA301_WZ1 off, set PCA301_WZ2 off)


Warum ging es mit einer ersten Version nicht zu speichern? Ich finde es übersichtlicher und einfacher zu lesen, wenn der Code in mehrere Zeilen aufgeteilt ist...
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

KernSani

Zitat von: karpate am 18 August 2016, 22:52:55
Ich finde es übersichtlicher und einfacher zu lesen, wenn der Code in mehrere Zeilen aufgeteilt ist...
DOIF braucht kein \ für mehrere Zeilen. Einfach ENTER im Editor drücken ;-) http://fhem.de/commandref_DE.html#DOIF_Lesbarkeit_der_Definitionen


RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

karpate

Hallo KernSani,

Danke für den Hinweis ;)
Ich werde in Zukunft nach Beschreibung von betateilchen vorgehen https://forum.fhem.de/index.php/topic,54063.0.html
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

KernSani

So mache ich das auch immer... Wobei ich meistens eher mit einer rudimentären Grundform meine geplanten DOIFs anfange, sowas wie
define mydoif DOIF ([device:reading] = x)(set device on)
Viel Erfolg,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...