UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

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=8fbd58028e73d7a3b7ecec7b1da2b901]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.
So sieht der fertige Baustein im Logikeditor aus, der Code für die Custom-Logik ist weiter unten zu finden:

Bild

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"]
    ]
}