Seite 3 von 3

Re: Bewässerungssteuerung als Custom-Logik

Verfasst: Di Jul 09, 2019 11:16 am
von DeLaDope
Sehr geil...genau das was ich gesucht habe! Danke!

Re: Beta 24: Timer-Input in verschiedenen Einheiten (und unerwarteter Fehler im LE)

Verfasst: Mi Jul 10, 2019 11:52 pm
von Robert_Mini
danik hat geschrieben: So Jul 07, 2019 9:29 pm Fehlt nur noch die von Dir erwähnte Möglichkeit der "Restzeit".
Hab übrigens herausgefunden, dass der Baustein "Stoppuhr" genau das schon kann:
["Stopwatch","$In", "$Time"]

Damit kann man in Verbindung mit einem Trigger periodisch die Zeit seit dem Start-Telegramm schicken.
Das ließe sich je Kreis und für Sequenz-Status relativ leicht ergänzen.
Auch die Restzeit könnte man damit berechnen (Dauer_Kreis1 x Faktor) - Stoppuhr

Wobei ich damit noch ein wenig kämpfe => viewtopic.php?f=31&t=1172

lg
Robert

Re: Bewässerungssteuerung als Custom-Logik

Verfasst: Fr Jul 12, 2019 8:11 pm
von Robert_Mini
Hallo zusammen!

Dank der tollen Vorarbeit von @danik habe ich den Bewässerungs-Baustein gleich inkl. Beschreibung in die KB aufgenommen: app.php/kb/viewarticle?a=98

In diesem Stil würde ich bis auf weiteres allgemein hilfreiche Custom-Logiken aufnehmen und dokumentieren - nur her mit euren Arbeiten :clap: :confusion-waiting: :confusion-helpsos:

lg
Robert

Re: Bewässerungssteuerung als Custom-Logik

Verfasst: Sa Jul 13, 2019 8:51 am
von StefanW
Danke an Danik und Robert für Eure tolle Arbeit!

Freut mich, dass sich die Sache so gut entwickelt.

Stefan

Re: Bewässerungssteuerung als Custom-Logik

Verfasst: So Jun 14, 2020 11:04 am
von pholler
Hallo zusammen!

Auf der Suche nach einer Logik für meine Bewässerungssteuerung bin ich über diesen Artikel gestoßen. Geniale Arbeit! Ich habe den Code von danik übernommen und für meine Bedürfnisse erweitert. Das umfasst folgende Punkte:
  • Erweiterung auf 6 Kreise (ich habe sie nach Farben benannt)
  • Zusätzlich zum manuellen Start um Cron-Job erweitert (dieser kann nur im Code bei den Levels geändert werden)
Damit der Cronjob auch mehrmals ausgeführt wird war für mich das Einfügen eines Triggers (hier auf 60s gesetzt) nötig. Ich bin mir nicht sicher ob es da nicht klügere Ansätze gibt.

Ich bitte um Nachsicht, dass ist meine erste CustomLogik am TWS.
Screen Shot 2020-06-14 at 10.59.56.png

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],
	["$state_db","bool",false],
        ["$period_d","float",0],
        ["$period_d_i","float",0],
        ["$state_e","bool",false],
        ["$state_eb","bool",false],
        ["$period_e","float",0],
        ["$period_e_i","float",0],
        ["$state_f","bool",false],
        ["$period_f","float",0],
        ["$period_f_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],
        ["$CronExpr","string","* 0 1 * * *"],
        ["$SchedulerAktiv","bool",false],
        ["$TriggerScheduler","bool",false],
        ["$TriggerManuell","bool",false]
    ],
    "Module":[
        ["Cron","$SchedulerAktiv","$TriggerScheduler",0,"$CronExpr"],
        ["Or",["$TriggerScheduler","$TriggerManuell"],"$trigger"],
        ["And",["$freigabe","$trigger"],"$reset"],
        ["Polynomial", "$faktor_m2s", "$faktor_c",["$A0", "$faktor_i"]],
        ["Polynomial", "$faktor_c", "$period_a",["$A0", "$period_a_i"]],
	["Polynomial", "$faktor_c", "$period_b",["$A0", "$period_b_i"]],
	["Polynomial", "$faktor_c", "$period_c",["$A0", "$period_c_i"]],
	["Polynomial", "$faktor_c", "$period_d",["$A0", "$period_d_i"]],
	["Polynomial", "$faktor_c", "$period_e",["$A0", "$period_e_i"]],
	["Polynomial", "$faktor_c", "$period_f",["$A0", "$period_f_i"]],
        ["Monoflop","$trigger","-$reset","$state_a","$period_a",2],
        ["Monoflop","$state_a","-$reset","$state_ab","$pause_x",4],
        ["Monoflop","$state_ab","-$reset","$state_b","$period_b",4],
        ["Monoflop","$state_b","-$reset","$state_bb","$pause_x",4],
        ["Monoflop","$state_bb","-$reset","$state_c","$period_c",4],
        ["Monoflop","$state_c","-$reset","$state_cb","$pause_x",4],
        ["Monoflop","$state_cb", "-$reset","$state_d","$period_d",4],
        ["Monoflop","$state_d","-$reset","$state_db","$pause_x",4],	
        ["Monoflop","$state_db","-$reset","$state_e","$period_e",4],
        ["Monoflop","$state_e","-$reset","$state_eb","$pause_x",4],
        ["Monoflop","$state_eb","-$reset","$state_f","$period_f",4],
	["Or",["$state_a","$state_b","$state_c","$state_d","$state_e", "$state_f","$state_ab","$state_bb","$state_cb","$state_db","$state_eb"],"$TriggerManuell"],
	["Or",["$state_a","$state_b","$state_c","$state_d","$state_e", "$state_f","$state_ab","$state_bb","$state_cb","$state_db","$state_eb"],"$trigger_o"]
    ],
    "Input":[
        ["Start/Stop Manuell","Manueller Start/Stopp des Bewässerungsautomaten","$TriggerManuell","c"],
        ["Start/Stop Timer","Startet/Beendet den Bewässerungstimer","$SchedulerAktiv","c"],
        ["Dauer Grün","1.Bewässerungsdauer min.","$period_a_i","c"],
        ["Dauer Blau","2.Bewässerungsdauer min.","$period_b_i","c"],
        ["Dauer Braun","3.Bewässerungsdauer min.","$period_c_i","c"],
        ["Dauer Hellblau","4.Bewässerungsdauer min.","$period_d_i","c"],
	["Dauer Orange","5.Bewässerungsdauer min.","$period_e_i","c"],
	["Dauer Violett","6.Bewässerungsdauer min.","$period_f_i","c"],
        ["Faktor","Faktor Dauer","$faktor_i","c"],
        ["Pause","Pause in s","$pause_x","c"],
        ["Freigabe","Freigabe der Bew.Logik","$freigabe","c"]
    ],
    "Output":[
        ["Ventil Grün","Schaltausgang 1.Ventil","$state_a","c"],
        ["Ventil Blau","Schaltausgang 2.Ventil","$state_b","c"],
        ["Ventil Braun","Schaltausgang 3.Ventil","$state_c","c"],
        ["Ventil Hellblau","Schaltausgang 4.Ventil","$state_d","c"],
	["Ventil Orange","Schaltausgang 5.Ventil","$state_e","c"],
	["Ventil Violett","Schaltausgang 6.Ventil","$state_f","c"],
        ["Sequenz aktiv","Sequenz aktiv","$trigger_o","c"]
    ]
}