Hallo ich habe folgende teile meines DOIFS...
Warum wählt das DOIF erstmal CDM_4
DOELSEIF (
[MeinWetter:temp_c] => 10 and
[?HM_ZHR_Wohnzimmer:ZHR_Wohnzimmer.1.SET_TEMPERATURE]<=[$SELF:mild_FS] and
[Harmony_WZ:activity] ne "PowerOff"
)
(set HM_ZHR_Wohnzimmer datapoint 1.MANU_MODE [$SELF:mild_FS])
und wenn CMD_4 durch das DOIF ausgewählt wurde, wird sofort auf das CMD_5 (DOELSE) gewechselt...
DOELSE
(set HM_ZHR_Wohnzimmer datapoint 1.AUTO_MODE 1)
Klare Antwort: Weil heute Roma Tag ist.
Falls Du wirklich Hilfe willst, poste bitte ein list vom DOIF von dem Zustand den Du als Fehler siehst. Und möglichst auch von anderen Zuständen.
Gruß Otto
Zitat von: kotaro am 08 April 2019, 21:44:56
Hallo ich habe folgende teile meines DOIFS...
Warum wählt das DOIF erstmal CDM_4
DOELSEIF (
[MeinWetter:temp_c] => 10 and
[?HM_ZHR_Wohnzimmer:ZHR_Wohnzimmer.1.SET_TEMPERATURE]<=[$SELF:mild_FS] and
[Harmony_WZ:activity] ne "PowerOff"
)
(set HM_ZHR_Wohnzimmer datapoint 1.MANU_MODE [$SELF:mild_FS])
und wenn CMD_4 durch das DOIF ausgewählt wurde, wird sofort auf das CMD_5 (DOELSE) gewechselt...
DOELSE
(set HM_ZHR_Wohnzimmer datapoint 1.AUTO_MODE 1)
Es gibt einen Trigger und keine Bedingung ist wahr, dann wird DOELSE ausgeführt, falls noch Fragen offen sind https://wiki.fhem.de/wiki/DOIF/Einsteigerleitfaden,_Grundfunktionen_und_Erl%C3%A4uterungen, https://wiki.fhem.de/wiki/DOIF/Tipps_zur_leichteren_Bedienung, https://wiki.fhem.de/wiki/DOIF/Tools_und_Fehlersuche, https://wiki.fhem.de/wiki/Event, https://wiki.fhem.de/wiki/Event_monitor uvm.
Zitat von: Ellert am 08 April 2019, 23:28:05
Es gibt einen Trigger und keine Bedingung ist wahr, dann wird DOELSE ausgeführt, falls noch Fragen offen sind https://wiki.fhem.de/wiki/DOIF/Einsteigerleitfaden,_Grundfunktionen_und_Erl%C3%A4uterungen, https://wiki.fhem.de/wiki/DOIF/Tipps_zur_leichteren_Bedienung, https://wiki.fhem.de/wiki/DOIF/Tools_und_Fehlersuche, https://wiki.fhem.de/wiki/Event, https://wiki.fhem.de/wiki/Event_monitor uvm.
Richtig. das hab ich aus meinen Cpp-Kursen schon verstanden ^^
aber es ist ja so, das alle Bedingen für CMD_4 gültig sind, daher wird CMD_4 getriggert. und dann wenn HM_ZHR_Wohnzimmer auf die mild_FS gesetzt wird, wird plötzlich doelse getriggert. Es ist doch aber so, das mit <= doch eigentlich weiterhin die 2. Bedingung gültig sein sollte, wenn der Wert kleiner oder gleich des wertes mild_FS ist oder? da die beiden anderen Werte sich nicht ändern...
edit: ich probiere es einfach mla mit dem DOIFTools Logfile.... sonst kann ich mein langes DOIF mit den 6 oder 7 Geräten ja noch online setzen...
Zitat von: kotaro am 09 April 2019, 09:20:21
Richtig. das hab ich aus meinen Cpp-Kursen schon verstanden ^^
aber es ist ja so, das alle Bedingen für CMD_4 gültig sind, daher wird CMD_4 getriggert. und dann wenn HM_ZHR_Wohnzimmer auf die mild_FS gesetzt wird, wird plötzlich doelse getriggert. Es ist doch aber so, das mit <= doch eigentlich weiterhin die 2. Bedingung gültig sein sollte, wenn der Wert kleiner oder gleich des wertes mild_FS ist oder? da die beiden anderen Werte sich nicht ändern...
edit: ich probiere es einfach mla mit dem DOIFTools Logfile.... sonst kann ich mein langes DOIF mit den 6 oder 7 Geräten ja noch online setzen...
=> würde ich als >= schreiben
Zitat von: kotaro am 09 April 2019, 09:20:21
Richtig. das hab ich aus meinen Cpp-Kursen schon verstanden ^^
aber es ist ja so, das alle Bedingen für CMD_4 gültig sind, daher wird CMD_4 getriggert. und dann wenn HM_ZHR_Wohnzimmer auf die mild_FS gesetzt wird, wird plötzlich doelse getriggert. Es ist doch aber so, das mit <= doch eigentlich weiterhin die 2. Bedingung gültig sein sollte, wenn der Wert kleiner oder gleich des wertes mild_FS ist oder? da die beiden anderen Werte sich nicht ändern...
edit: ich probiere es einfach mla mit dem DOIFTools Logfile.... sonst kann ich mein langes DOIF mit den 6 oder 7 Geräten ja noch online setzen...
DOIF/DOELSEIF/ DOELSE funktioniert nicht so wie if/elsif/else, mehr, wie geschrieben im Einsteigerleitfaden oder in den einleitenden Worten zu DOIF in der deutschsprachigen Befehlsreferenz.
Ich präzisiere mal:
ZitatEs gibt einen Trigger und keine geprüfte Bedingung ist wahr, dann wird DOELSE ausgeführt...