ich beschäftige mich zur Zeit (wie sollte es anders sein) mit dem Thema Weihnachtsbeleuchtung und Rollladensteuerung.
Ich habe mit dafür derzeit folgende Custom-Logik gebaut, die aber nicht ganz das tut, was ich bisher darin einbauen wollte.
Code: Alles auswählen
"Input": [
["Tag", "Verknüpfung für Tag", "$Tag", "a"],
["Nacht", "Verknüpfung für Nacht", "$Nacht", "a"],
["Dämmerung morgens", "Verknüpfung für Dämmerung morgens", "$Daemmerung_morgens", "a"],
["Dämmerung abends", "Verknüpfung für Dämmerung abends", "$Daemmerung_abends", "a"],
["Weihnachtsbeleuchtung Loggia", "Verknüpfung mit Weihnachtsbeleuchtung Loggia", "$Weihnachten_außen", "a"],
["Weihnachtsbeleuchtung Fenster", "Verknüpfung mit Weihnachtsbeleuchtung Fenster", "$Weihnachten_innen", "a"],
["Nacht-Modus", "Sperreingang für Nachtmodus", "$Modus_Nacht", "a"],
["Automatik-Sperre", "Sperreingang für Automatik", "$Automatik", "a"]
],
"Output": [
["Rollladen Loggia links", "Ausgang Rollladen Loggia links", "$Rollladen_Loggia_links", "a"],
["Rollladen Loggia Mitte", "Ausgang Rollladen Loggia Mitte", "$Rollladen_Loggia_Mitte", "a"],
["Rollladen Loggia rechts", "Ausgang Rollladen Loggia rechts", "$Rollladen_Loggia_rechts", "a"],
["Rollladen Nordseite links", "Ausgang Rollladen Nordseite links", "$Rollladen_Nordseite_links", "a"],
["Rollladen Nordseite rechts", "Ausgang Rollladen Nordseite rechts", "$Rollladen_Nordseite_rechts", "a"]
],
"Level": [
["$Tag", "bool", false],
["$Nacht", "bool", false],
["$Daemmerung_morgens", "bool", false],
["$Daemmerung_abends", "bool", false],
["$Weihnachten_außen", "bool", false],
["$Weihnachten_innen", "bool", false],
["$Modus_Nacht", "bool", false],
["$Automatik", "bool", false],
["$Rollladen_Loggia_links", "integer", 0],
["$Rollladen_Loggia_Mitte", "integer", 0],
["$Rollladen_Loggia_rechts", "integer", 0],
["$Rollladen_Nordseite_links", "integer", 0],
["$Rollladen_Nordseite_rechts", "integer", 0],
["$open", "integer", 0],
["$close", "integer", 100],
["$Rollladen_intern", "integer", 0],
["$const_true", "bool", true],
["$const_false", "bool", false],
["$Trigger_close", "bool", false],
["$Trigger_open", "bool", false],
["$Trigger_int_1", "bool", false],
["$Trigger_int_2", "bool", false],
["$Trigger_int_3", "bool", false],
["$Trigger_Loggia", "bool", false],
["$Trigger_Nordseite", "bool", false]
],
"Module": [
/** Wenn Nacht = true, dann schreibe Wert 100 % für Rollladen in interne Variable und setzte Trigger close */
["Latch", "$close", "$Rollladen_intern", "$Nacht", 1],
["Latch", "$const_true", "$Trigger_close", "$Nacht", 1],
/** Wenn Nacht auf false geht dann 0 % für Rollladen in interne Variable und setze Trigger open */
["Latch", "$open", "$Rollladen_intern", "$Nacht", 2],
["Latch", "$const_true", "$Trigger_open", "$Nacht", 2],
/** Verzögere auffahren, bis Nachtmodus = 0 */
["And", ["$Trigger_open", "-$Modus_Nacht"], "$Trigger_int_1"],
/** Verzögere zufahren, so lange, Weihnachtsbeleuchtung an ist */
["And", ["$Trigger_close", "-$Weihnachten_außen"], "$Trigger_int_2"],
["And", ["$Trigger_close", "-$Weihnachten_innen"], "$Trigger_int_3"],
/** Trigger zusammenführen */
["Or", ["$Trigger_int_1", "$Trigger_int_2"], "$Trigger_Loggia"],
["Or", ["$Trigger_int_1", "$Trigger_int_3"], "$Trigger_Nordseite"],
/** Schreibe Wert für Rollladen_Loggia */
["Latch", "$Rollladen_intern", "$Rollladen_Loggia_links", "$Trigger_Loggia", 0],
["Latch", "$Rollladen_intern", "$Rollladen_Loggia_Mitte", "$Trigger_Loggia", 0],
["Latch", "$Rollladen_intern", "$Rollladen_Loggia_rechts", "$Trigger_Loggia", 0],
/** Schreibe Wert für Rollladen_Nordseite */
["Latch", "$Rollladen_intern", "$Rollladen_Nordseite_links", "$Trigger_Nordseite", 0],
["Latch", "$Rollladen_intern", "$Rollladen_Nordseite_rechts", "$Trigger_Nordseite", 0]
]
Wenn die Dämmerungssteuerung "Nacht" (oder Dämmerung, etc, aber das ist bisher noch nicht eingebaut) meldet, sollen die Rollläden zufahren.
Wenn die Nacht beendet wird, sollen die Rollläden auf fahren.
Das funktioniert auch schon ganz gut.
Allerdings sollen die Rollläden nicht zufahren, wenn die Weihnachtsbeleuchtung aktiv ist (diese Logik sendet den Trigger "Weihnachtsbeleuchtung aktiv").
Dies soll dann nachgeholt werden, wenn die Weihnachtsbeleuchtung aus geht.
Gleiches in der früh:
Die Rollläden sollen auffahren (funktioniert auch bereits), aber nicht so lange Nacht aktiv ist.
Nun zum Fehlerbild:
Die ganze Logik funktioniert auch (im Doktor-Modus, der super dafür ist), aber nur bei den ersten Betätigungen, so lange die internen Variablen (Trigger_int_1 bis Trigger_int_3) auf "false" stehen.
Sofern diese einmal auf true (durch den Trigger) gesetzt wurden, bleiben diese auf true und meine oder-Logik funktioniert nicht mehr.
Gibt es dafür eine Lösung? Mir ist noch keine eingefallen...
Weiterhin suche ich noch eine Lösung für folgende Situation:
Wenn Rollläden zu sind und Beleuchtung wird aktiviert, sollen die Rollläden auf fahren und danach wieder zu, sobald die Beleuchtung aus ist.
Wie könnte ich dies lösen??
Viele Grüße
Jürgen