Eingangssignal ist wach/schlafen -Objekt. Zusätzlich ein break bei Abwesenheit.
Schaltet früh für 5 min extra an (das macht früh insgesamt 10 min Laufzeit), dann alle 30 min 5 min.
Achso, und da meine Delock-Steckdosen über MQTT gerne "on" und "off" haben möchten musste noch ein Multiplexer dazu ...
Code: Alles auswählen
/**
* Steuerung einer Zirkulationspumpe
*
* Früh nach dem Aufstehen 5 min extra, dann 5 min alle 30 min
* Bei Abwesenheit ($Anwesenheit = 0) wird die Logik nicht ausgeführt
*/
{
"_Meta": { // Optional
"Description": "",
"Version": "1.00",
"Icon": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTIgMjFWMTVIMy41QzMuMTggMTQuMDYgMyAxMy4wNSAzIDEyQzMgNy4wMyA3LjAzIDMgMTIgM0gyMlY5SDIwLjVDMjAuODIgOS45NCAyMSAxMC45NSAyMSAxMkMyMSAxNi45NyAxNi45NyAyMSAxMiAyMUgyTTUgMTJDNSAxMy4yOCA1LjM0IDE0LjQ3IDUuOTQgMTUuNUw5LjQgMTMuNUM5LjE1IDEzLjA2IDkgMTIuNTUgOSAxMkM5IDExLjM1IDkuMjEgMTAuNzUgOS41NiAxMC4yNkw2LjMgNy45M0M1LjUgOS4wOCA1IDEwLjUgNSAxMk0xMiAxOUMxNC41OSAxOSAxNi44NSAxNy41OSAxOC4wNiAxNS41TDE0LjYgMTMuNUMxNC4wOCAxNC40IDEzLjExIDE1IDEyIDE1TDExLjcxIDE1TDExLjMzIDE4Ljk3TDEyIDE5TTEyIDlDMTMuMjEgOSAxNC4yNiA5LjcyIDE0LjczIDEwLjc2TDE4LjM3IDkuMUMxNy4yNyA2LjY4IDE0LjgzIDUgMTIgNVY5TTEyIDExQzExLjQ1IDExIDExIDExLjQ1IDExIDEyQzExIDEyLjU1IDExLjQ1IDEzIDEyIDEzQzEyLjU1IDEzIDEzIDEyLjU1IDEzIDEyQzEzIDExLjQ1IDEyLjU1IDExIDEyIDExWiIgLz48L3N2Zz4="
},
"Level":[
// Inputs
["$Input","bool",false], // entspricht Schlafenszeit (1 tagsüber, nachts 0)
["$Anwesenheit","bool",true],
["$Timer_Vorlauf_Status","bool",false],
["$Timer_Vorlauf_Dauer","float",300],
["$Timer1_Status","bool",false],
["$Timer1_Dauer","float",2100],
["$Timer2_Status","bool",false],
["$Timer2_Dauer","float",300],
["$Result","bool",false],
["$Out","bool",false],
["$On","string","on"],
["$Off","string","off"],
["$OutString","string","off"]
],
"Module":[
// Bei Abwesenheit abbrechen
["Break", ["-$Anwesenheit"]],
// Timer Vorlauf für Timer 2 starten
// Erster Durchlauf für 300 Sekunden direkt nach dem "Aufstehen"
["Monoflop","$Input","-$Input","$Timer_Vorlauf_Status","$Timer_Vorlauf_Dauer",2],
// Timer Toggle1 startet bei fallender Flanke
["And" , ["-$Timer_Vorlauf_Status" , "$Input"], "$Result"],
// Clocksignal mit Gesamtdauer 30min+5min (1800+300) = 2100
["Clocksignal","$Result","$Timer1_Status","$Timer1_Dauer"],
["Monoflop","$Timer1_Status","-$Input","$Timer2_Status","$Timer2_Dauer",7],
["Or", ["$Timer_Vorlauf_Status", "$Timer2_Status"], "$Out"],
["Multiplexer", ["$Off", "$On"], "$OutString", "$Out"]
],
"Input":[
["Input","Input","$Input","c"],
["Anwesenheit","Jemand zu Hause?","$Anwesenheit","u"]
],
"Output":[
["Output","Output","$OutString","a"]
]
}