Hallo in die Runde,
ich bin gerade dabei eine Szene für eine Dachfenster Steuerung zu implementieren, welche eine Logik triggert. Da ich nur mit Impulsen arbeiten kann, gibt es keine andere Möglichkeit.
Ich habe nun eine Szene erstellt, welche dann meine die Logik (WatchItem) aufruft. Nun möchte ich den Doppelten Aufruf der Szene unterbinden, bzw. die Zeit ggf. erneuern.
Was mache ich:
mit dem Item "szenen.s0001.status" möchte ich in der Logik verhindern, dass die Dachfenster mehrfach geöffnet werden.
Die Sperre (also der Status) soll je nach Szene wieder aufgehoben werden. Dazu möchte ich die Berechnung des Items "szenen.s0001.nummer_zeit" durchführen und an den Autotimer übergeben.
Ich bekomme aber immer nur die 0 zurück. Was mache ich falsch, bzw. vll. geht das ja auch nicht so. Aber wie dann?
Im Log lese ich foggendes:
P.S. Forensuche habe ich verwendet, aber keine passende Lösung gefunden.
Gruß und Danke für die Unterstützung
ich bin gerade dabei eine Szene für eine Dachfenster Steuerung zu implementieren, welche eine Logik triggert. Da ich nur mit Impulsen arbeiten kann, gibt es keine andere Möglichkeit.
Ich habe nun eine Szene erstellt, welche dann meine die Logik (WatchItem) aufruft. Nun möchte ich den Doppelten Aufruf der Szene unterbinden, bzw. die Zeit ggf. erneuern.
Was mache ich:
mit dem Item "szenen.s0001.status" möchte ich in der Logik verhindern, dass die Dachfenster mehrfach geöffnet werden.
Die Sperre (also der Status) soll je nach Szene wieder aufgehoben werden. Dazu möchte ich die Berechnung des Items "szenen.s0001.nummer_zeit" durchführen und an den Autotimer übergeben.
Ich bekomme aber immer nur die 0 zurück. Was mache ich falsch, bzw. vll. geht das ja auch nicht so. Aber wie dann?
Code:
szenen: s0001: dachfenster: type: scene enforce_update: true knx_dpt: 5 #knx_listen: 3/2/39 knx_listen: 2/0/3 nummer: type: num nummer_zeit: type: num eval: 600 if sh.szenen.s0001.dachfenster() == 1 else 900 if sh.szenen.s0001.dachfenster() == 2 else 1800 if sh.szenen.s0001.dachfenster() == 3 else 3600 if sh.szenen.s0001.dachfenster() == 4 else 10 if sh.szenen.s0001.dachfenster() == 5 else 30 if sh.szenen.s0001.dachfenster() == 6 else 0 status: type: num autotimer: sh.szenen.s0001.nummer_zeit(); 0
2024-07-05 12:16:33 NOTICE logics.Testlogik Berechneter eval aus nummer_zeit: '0'
2024-07-05 12:16:33 NOTICE logics.Testlogik Aktueller Status: '0'
2024-07-05 12:16:33 NOTICE logics.Testlogik Aktueller Status: '0'
Gruß und Danke für die Unterstützung
Kommentar