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