Hallo zusammen,
habe mal wieder ein Problem mit DOIF.
der erste "Befehl" funktioniert, der zweite DOELSEIF leider nicht
defmod DS_1_Rollo_Ankleide DOIF ([16:00-22:30] and [BewM_HM:brightness] < 100) (set Rollo_Ankleide down_for_timer 16)(set Rollo_Li_Ma down_for_timer 12) DOELSEIF ([BewM_HM:brightness] < 60) (set Rollo_Ankleide close)(set Rollo_Li_Ma close)
attr DS_1_Rollo_Ankleide room Rolladen_Oben
attr DS_1_Rollo_Ankleide wait 2,5:2,5
Danke schon mal für die Hilfe
denke, daß der DOELSEIF-Zweig erst nach 22:30 ausgeführt wird, da der erste Zweig noch wahr ist...
Da gebe ich meinem Vorredner Recht, begrenze die erste Abfrage auf >60 und <100, dann sollte es funktionieren.
von unterwegs...
Aber ist es nicht so, dass zuerst beide Argumente
DOIF ([16:00-22:30] and [BewM_HM:brightness] < 100) (set Rollo_Ankleide down_for_timer 16)(set Rollo_Li_Ma down_for_timer 12)
anstehen müssen um den Befehl auszuführen und
DOELSEIF ([BewM_HM:brightness] < 60)
beim zweiten nur ein Argument?
Stehe ich auf der Leitung?
Um wieviel Uhr und mit welcher Brightness hast Du erwartet, dass er auf cmd2 schaltet?
Meine Idee, ist in der Zeit von 16-22.30 und Brightness unter 100 - 12 Sek Rolladenlauf, wenn Brightness unter 60 komplett schließen.
Oder wäre es sinnvoller, dass ganze auf zwei DOIF´s aufzuteilen?
defmod DS_1_Rollo_Ankleide DOIF ([16:00-22:30] and [BewM_HM:brightness] < 100) (set Rollo_Ankleide down_for_timer 16)(set Rollo_Li_Ma down_for_timer 12)
und
defmod DS_2_Rollo_Ankleide DOIF ([16:00-22:30] and [BewM_HM:brightness] < 60) (set Rollo_Ankleide close)(set Rollo_Li_Ma close)
Du musst einfach mit dem kleineren Wert anfangen:
defmod DS_2_Rollo_Ankleide DOIF ([16:00-22:30] and [BewM_HM:brightness] < 60) (set Rollo_Ankleide close)(set Rollo_Li_Ma close)
DOELSEIF ([16:00-22:30] and [BewM_HM:brightness] < 100) (set Rollo_Ankleide down_for_timer 16)(set Rollo_Li_Ma down_for_timer 12)
Das geht in einem. Dein Problem ist, dass <60 auch <100 ist. Wenn dann die Uhrzeit passt ist Bedingung eins wahr.
von unterwegs...
Zitat von: Damian am 24 November 2019, 20:54:58
Du musst einfach mit dem kleineren Wert anfangen:
defmod DS_2_Rollo_Ankleide DOIF ([16:00-22:30] and [BewM_HM:brightness] < 60) (set Rollo_Ankleide close)(set Rollo_Li_Ma close)
DOELSEIF ([16:00-22:30] and [BewM_HM:brightness] < 100) (set Rollo_Ankleide down_for_timer 16)(set Rollo_Li_Ma down_for_timer 12)
Super Danke werde ich so einbauen.