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

[NEUHEIT] Tutorial: Schritt für Schritt zur Custom-Logik "Entkalkungsanlage"

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

eib-eg
Reactions:
Beiträge: 442
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1457 Mal
Danksagung erhalten: 235 Mal

#21

Beitrag von eib-eg »

Ich möchte mal hier meinen Hut vor Robert ziehen.

Es ist faszinierend wie du dich im Forum einbringst.

Ich hoffe ich gebe die richtigen Worte,
dies verdient in meinen Augen HOCHACHTUNG .

Leider liegt mir das Schreiben nicht so in den Fingern,
deswegen nur die paar Worte.

In der Hoffnung das ich, in dadurch mehrere Personen die sich nicht trauen oder keine Zeit oder auch stillschweigend mitlesen, einfach mal nur DANKE sage, für deine Aufopferung und Hingabe deiner Zeit, die richtigen Worte gefunden habe.

Nochmals
DANKE
TW 2600_99 seit 1.1.2018 / VPN zu

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

#22

Beitrag von Robert_Mini »

Danke für dein Posting!
Es macht mir durchaus Spaß und freut mich wenn’s gefällt!

Allerdings frage ich mich manchmal schon auch, ob’s das Wert ist?
Warum? Mein Eindruck ist, dass nur wenige daran interessiert sind oder zumindest kein Interesse zeigen. Hier hat gerade mal CHD aktiv mitgemacht (freut mich!), 2-3 andere haben dankenswerterweise bei Rückfragen mitgeholfen. Da fragt man sich aber schon, ob es sonst keinen interessiert?

Das gleiche bei den ca. 15 aufwendigen Custom Logiken, die ich geteilt habe (inkl. aufwendiger Beschreibung). Praktisch keine Rückmeldung...
Da hat man gelegentlich das Gefühl, dass die Dinge keiner braucht.
So ein Zweizeiler, dass man die Logik verwendet und macht was sie soll, oder ähnliches wär da schon motivierend. Alleine deshalb, weil die (Mehr-) Arbeit dann nicht umsonst war.

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

alexbeer
Reactions:
Beiträge: 394
Registriert: Mi Sep 12, 2018 1:11 am
Wohnort: NRW
Hat sich bedankt: 212 Mal
Danksagung erhalten: 251 Mal

#23

Beitrag von alexbeer »

Hi Robert,
ich bin dir total dankbar, dass du Custom-Logiken erstellst, mit der Community teilst und auch noch Tutorials verfasst. Pl
Einige habe ich hierbei auch schon übernommen.
Die waren so sauber, dass ich da keine Rückfragen hatte.

Als Danksagung hatte StefanW mal drum gebeten, (auch) den Danksagungsbutton zu verwenden, da dies auch im Profil ersichtlich wird. Ich habe dies zum Anlass genommen, nur noch diese Funktion zu verwenden...

Wenn es dich motiviert, dich weiterhin so für die Community zu engagieren, dann gibt es zukünftig den Danke-Button + kurzen Text!
VG Alex
Timberwolf122 (TWS 2500) // Wartungs-VPN: offen // Reboot: jederzeit

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

#24

Beitrag von Robert_Mini »

Danke - freut mich.

Stefan hat im Grunde recht, in diesem Fall geht es mit ein wenig darum, zu wissen, ob jemand die Dinge brauchen kann. Das erkennt man am Danke allein nicht.

Oft habe ich auch noch mehr Ideen zu den Bausteinen im Kopf, daher freut mich jede Rückmeldung und Diskussion, denn Selbstgespräche will ich keine führen :naughty: .

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

starwarsfan
Reactions:
Beiträge: 1152
Registriert: Mi Okt 10, 2018 2:39 pm
Hat sich bedankt: 744 Mal
Danksagung erhalten: 923 Mal

#25

Beitrag von starwarsfan »

Hoi Robert,

ich werde mir diesen Custom-Baustein sicher genauer ansehen, da ich ja selbigen Usecase quasi identisch mit Edomi realisiert habe. Daher ist das für mich vermutlich der beste Einstieg, mich mit der cryptischen und für mich im Moment noch völlig umständlichen Custom-Logik-Syntax auseinanderzusetzen. 8-)
Kind regards,
Yves

- TWS 2500 ID:159 (VPN offen, Reboot nach Rücksprache) - PBM ID:401 - TWS 3500 ID:618 (VPN offen, Reboot nach Rücksprache) - ControlPro - ProxMox - Edomi (LXC / Docker) - ... -

