Hi,
Ich würde gerne innerhalb einer Logik zeitabhängige IF schleifen realisieren.
Dazu hab ich mir als Test folgendes erstellt.
test.py
Als auslöser hab ich einfach ein Licht item als watch_item gesetzt.
Als Ergebnis werden alle sh.* Befehle ausgeführt, obwohl eigentlich nur die letzte IF schleife aktuell gültig wäre
LOG
Wo liegt der Fehler bzw. wie schreibt man meine Anforderung besser?
Ich würde gerne innerhalb einer Logik zeitabhängige IF schleifen realisieren.
Dazu hab ich mir als Test folgendes erstellt.
test.py
Code:
tageszeit = sh.now() if tageszeit.hour > 10 or tageszeit.hour < 12: sh.ZS.Test(1) sh.EG.Licht.VRWand(1) if tageszeit.hour > 15 or tageszeit.hour < 17: sh.ZS.Test(0) sh.EG.Licht.VRDecke(1) if tageszeit.hour > 18 or tageszeit.hour < 22: sh.ZS.Test(0) sh.EG.Buero.Dimmen(10)
Code:
[Test] filename = Test.py watch_item = EG.Buero.Schalten
LOG
Code:
2014-03-27 20:27:09,735 DEBUG Main Item EG.Buero.Schalten = True via Visu 192.168.0.1:52465 None -- item.py:__update:363 2014-03-27 20:27:09,741 DEBUG Main Triggering Test - by: Item source: EG.Buero.Schalten dest: None value: True -- scheduler.py:trigger:162 2014-03-27 20:27:09,748 DEBUG Test Item ZS.Test = True via Logic None None -- item.py:__update:363 2014-03-27 20:27:09,758 DEBUG Test Item EG.Licht.VRWand = True via Logic None None -- item.py:__update:363 2014-03-27 20:27:09,768 DEBUG Test Item ZS.Test = False via Logic None None -- item.py:__update:363 2014-03-27 20:27:09,771 DEBUG Main knx: 0.0.1 set 5/0/21 to 01 -- __init__.py:parse_telegram:193 2014-03-27 20:27:09,778 DEBUG Test Item EG.Licht.VRDecke = True via Logic None None -- item.py:__update:363 2014-03-27 20:27:09,788 DEBUG Test Item EG.Buero.Dimmen = 10 via Logic None None -- item.py:__update:363
Kommentar