ich versuche mich mal wieder an der Logikengine. Ich tue wirklich mein bestes um die zu verstehen. Leider habe ich aber keine für mich verständliche Anleitung gefunden weder per Suche hier im Forum noch im Wiki.
Ich habe folgende Aufgabe zu lösen: Unser Weinkühlschrank hat leider die Eigenschaft hin und wieder nicht richtig zu schließen und darum will ich die Tür überwachen. Wenn länger als 60 Sekunden auf soll im Wohnzimmer eine Lampe rot blinken.
Zusätzlich soll das Licht an bleiben, wenn man den Kühlschrank bestückt, da die Tür zum Raum den Bewegungsmelder verdeckt. Es soll also eine „1/true“ an die Sperre für den BWM für den akt Status gesendet werden.
Dazu habe ich einen kleinen Zigbee-Sensor oben an Tür und Gehäuse geklebt.
Mit zigbee-2-mqtt sendet der auch fleißig seine Position. Also für Tür zu = true und offen=false.
Code: Alles auswählen
{
"battery_low": false,
"contact": true,
"linkquality": 131,
"tamper": false
}

In der VISU wird der Zustand angezeigt:

Bei Wertänderung geht es also einmal an die VISU und einmal an die Logik für die Sperre:

Ich wollte mit dem „Map boolean to Integer“ den Wert umdrehen für die Sperre. Also zu=0 und auf=1. Wenn auf, dann sende eine 1 an die Sperre und Sperre den akt. Zustand, in dem Fall wenn es zu dunkel im Raum ist,geht das Licht an und bleibt so lange an, so lange die Kühlschranktür auf ist.
Nun kann ich aber die Logik so nicht speichern, da es wohl ein Problem mit der automatischen Konvertierung gibt und ein speichern nicht zugelassen wird.
Habe ich die falsche Logik gewählt?

Auch eine Timerlogikidee habe ich nicht gefunden. Also wenn eine true kommt starte ein Timer der bei Ablauf eine 1/true sendet aber mit false ein Abbruch des Timers bewirkt und bestenfalls nichts oder 0/false sendet.
Für ein Tipp wäre ich dankbar und schönen Feiertag euch!
LG Hiele
Edit: Version hinzugefügt