4.6.7.3_ Custom-Logik: Bewässerungssteuerung für 4 Kreise
Beschreibung: Baustein zur Steuerung der Bewässerung inkl. Dauer je Kreis inkl. globalem Faktor, Sperreingang etc.
Kategorie: Logiken
Link zu diesem Beitrag: Alles auswählen
[url=https://forum.timberwolf.io/app.php/kb/viewarticle?a=98&sid=9977166ff0604f896a350a2a6ab4901c]Knowledge Base - 4.6.7.3_ Custom-Logik: Bewässerungssteuerung für 4 Kreise[/url]
Wiki: https://elabnet.atlassian.net/l/cp/gx01cVPY
Danke an User danik für die Umsetzung, siehe viewtopic.php?f=24&t=1142.
Kurzbeschreibung des Bausteins:
Steuerung der Gartenbewässerung als Sequenz für mehrere Kreise, die mit einem EIN/AUS Objekt gestartet wird. Der Baustein steuert dann ein Ventil nach dem anderen an, dazwischen kann eine Pause konfiguriert werden. Der Baustein kann auch manuell über das EIN/AUS Objekt gestoppt werden. Die Dauer für die Bewässerung kann je Kreis in Minuten angegeben werden.
Der Baustein besitzt folgende Eingänge:
- Start/Stop: Startet die Bewässerungssequenz beim Empfang von "True". Wird vor vollständigem Ablauf der Gesamtsequenz ein "False" empfangen, wird die Sequenz abgebrochen und alle Ventile geschlossen.
- Dauer1-Dauer4: Bewässerungsdauer für den zugehörigen Kreis in Minuten (Wert muss Float sein, DPT 9.010)
- Faktor: Skaliert die die Werte der Dauer von allen Kreisen. Mit 1.0 wird genau für die definierte Zeit bewässert, mit zB 0.5 wird die Zeit halbiert, mit 2.0 wird die Zeit verdoppelt.
- Pause: Unterbrechung in Sekunden, bevor der nächste Kreislauf gestartet wird.
- Freigabe: Übergeordnete Freigabe der Bewässerung (bei "True"). Damit werden die Telegramme am Eingang Start/Stopp ignoriert, beim Deaktivieren der Freigabe während aktiver Bewässerung werden alle Ventile geschlossen.
Code: Alles auswählen
{
"Level":[
["$trigger","bool",false],
["$trigger_o","bool",false],
["$state_a","bool",false],
["$state_ab","bool",false],
["$period_a","float",0],
["$period_a_i","float",0],
["$state_b","bool",false],
["$state_bb","bool",false],
["$period_b","float",0],
["$period_b_i","float",0],
["$state_c","bool",false],
["$state_cb","bool",false],
["$period_c","float",0],
["$period_c_i","float",0],
["$state_d","bool",false],
["$period_d","float",0],
["$period_d_i","float",0],
["$A0","float",0],
["$faktor_m2s","float",60],
["$faktor_i","float",1],
["$faktor_c","float",1],
["$pause_x","float",5],
["$freigabe","bool",true],
["$reset","bool",false]
],
"Module":[
["And",["$freigabe","$trigger"],"$reset"],
["Polynomial", "$faktor_m2s", "$faktor_c",["$A0", "$faktor_i"]],
["Polynomial", "$faktor_c", "$period_a",["$A0", "$period_a_i"]],
["Monoflop","$trigger","-$reset","$state_a","$period_a",2],
["Monoflop","$state_a","-$reset","$state_ab","$pause_x",4],
["Polynomial", "$faktor_c", "$period_b",["$A0", "$period_b_i"]],
["Monoflop","$state_ab","-$reset","$state_b","$period_b",4],
["Monoflop","$state_b","-$reset","$state_bb","$pause_x",4],
["Polynomial", "$faktor_c", "$period_c",["$A0", "$period_c_i"]],
["Monoflop","$state_bb","-$reset","$state_c","$period_c",4],
["Monoflop","$state_c","-$reset","$state_cb","$pause_x",4],
["Polynomial", "$faktor_c", "$period_d",["$A0", "$period_d_i"]],
["Monoflop","$state_cb", "-$reset","$state_d","$period_d",4],
["Or",["$state_a","$state_ab","$state_bb","$state_cb","$state_b","$state_c","$state_d"],"$trigger"],
["Or",["$state_a","$state_ab","$state_bb","$state_cb","$state_b","$state_c","$state_d"],"$trigger_o"]
],
"Input":[
["Start/Stop","Startet/Beendet den Zyklus","$trigger","c"],
["Dauer1","1.Bewässerungsdauer min.","$period_a_i","c"],
["Dauer2","2.Bewässerungsdauer min.","$period_b_i","c"],
["Dauer3","3.Bewässerungsdauer min.","$period_c_i","c"],
["Dauer4","4.Bewässerungsdauer min.","$period_d_i","c"],
["Faktor","Faktor Dauer","$faktor_i","c"],
["Pause","Pause in s","$pause_x","c"],
["Freigabe","Freigabe der Bew.Logik","$freigabe","c"]
],
"Output":[
["Ventil1","Schaltausgang 1.Ventil","$state_a","c"],
["Ventil2","Schaltausgang 2.Ventil","$state_b","c"],
["Ventil3","Schaltausgang 3.Ventil","$state_c","c"],
["Ventil4","Schaltausgang 4.Ventil","$state_d","c"],
["Sequenz aktiv","Sequenz aktiv","$trigger_o","c"]
]
}