Ich bin dabei meine Heizungssteuerung von Notifys und Scripten in meiner MyUtils auf DOIF umzustellen, da ich ein großer Fan des Moduls bin und es sehr praktisch und übersichtlich finde. Allerdings habe ich dabei folgendes Problem. Voraussetzung:
- Dummy Jahreszeit "winter" oder "sommer"
- Anwesenheitserkennung für zwei Personen mit Dummy: AE.Anja und AE.Etienne mit "on" oder "off"
- Dummy Heizung "on" oder "off" als Einfache Übersicht
- Die DOIF Anweisung aus der DEF:
([AE.Anja] eq "off" and [AE.Etienne] eq "off" and [Jahreszeit] eq "winter")
(set Heizung off, set WR.Heizung.Alle desired-temp 15.0, {Log 1, "-- Heizung runtergefahren--"})
DOELSEIF (([AE.Anja] eq "on" and [09:30-22:00|01234]) or ([AE.Etienne] eq "on" and [12:00-22:00|01234]) and [Jahreszeit] eq "winter")
(set Heizung on, set WR.Heizung.Alle desired-temp 19.0, {Log 1, "-- Heizung hochgefahren --"})
DOELSEIF ([AE.Anja] eq "off" and [AE.Etienne] eq "on" and [09:30-12:00|01234] and [Schicht] ne "Frei1" and [Jahreszeit] eq "winter")
(set Heizung on, set WR.Heizung.Alle desired-temp 19.0, {Log 1, "-- Heizung hochgefahren --"})
DOELSEIF (([AE.Anja] eq "on" and [10:00-23:00|56]) or ([AE.Etienne] eq "on" and [12:00-23:00|56]) and [Jahreszeit] eq "winter")
(set Heizung on, set WR.Heizung.Alle desired-temp 19.0, {Log 1, "-- Heizung hochgefahren --"})
DOELSEIF ([AE.Anja] eq "off" and [AE.Etienne] eq "on" and [10:00-12:00|56] and [Schicht] ne "Frei1" and [Jahreszeit] eq "winter")
(set Heizung on, set WR.Heizung.Alle desired-temp 19.0, {Log 1, "-- Heizung hochgefahren --"})
DOELSEIF ([Jahreszeit] eq "winter") (set Heizung off, set WR.Heizung.Alle desired-temp 15.0, {Log 1, "-- Heizung runtergefahren--"})
Aktuell steht Jahreszeit auf "sommer", aber trotzdem würden alle Aktionen ausgeführt werden. Wo ist mein Denkfehler? Müssten die nicht durch das -and [Jahreszeit] eq "winter"- verhindert werden?
Du machst (Anja and Uhrzeit) or (Etienne and Uhrzeit and Jahreszeit) and wird vor or ausgeführt.
So müsste es gehen:
(([AE.Anja] eq "on" and [09:30-22:00|01234] or [AE.Etienne] eq "on" and [12:00-22:00|01234]) and [Jahreszeit] eq "winter")
Den Rest müsstest Du dann selbst berichtigen.
Es kann manchmal so einfach sein. Danke, habe solange drauf geschaut und nicht gesehen, dass die Klammer gefehlt hat. Danke