- Grundsätzlich gilt die Automatik = Wetterstation
- Vorzeitig kann durch manuellen Taster umgeschaltet werden (wenn Automatik auf Nacht ist, kann manuell schon Tag eingeschaltet werden. Wenn Automatik auf Tag ist, kann manuell schon Nacht eingeschaltet werden).
Unter diesen Voraussetzungen scheint es mit folgender Custom-Logik zu funktionieren:
- Eine Variable "Override" (manuelles Übersteuern ja oder nein) steuert einen Multiplexer. Abhängig davon wird entweder der Wert der Wetterstation oder (einmalig) der übersteuernde Wert vom Taster an den Ausgang übergeben.
- "Override" wird true, wenn sich die Flanke der manuellen Übersteuerung ändert. Dann wird (einmalig) der manuelle Wert auf den Ausgang gesendet.
- Sobald die Automatik den Status wechselt (also nachzieht), wird "Override" = false. Ab da greift wieder die Automatik. Wenn die Automatik sendet, wird der manuelle Wert der Automatik angepasst, damit eine Flankenänderung des manuellen Eingang erkannt werden kann.
Code: Alles auswählen
{
"Level":[
["$Wetterstation","bool",false],
["$Manuell","bool",false],
["$Override","bool",false],
["$Out","bool",false],
["$True","bool",true],
["$False","bool",false]
],
"Module":[
["Latch","$True","$Override","$Manuell",3],
["Latch","$False","$Override","$Wetterstation",3],
["Latch","$Wetterstation","$Manuell","$Wetterstation",3],
[ "Multiplexer", ["$Wetterstation", "$Manuell"], "$Out", "$Override"]
],
"Input":[
["Wetterstation","Tag=1 / Nacht=0","$Wetterstation","c"],
["Manuell","Tag=1 / Nacht=0","$Manuell","c"]
],
"Output":[
["Tag/Nacht","Tag=1 / Nacht=0","$Out","c"],
["Debug_Override","Debug","$Override","c"]
]
}