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

Bewässerungssteuerung als Custom-Logik

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Ersteller
danik
Reactions:
Beiträge: 391
Registriert: Mo Sep 10, 2018 8:40 pm
Hat sich bedankt: 256 Mal
Danksagung erhalten: 266 Mal

Bewässerungssteuerung als Custom-Logik

#1

Beitrag von danik »

Hi

Für meine Bewässerung haben ich mir einen Timer-Logik eingerichtet. Die Bewässerungsdauer steuere ich über die Visu mit einem KNX-Objekt. Da gebe ich Minuten ein, der Timer verlangt aber Sekunden. In der Visu möchte ich ungern mit Sekunden operieren, braucht dann immer einen Rechner. Gibt es eine einfache Möglichkeit, dies umzurechnen, ohne über einen Custom-LE zu gehen? Wenn Nein, wäre dies sicher eine nützliche Sache.

Gruss
Dani
Zuletzt geändert von Robert_Mini am Mo Jul 08, 2019 11:15 pm, insgesamt 3-mal geändert.
TW 3500L (#882) + TW 950Q (#321, im Moment inaktiv), VPN offen, Reboot nach Rücksprache

gbglace
Reactions:
Beiträge: 3585
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1253 Mal
Danksagung erhalten: 1649 Mal

#2

Beitrag von gbglace »

Der Baustein Polynom Rechner. Minute Sekunde ist ja ein fixer Faktor 60, sollte damit gehen. Bin nur gerade am Handy...
Grüße
Göran

#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#3 PBM 3 Kanäle, #4 Modbus-Extension
Benutzeravatar

Chris M.
Reactions:
Beiträge: 1190
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 234 Mal
Danksagung erhalten: 853 Mal
Kontaktdaten:

#3

Beitrag von Chris M. »

danik hat geschrieben: Do Jul 04, 2019 4:40 pm In der Visu möchte ich ungern mit Sekunden operieren, braucht dann immer einen Rechner. Gibt es eine einfache Möglichkeit, dies umzurechnen, ohne über einen Custom-LE zu gehen?
Wenn die Visu die CometVisu ist: dort kann man per Mapping direkt in der Visu umrechnen
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache

Ersteller
danik
Reactions:
Beiträge: 391
Registriert: Mo Sep 10, 2018 8:40 pm
Hat sich bedankt: 256 Mal
Danksagung erhalten: 266 Mal

#4

Beitrag von danik »

So, ich habe es jetzt mit einem Custom-Baustein gelöst, da ich noch andere Funktionen im Timer haben wollte. Habe schon etwas Zeit benötigt, aber habe es hinbekommen und bin begeistert von den Möglichkeiten.

Hier den Custom-LE falls es jemand auch brauchen kann.

Ziel: Timer für Gartenbewässerung. Gesteuert wird das ganze über ein EIN/AUS KO-Objekt. Der Baustein steuert dann ein Ventil. Nach Ablauf der Timer-Dauer wird das EIN/AUS KO auf AUS gesetzt. Der Baustein kann auch manuell gestoppt werden über das EIN/AUS KO Objekt. Die Dauer für die Bewässerung wird als Minuten übergeben.

Bild

Code: Alles auswählen

{
    "Level":[
        ["$trigger","bool",false],
        ["$reset","bool",false],
	["$state","bool",false],
	["$dT_IN","float",0],
        ["$dT_ON","float",0],
        ["$A0","float",0],
        ["$Variable_X","float",60],
        ["$VAR<Inhibit?>","bool",false]
    ],
    "Module":[
        ["Break",["$VAR<Inhibit?>"]],
        ["Polynomial", "$Variable_X", "$dT_ON",["$A0", "$dT_IN"]],
	["Monoflop","$trigger","-$trigger","$state","$dT_ON",2]
    ],
    "Input":[
        ["SchaltKO","Schalt-KO","$trigger","c"],
	["Dauer","Bewässerungsdauer","$dT_IN","c"],
	["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
    ],
    "Output":[
        ["Ventil","Ventil-KO","$state","c"],
        ["SchaltKO","Schalt-KO","$state","c"]        
    ]
}
Falls der Code noch optimiert werden kann danke ich für Inputs.

Das nächste wird dann sein, den Baustein zu erweitern für 2 Bewässerungskreise, die hintereinander laufen.


Chris M. hat geschrieben: Do Jul 04, 2019 9:48 pm
danik hat geschrieben: Do Jul 04, 2019 4:40 pm In der Visu möchte ich ungern mit Sekunden operieren, braucht dann immer einen Rechner. Gibt es eine einfache Möglichkeit, dies umzurechnen, ohne über einen Custom-LE zu gehen?
Wenn die Visu die CometVisu ist: dort kann man per Mapping direkt in der Visu umrechnen
Danke ja, ist CV, muss ich mal testen.

Gruss
Dani
TW 3500L (#882) + TW 950Q (#321, im Moment inaktiv), VPN offen, Reboot nach Rücksprache

Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#5

Beitrag von Robert_Mini »

Super, werd ich auch testen!

Zum Thema mehrere Kreise:
Ich würde diesen Baustein als Kern nehmen (=Logik für einen Kreis) und eine weitere Customlogik erstellen, die die Sequenz macht.
D.h. das KO EIN schickt und die Dauer und Bewässerungskreis als Wert übergibt. Nach Ablauf der Dauer oder noch besser wenn das KO auf AUS zurückgesetzt wird, wird der nächste aufgerufen.

Mir fehlt zwar jetzt spontan die Idee, wie man das am besten umsetzt, würde aber meinen, dass die Multiplexer dafür die Basis liefern könnten.
Am Ausgang deiner Custom Logik bräuchte man dann auch einen Multiplexer, der das Objekt des zugehörigen Kreises auswählt.

@S. Kolbinger kann hier sicher einen kleinen Rat geben :-)

Edit: Notfalls kann man diesen Baustein auch je Kreis konfigurieren und macht nur die Sequenz mit einer weiteren Custom-Logik (so nach dem Prinzip keep it simple).

lg
Robert
Zuletzt geändert von Robert_Mini am Sa Jul 06, 2019 7:48 pm, insgesamt 1-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

StefanW
Elaborated Networks
Reactions:
Beiträge: 9689
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4831 Mal
Danksagung erhalten: 7632 Mal
Kontaktdaten:

#6

Beitrag von StefanW »

Super Danik,

wenn man den Dreh einmal raushat, dann kann man mit den Custom-Logiken richtig zaubern.


Was wir uns aber überlegen müssen, ist, wie wir diese Custom-Logiken für viele zugänglich machen.

Ideen:

1. Wir machem im neuen Wiki einen Unterbereich und legen für jede veröffentlichte Custom-Logik eine Seite an und erbitten die nötige Doku dazu. (Das wäre recht einfach).

2. Wir bauen ein Repository (so wie einen App-Store) indem die Kunden per Klick Ihre Custom-Logik einfach veröffentlichen können. Hier müsste aber ein Mindestmaß an Doku hinterlegt werden, damit andere Kunden auch was finden. Ich habe dann nur Sorgen, dass wir irgendwann 35 Bewässerungslogiken haben, es wäre also gut, wenn sich einer einem Thema als "Pate" annimmt und zusieht, dass er neue Ideen mit bestehenden Logiken so merged, dass es sinnvolle Logikbausteine gibt. Nicht unübersichtlich viele, sondern wenige, aber dafür mächtige und gut dokumentierte.

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

Ersteller
danik
Reactions:
Beiträge: 391
Registriert: Mo Sep 10, 2018 8:40 pm
Hat sich bedankt: 256 Mal
Danksagung erhalten: 266 Mal

#7

Beitrag von danik »

StefanW hat geschrieben: So Jul 07, 2019 12:17 am
1. Wir machem im neuen Wiki einen Unterbereich und legen für jede veröffentlichte Custom-Logik eine Seite an und erbitten die nötige Doku dazu. (Das wäre recht einfach).

2. Wir bauen ein Repository (so wie einen App-Store) indem die Kunden per Klick Ihre Custom-Logik einfach veröffentlichen können. Hier müsste aber ein Mindestmaß an Doku hinterlegt werden, damit andere Kunden auch was finden. Ich habe dann nur Sorgen, dass wir irgendwann 35 Bewässerungslogiken haben, es wäre also gut, wenn sich einer einem Thema als "Pate" annimmt und zusieht, dass er neue Ideen mit bestehenden Logiken so merged, dass es sinnvolle Logikbausteine gibt. Nicht unübersichtlich viele, sondern wenige, aber dafür mächtige und gut dokumentierte.
Variante 2 finde ich grundsätzlich interessant, aber wie Du erwähnt hast braucht es eine gewisse Qualität und Betreuung der Custom-Logik. Aber ich denke für die Zukunft mit einer wachsenden Community ein guter Ansatz.

Zu beginn kann es ja ggf. schon mal helfen oder ist sinnvoll, pro Thema einen eigenen Thread zu starten, der dann wächst mit Inputs und Custom-LE von anderen (wobei ab einer gewissen Länge des Threads und Versionen von Custom-LE dann mit der Zeit unübersichtlich).

Gruss
Dani
TW 3500L (#882) + TW 950Q (#321, im Moment inaktiv), VPN offen, Reboot nach Rücksprache

Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#8

Beitrag von Robert_Mini »

StefanW hat geschrieben: So Jul 07, 2019 12:17 am 1. Wir machem im neuen Wiki einen Unterbereich und legen für jede veröffentlichte Custom-Logik eine Seite an und erbitten die nötige Doku dazu. (Das wäre recht einfach).
2. Wir bauen ein Repository (so wie einen App-Store) indem die Kunden per Klick Ihre Custom-Logik einfach veröffentlichen können. Hier müsste aber ein Mindestmaß an Doku hinterlegt werden, damit andere Kunden auch was finden. Ich habe dann nur Sorgen, dass wir irgendwann 35 Bewässerungslogiken haben, es wäre also gut, wenn sich einer einem Thema als "Pate" annimmt und zusieht, dass er neue Ideen mit bestehenden Logiken so merged, dass es sinnvolle Logikbausteine gibt. Nicht unübersichtlich viele, sondern wenige, aber dafür mächtige und gut dokumentierte.
Ich würde im ersten Schritt mit 1) fortsetzen und so wie Dani schreibt im Forum per Thread starten und dann vom CustomLogik-OWNER in die KB / künftig Wiki übertragen.
Alles andere führt IMHO zu Wildwuchs.

Komplett fertige Bausteine halte ich ohnehin für schwierig, da die Umgebungsbedingungen bei jeder Installation etwas Abweichen. Deshalb habe ich auch oben empfohlen, dass man die Bewässerungslogik in mehrere Bausteine auftrennt (und nicht einen Wunderbaustein baut), da kann man ggf. dazwischen/davor noch Umrechnungen etc. einbauen.

Für einige einfache Custom Logiken habe ich die KB schon erstellt, das Timer Bsp. gefällt mir sehr gut und kommt da auch gleich rein.

Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

S. Kolbinger
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 558 Mal

#9

Beitrag von S. Kolbinger »

Hallo Robert,
Robert_Mini hat geschrieben: Sa Jul 06, 2019 6:19 pm Zum Thema mehrere Kreise:
Ich würde diesen Baustein als Kern nehmen (=Logik für einen Kreis) und eine weitere Customlogik erstellen, die die Sequenz macht.
D.h. das KO EIN schickt und die Dauer und Bewässerungskreis als Wert übergibt. Nach Ablauf der Dauer oder noch besser wenn das KO auf AUS zurückgesetzt wird, wird der nächste aufgerufen.
...
@S. Kolbinger kann hier sicher einen kleinen Rat geben :-)

Ich habe hier eine Custom-Logik, die ein TRUE an den Ausgängen sequentiell weiterschalten.
Sie ist an die beschriebene Bewässerungsproblematik angepasst.

Code: Alles auswählen

{
    "Level":[
        ["$trigger","bool",false],
        ["$state_a","bool",false],
        ["$period_a","float",10],
        ["$state_b","bool",false],
        ["$period_b","float",10],
        ["$state_c","bool",false],
        ["$period_c","float",10],
        ["$state_d","bool",false],
        ["$period_d","float",10],
        ["$VAR<Inhibit?>","bool",false]
    ],
    "Module":[
        ["Break",["$VAR<Inhibit?>"]],
        ["Monoflop","$trigger","-$trigger","$state_a","$period_a",2],
        ["Monoflop","$state_a","-$trigger","$state_b","$period_b",4],
        ["Monoflop","$state_b","-$trigger","$state_c","$period_c",4],
        ["Monoflop","$state_c","-$trigger","$state_d","$period_d",4],
        ["Or",["$state_a","$state_b","$state_c","$state_d"],"$trigger"]
    ],
    "Input":[
        ["Start/Stop","Startet/Beendet den Zyklus","$trigger","c"],
        ["Dauer1","1.Bewässerungsdauer","$period_a","c"],
        ["Dauer2","2.Bewässerungsdauer","$period_b","c"],
        ["Dauer3","3.Bewässerungsdauer","$period_c","c"],
        ["Dauer4","4.Bewässerungsdauer","$period_d","c"],
        ["Inhibit","INHIBIT","$VAR<Inhibit?>","u"]
    ],
    "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"]
    ]
}
Bild

Das Prinzip lässt sich auf andere Aufgaben leicht übertragen/anpassen.
Z.B.: Wenn die Dauer für alle Zyklen gleich sein soll, kann man die vier Eingänge auf einen zusammenfassen.
Gruß,
Stefan K.

Robert_Mini
Reactions:
Beiträge: 3741
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1164 Mal
Danksagung erhalten: 2058 Mal

#10

Beitrag von Robert_Mini »

Sehr cool, meine Begeisterung steigt immer weiter (obwohl ich schon sehr begeistert bin)!!!

Ist Monoflop die Std-Logik Taktsignal?

Was jetzt noch zu meinem heutigen Stand fehlt, ist die Ausgabe der abgelaufenen und verbleibenden Zeit je Kreis und Gesamt für die Visu.
Das habe ich mit diesem Hintergrund für den Timer als FR beschrieben (viewtopic.php?f=9&t=1085), dort ist auch ein Screenshot der Bewässerung in der CV. Ich ergänze dort auch das Monoflop ;) .

Super!
lg
Robert

PS: Notiz für die KB schon gemacht.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Antworten

Zurück zu „Logikengine & Logik-Editor“