NEWS
Pool Dosierscript PH und Chlor
-
@d3ltoroxp sagte: Woher weiß dein Script das bei 750 Schluss ist ?
Siehe oben.
-
@paul53 Vielen Dank, werd das so mal umsetzten und beobachten.
Meins wäre so auch gegangen, nur eben umständlicher, oder Schritt für Schritt um es besser zu verstehen was das Skript macht ?EDIT: So das hab ich jetzt mal mit ph probiert.
Hier war auch noch so, das erst pH und dann Chlor angepasst werden muss. Dann müsste ich beim Chlor noch etwas hinzufügen, was erst dosiert, wenn pH Wert passt.
Aber noch mal zum Skriptverständnis.
Der pH Wert ändert sich auf 7.37, dann passiert -> sonst falls. ausführen "dosieren pH" stoppt verzögert.
Funktion startet, -> Pumpe an, nach 60 Sek. Pumpe aus, nach 5 min wird wieder die Funktion gestartet.
Nebenher ändert sich der Wert immer wieder und sinkt weiter runter, dabei wird doch immer wieder "sonst falls" gestartet ?
Ich muss noch was mit einbauen, soll nur passieren wenn die Filterpumpe läuft sonst wirds problematisch, da wenn sie nicht läuft der Wert in der Messzelle auch nicht stimmt, weils Wasser dort steht.
So sollte das doch passen ?
Das Funktion wird ständig neu gestartet, die Zirkulation wird ignoriert.
So pumpt sie viel zu viel pH- rein, wenn der Wert dann unterschritten ist, sinkt er immer weiter, weil ja jede Menge im Wasser ist und es dauert bis der Wert stimmt. Er müsste eigentlich wirklich 5min warten und dann erst wieder schauen, ob der Wert stimmt.
-
@d3ltoroxp sagte: So das hab ich jetzt mal mit ph probiert.
Die Grenzwerte sind vertauscht. So entsteht keine Hysterese.
-
@d3ltoroxp sagte: Das Funktion wird ständig neu gestartet
Wozu soll die Abfrage von Switch gut sein?
Der Telegram-Block rechts unten ist umsonst, denn er wird nie ausgeführt.Das Ausschalten (Beispiel Redox) mache besser so, da sonst mehrere Nachrichten kommen können:
-
@paul53 said in Pool Dosierscript PH und Chlor:
@d3ltoroxp sagte: Das Funktion wird ständig neu gestartet
Wozu soll die Abfrage von Switch gut sein?
Das ist die Poolpumpe, die muss laufen, sonst ist es schlecht zu dosieren, da dann nichts zirkuliert und das Chlor im Rohr steht und immer mehr wird, weil an der Messzelle gar nichts ankommt.
Bei deinem Beispiel, startet die Funktion ständig neu, das heißt der 5min Zyklus kommt gar nicht zum Einsatz, weil er ja immer wieder gestoppt wird. Hier wird ständig pH nachdosiert. -
So ist mein aktuelles Script...
Ich weiß es sieht nicht so aus wie deins, so kann ich aber die Schritte nachvollziehen...
Gibt es die Möglichkeit, das der Trigger die Funktion nicht neu startet wenn " ausführen zirkulieren..." läuft ? Kann das erkannt werden und mit als Bedingung eingebaut werden ?
So läuft es theoretisch, aber teilweise bricht er dann irgendwann ab und es passiert nichts mehr.
So müsste ja die Funktion in sich als Schleife laufen, bis dann der Wert passt. Aber es fliegt immer wieder aus dem "ausführen zirkulieren..." raus. Manchmal läufts durch.
8:59:38.478 error javascript.0 (658) script.js.Pooltechnik.pH_Chlor_Wert_ueberwachen: dosieren Script pH 18:59:38.478 error javascript.0 (658) script.js.Pooltechnik.pH_Chlor_Wert_ueberwachen: pH Pumpe EIN !! 18:59:38.478 error javascript.0 (658) script.js.Pooltechnik.pH_Chlor_Wert_ueberwachen: ph Wert ok getriggert
Es stoppt dann z.b. einfach so. Das passiert durch neu getriggert ? Dann stoppt er die Timeouts aber sollte doch die Funktion neu starten ?
-
@d3ltoroxp
Die Timer müssen gestoppt werden, wenn "ok" wahr wird, und die Funktion muss aufgerufen werden, wenn "ok" falsch wird.Die Abfrage des pH-Wertes in der Funktion ist unnötig: Das wird durch Starten der Funktion und Stoppen der Timer erreicht.
-
@paul53 said in Pool Dosierscript PH und Chlor:
@d3ltoroxp
Die Timer müssen gestoppt werden, wenn "ok" wahr wird, und die Funktion muss aufgerufen werden, wenn "ok" falsch wird.Die Abfrage des pH-Wertes in der Funktion ist unnötig: Das wird durch Starten der Funktion und Stoppen der Timer erreicht.
So siehts nun aus.
Gleiche Problem er startet einmal, dann passiert irgendwie nichts mehr. Kann man hier nicht sagen, wenn da schon eine Funktion bzw. ein " Ausführen Timer" läuft, starte die Funktion nicht noch mal ?
11:42:23.602 error javascript.0 (658) script.js.Pooltechnik.pH_Chlor_dosieren: pH dosierung Stop 11:45:25.120 error javascript.0 (658) script.js.Pooltechnik.pH_Chlor_dosieren: pH Pumpe EIN ! 11:45:25.121 error javascript.0 (658) script.js.Pooltechnik.pH_Chlor_dosieren: pH dosierung Start
EDIT:
Ich hab nur das laufen, nach Pumpe EIN passiert gar nichts mehr.Egal wie oft ich die Funktion starte.
-
@d3ltoroxp sagte: er startet einmal, dann passiert irgendwie nichts mehr.
Das kann ich anhand des Blockly-Bildes nicht nachvollziehen. Nach einer Minute muss ausgeschaltet werden, es sei denn "ok" wird innerhalb der Minute wahr - dann muss aber "stop" im Log erscheinen.
-
@paul53 So geht es, so läuft das Script in Schleife.
Wenn ich die "Ausführen Timer" nacheinander mache.
-
@paul53 pH Wert ist ok, warum dosiert sie trotzdem ?
Bin leider viel zu sehr im Minus, sie dürfte doch gar nicht Pumpen, wenn pH Wert ok.
-
@d3ltoroxp sagte: sie dürfte doch gar nicht Pumpen, wenn pH Wert ok.
Wurde die Änderung von "ph_Wert_ok" von falsch auf wahr nicht mitbekommen? Offenbar wurde "zirkuliere_pH" nicht gestoppt. Das darf nicht passieren, denn am Skript liegt es nicht: Irgend etwas läuft bei Dir nicht rund.
-
@paul53 Das Gefühl hab ich auch. Ich kann ja auch nicht Ausführen Timer in Ausführen Timer packen, die liefen ja dann gar nicht durch.
-
Jetzt hab ich es noch mal ein wenig mehr überwacht...
So sollte zumindest dennoch dann die Funktion stoppen, sobald der Wert erreicht ist.
-
Also Rund läuft das Script leider nicht. Mal kann es sein er Chlort wirklich durch, über längeren Zeitraum, bis es passt. Oft mals aber auch bloß 1-2x dosieren danach ist einfach Feierabend. Startet aber auch nicht mehr Tage lang.
Was könnte man da noch anders machen.Hier noch mal das ganze Script.
-
@d3ltoroxp sagte: Hier noch mal das ganze Script.
Das ist nur ein kleiner Teil.
Hier passt der Funktionsaufruf nicht:
(Aus dem Bild vom 22.Juni)
-
@paul53 Das hab ich jetzt in der Vergangenheit so abgeändert.
Kann ja nur eigentlich daher kommen, das er den Timer irgendwie stoppt und dann eben nicht mehr Triggert, weil der Wert sich ja nicht mehr über den Sollwert bewegt. Man müsste irgendwie reagieren können, sobald der Wert immer schlechter wird, das dann wieder Dosiert wird. Nicht nur einmal angesteuert, wenn er den Wert unterläuft, sondern auch wenn er weiter im Wert sinkt. Geht sowas ? Oder kann ich nicht mit so einer Schleife arbeiten ?
Wiederholen solange, bis Wert true ?
So lange würde das doch in der Schleife laufen, den 5 min Timer mit einbauen.
-
Hast du das Script dann eigentlich stabil zum Laufen gebracht und hast es im Einsatz ?
Ich bin nämlich ebenfalls auf der Suche nach einer Blockly Version für die Dosierung von PH und Chlor.Ein funktionierender Export würde mir da sehr helfen.
Danke.
Beste Grüße
-
@D3ltoroxp über eine Rückmeldung würde ich mich freuen