eib-eg
Reactions:
Beiträge: 442
Registriert: Fr Sep 14, 2018 5:03 pm
Hat sich bedankt: 1457 Mal
Danksagung erhalten: 235 Mal

#26

Beitrag von eib-eg »

Ich habe zwar keine Entkalkungsanlage (noch nicht)
was mich noch interessieren würde, wäre
A. Aufsummieren ohne löschen der Rückspühlungen
B. Der durch A verbrauchte Jahres und gesamt Wasserverbrauch mit natürlich einer einmaligen Eingabe eines Spühlgangs.
C.aufzählen ohne löschen wie oft die A aktiviert wurde

Diese und noch mehr Ideen stecken in meinen Kopf für Statistiken oder Garantie usw
Hier kommt ein wenig mein innere Überwachung und Kontroll ( sucht) zum Vorschein
Wenn ich Infos bekomme wenn schon denn schon dann alles was geht 🤷‍♂️
Und hier zeigt sich wenn Mann oder auch Frau einen guten Lehrmeister hat, macht es Spaß mitzulesen.
Was mir dann immer passiert, das ich vergesse den Daumen zu drücken oder zu feige bin was zu schreiben.

Lange Rede kurzer Sinn
Robert nochmals
DANKE
TW 2600_99 seit 1.1.2018 / VPN zu

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

#27

Beitrag von Robert_Mini »

So bevor es inhaltlich weitergeht: Danke für eure Kommentare. Auch sei an dieser Stelle erwähnt, dass es es sehr wohl einige stille Mitleser gibt, die sich bei mir per PN bedanken und erkenntlich zeigen wollen (was nicht meine Erwartung ist, aber mich natürlich freut, wenn Leute den Aufwand zu schätzen wissen, der in mancher Arbeit steckt).

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

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

#28

Beitrag von Robert_Mini »

Weiter geht es mit Schritt 8:
Hier wird die Warnung bei niedrigem Füllstand und ein zugehöriges zyklisches Senden umgesetzt.

Schritt 8:
  • Mittels Modul Comparator wird der aktuelle Füllstand $Fuellstand mit dem Minimum für Warnung $I_Fuellstand_Min verglichen. Das Ergebnis wird invertiert (da der Comperator >x => true prüft) und in die Variable $Warnung geschrieben, daher -$Warnung!
    $Warnung wird also bei <= $I_Fuellstand_Min true.
  • Zusätzlich wird bei $Warnung = true ein Modul Clocksignal aktiviert, das im zyklisch alle $I_WarnungInterval die Logik triggert. Durch die Sendeoption "ct" beim Ausgang "Warnung Füllstand" wird damit die Warnung bei Änderung und zyklisch gesendet (Achtung: Im Screenshot fehlt das T bei CT, sollte aber mit dem angehängten Code richtig erstellt werden)!
Doe Logik ist damit eigentlich fertig.
Einen Schritt gibt es aber noch :o :o :o - was könnte das sein??

Lg Robert

Bild

Code: Alles auswählen

//================ Schritt 8 =====================
//Warnung + zyklisches Senden
{
  "Input": [
	        ["Temperatur Rueckspülung","Temperatur gemessen an der Rückspülleitung","$I_Temp","a"],
		["Zeitkonstante Glättung","Zeitkonstante der geglätteten Temperatur, gegen die Delta T gemessen wird","$I_Glaettung","c"],
		["Delta T Rückspülung","Schwelle zur Erkennung Temperaturabfall bei Rückspülung","$I_DeltaT","c"],
		["Dauer Rückspülung","Dauer für Ausgabe Rückspülung aktiv","$I_RS_Dauer","c"],
		["Sperrzeit nach Rückspülung","Mindestzeit, bevor wieder eine Rückspülung erkannt wird","$I_Sperrzeit","c"],
		["Füllstandsverringerung je Rückspülung","","$I_HoeheRueckspuelung","c"],
		["Trigger nachfüllen","Trigger für Nachfüllen je Sack","$I_TriggerNachfuellen","c"],
		["Füllstandserhöhung je Sack","","$I_HoeheSack","c"],
		["Füllstand Warnung","","$I_Fuellstand_Min","c"],
		["Warnung Interval","","$I_WarnungInterval","c"]
  ],
  "Output": [
		["Rückspülung Jahr","Anzahl Rückspülungen im aktuellen Jahr","$RS_Anzahl","c"],
		["Rückspülung Aktiv","Rückspülung läuft","$RS_Stat?","c"],
		["Füllstand aktuell","Aktueller Füllstand","$Fuellstand","c"],
		["Säcke Jahr","Anzahl der nachgefüllten Säcke im laufenden Jahr","$Saecke_Anzahl","c"],
		["Warnung Füllstand","Trigger GA für Warnung","$Warnung","ct"],
		["Temperatur geglättet","Temperatur nach Tiefpassfilter","$TempGeglaettet?","c"]
		
		//["_And_Sperrre_Aktiv","Temperatur nach Tiefpassfilter","$Sperre_Aktiv","c"],	
		// Debug Ausgänge
		//["_Temp_CResult","Vergleich der Temperaturen","$Temp_CResult","c"],
		//["_And_RS_Neu","Temperatur nach Tiefpassfilter","$Rueckspuelung_Neu","c"],
		
  ],
  "Level": [
		["$I_Temp","float",20.0],
		["$TempGeglaettet","float",20.0],
		["$I_DeltaT","float",3.0],
		["$I_Sperrzeit","float",3.0],
		["$I_RS_Dauer","float",3.0],
		["$I_Glaettung","float",36000.0],
		["$I_TriggerNachfuellen","bool",false],
		["$I_HoeheSack","float",25.0],
		["$I_HoeheRueckspuelung","float",2.0],
		["$RS_Anzahl","integer",0],
		["$RS_AnzahlNeu","integer",0],
		["$Fuellstand","float",25.0],
		["$FuellstandNeu","float",0.0],
		["$Saecke_Anzahl","integer",0],
		["$Saecke_AnzahlNeu","integer",0],
		["$ResetJahr","string","31 0 0 1 * *"],
		["$ResetJahrTrigger","bool",false],
		// Zusätzlich
		["$I_Fuellstand_Min","float",20.0],
		["$Warnung","bool",false],
		["$I_WarnungInterval","float",86400.0],
		//
		["$Temp_Schwelle","float",0.0],
		["$Temp_CResult","bool",false],
		["$TimerStat","bool",false],
		["$RS_Stat","bool",false],
		["$Sperre_Aktiv","bool",false],
		["$Sperrzeit_Gesamt","float",3.0],
		["$Rueckspuelung_Neu","bool",false],
		
		["$KonstTrue","bool",true],
		["$KonstFalse","bool",false],
		["$Konst0","float",0.0],
		["$Konst1","float",1.0]
  ],
  "Module": [
		["Cron","$KonstTrue","$ResetJahrTrigger",0,"$ResetJahr"],
		// Temperatur Glättung
		["Lowpass","$I_Temp","$TempGeglaettet","$I_Glaettung"],
		
		// Vergleich T aktuell < (T geglättet - DeltaT)
		["Polynomial", "$Konst1", "$Temp_Schwelle",["$TempGeglaettet", "-$I_DeltaT"]],
		["Comparator" , "$I_Temp" , "-$Temp_CResult" , "$Temp_Schwelle"],
		
		// Rueckspuelung erkennen
		["And",["$Temp_CResult","-$Sperre_Aktiv"], "$Rueckspuelung_Neu"],
		["Polynomial", "$Konst1", "$Sperrzeit_Gesamt",["$I_RS_Dauer", "$I_Sperrzeit"]],
		// Fuellstand neu berechnen und merken, wenn Rueckspuelung erkannt
		["Polynomial", "$Konst1", "$FuellstandNeu",["$Fuellstand", "-$I_HoeheRueckspuelung"]],
		["Latch","$FuellstandNeu","$Fuellstand","$Rueckspuelung_Neu",0],
		// Zaehler neu berechnen und merken, wenn Rueckspuelung erkannt
		["Polynomial", "$Konst1", "$RS_AnzahlNeu",["$RS_Anzahl", "$Konst1"]],
		["Latch","$RS_AnzahlNeu","$RS_Anzahl","$Rueckspuelung_Neu",0],
		
		// Timer Sperre und Rückspülung
		["Polynomial", "$Konst1", "$Sperrzeit_Gesamt",["$I_RS_Dauer", "$I_Sperrzeit"]],
		["Monoflop","$Rueckspuelung_Neu","$KonstFalse","$RS_Stat","$I_RS_Dauer",0],
		["Monoflop","$Rueckspuelung_Neu","$KonstFalse","$Sperre_Aktiv","$Sperrzeit_Gesamt",0],

		// Warnung bei Fuelstand <Mindestzeit
		["Comparator" , "$Fuellstand" , "-$Warnung" , "$I_Fuellstand_Min"],
		["Clocksignal","$Warnung",0,"$I_WarnungInterval"],
		
		// Trigger Nachfuellung => Fuellstand + Sackanzahl erhöhen
		["Polynomial", "$Konst1", "$Saecke_AnzahlNeu",["$Saecke_Anzahl", "$Konst1"]],
		["Latch","$Saecke_AnzahlNeu","$Saecke_Anzahl","$I_TriggerNachfuellen",0],
		["Polynomial", "$Konst1", "$FuellstandNeu",["$Fuellstand", "$I_HoeheSack"]],
		["Latch","$FuellstandNeu","$Fuellstand","$I_TriggerNachfuellen",0],
		// Triggereingang auf False setzen
		["Multiplexer",["$I_TriggerNachfuellen","$KonstFalse"],"$I_TriggerNachfuellen","$I_TriggerNachfuellen"],
		
		// Trigger Reset Jahr => Anzahl Rueckspuelungen auf 0 setzen
		["Latch","$Konst0","$RS_Anzahl","$ResetJahrTrigger",0],
		["Latch","$Konst0","$Saecke_Anzahl","$ResetJahrTrigger",0]	
  ]
}
Zuletzt geändert von Robert_Mini am So Feb 23, 2020 11:02 am, insgesamt 3-mal geändert.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

CHD
Reactions:
Beiträge: 302
Registriert: Fr Dez 14, 2018 9:32 pm
Wohnort: Gronau
Hat sich bedankt: 1026 Mal
Danksagung erhalten: 212 Mal

#29

Beitrag von CHD »

Robert_Mini hat geschrieben: So Feb 23, 2020 10:59 am
Doe Logik ist damit eigentlich fertig.
Einen Schritt gibt es aber noch :o :o :o - was könnte das sein??

Lg Robert
Hallo Robert,

ich habe keine Ahnung. In der Schule hat man dann immer gehofft, dass sich einer der Mitschüler mit einem Geistesblitz meldet. Aber hier kommt nix.... :?

Erlöse uns von den Qualen, weil sonst muss ich gleich ins Bett ohne Antwort :shock:

Oder vielleicht noch ein Tipp :angelic-halo:


Gruß, Christian
Viele Grüße, Christian

Timberwolf Server 2600 #200 ULTRA842 / PBM #778 / PBM #779 / PBM #780 / Reboot erlaubt / VPN offen

Robosoc
Reactions:
Beiträge: 1876
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 635 Mal
Danksagung erhalten: 775 Mal

#30

Beitrag von Robosoc »

Alter Schwede Robert, was für eine Hammer-Anleitung und auch Logik...ich werde die jetzt auf jeden Fall verwenden...habe heute gerade Fühler am Grünbek-Vorlauf und -Rücklauf angebracht und wollte eigentlich nur noch einmal nachlesen, was Ihr mir damals in dem anderen Threat (der diesem vorausgegangen ist und den Du hier im Beitrag #1 ja auch noch einmal verlinkt hast) für Tipps gegeben habt...und da entdecke ich das hier...Vielen vielen Dank!!!

Ich habe noch keine Ahnung was Du meinst mit "Einen Schritt gibt es aber noch :o :o :o - was könnte das sein??", aber vielleicht wird mir das beim Einsatz und den Verschaltungen klar. Deine "Senden nach Initialisierung" Bausteine sind bei mir auch noch auf der Liste. Deinen "Sommer-Winter nach Norm" Baustein nutze ich bereits 1x und es kommt für die JAlousie bald die zweite Nutzung hinzu. Und auch die Jalousiebausteie von Dir werde ich nutzen, aber im Moment bin ich froh, dass meine teure Siemens-Wetterstation Sonne und Wind noch einigermaßen gut erkennt und die 5 Fassadenflächen damit völlig autark und zufriedenstellend gesteuert werden, nachdem der Temperatur- und Regensensor darin schon den Geist aufgegben hat.

Wirklich ein ganz ganz DICKES Danke für alle Deine Arbeit...ja nicht nur in den Logiken, sonder nauch in der KB von der ich immer wieder zerre!
Zuletzt geändert von Robosoc am So Mär 29, 2020 8:08 pm, insgesamt 1-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK
Antworten

Zurück zu „Logikengine & Logik-Editor“