Seite 1 von 1

[V4.0 IP4] Custom Logik zur Steuerung einer Zirkulationspumpe

Verfasst: So Nov 26, 2023 2:54 pm
von jensgulow
So, geschafft, aus 4 Logiken eine gemacht, welche mir die Zirkulationspumpe steuert.
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"]
    ]
}

Re: Steuerung Zirkulationspumpe

Verfasst: So Nov 26, 2023 4:41 pm
von Parsley
Moin Jens,

vielen Dank! Hier wird die Logik hoffentlich von vielen gefunden und ihnen helfen. :handgestures-thumbupright: