Wie Logik für Dosierung realisieren

Begonnen von xeenon, 20 Juli 2023, 18:48:50

Vorheriges Thema - Nächstes Thema

xeenon

Hallo Zusammen,

ich möchte eine automatische Dosierung für meinen Pool realisieren. Die Logik sollte so aussehen:


if [device1:wert] < 700 {
if [device2:Durchfluß] > 30min über 50l/h { set Dosierung an | 30 Minuten warten, dann wieder von vorne } else { 30 Minuten warten, dann wieder von vorne }
} else { 30 Minuten warten, dann wieder von vorne }

Welches Device würde sich dafür anbieten? Ein DOIF? Es wäre halt wichtig, dass es nach den 30 Minuten die Bedingung erneut geprüft wird, und nicht gewartet wird bis der Wert wieder über 700 und dann wieder unter 700 geht.

Und wie kann ich die 30 Minuten Pause realisieren? Ich dachte an das Disablen von dem DOIF, mit gleichzeitigem Erstellen eines AT, welches dann nach 30 Minuten das DOIF wieder enabled.

Ich brauch quasi ein loop bis der Wert über 700 ist.

Zuerst habe ich daran gedacht ein AT zu verwenden, allerdings stellt sich mir das Problem, dass wenn bei der Prüfungszeit der Wert 701 beträgt, anschließend der Wert rapide fällt, quasi fast 30 Minuten nichts passiert bis die Dosierung anspringt.


Ich hoffe ihr könnt mir helfen.

Viele Grüße

betateilchen

Du solltest Deine Aufgabenstellung zuerst mal klar strukturieren und so weit wie möglich vereinfacht beschreiben.

Der Punkt "30 Minuten warten, dann wieder warten" kommt in jedem Ablauf vor - insgesamt 3 Mal. Das dürfte also der am wenigstens "wichtigste" part sein.

Für mich klingt das einfach nach einem at, das alle 30 Minuten ausgeführt wird und dann prüft, welcher Fall gerade aktuell ist.

Noch ein Beispiel für eine mögliche Vereinfachung:

if [device2:Durchfluß] > 30min über 50l/h
Wenn der Durchfluss mindestens 30 Minuten lang über 50 Liter pro Stunde liegt, müssen also in 30 Minuten mindestens 25 Liter durchgeflossen sein. Das ist in einer Logik einfacher unterzubringen als Deine Kombination aus mehreren Einflußfaktoren. Diese Prüfung lässt sich vermutlich mittels eines watchdog devices umsetzen. Im Ausführungsteil kannst Du dann immer noch auf "device1:wert <700" prüfen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!