NEWS
Leistungsabhängig eine Pumpe schalten
-
Hallo zusammen und erst mal hallo an die Community.
Ich bin Anfänger in Richtung Smarthome und komme einfach nicht weiter. Daher die Hoffnung, dass ich hier auf die Sprünge geholfen bekomme
Idee:
Bei Solarüberschuss <200W soll eine Pumpe einschalten.
Bei >20W (also Bezug) startet ein Timer von 5 Minuten (damit die Wolke am Himmel nicht ständig die Pumpe ausschaltet) und schaltet die Pumpe wieder ab wenn die Zeit abgelaufen ist.
Der Timer wird zurückgesetzt bei <=0W, damit die Pumpe weiterläuft, falls die Sonne zwischenzeitlich wieder am Himmel auftaucht.
Geschaltet wird letztendlich ein Shelly 1PM.
So sieht das Blockly aus und prinzipiell funktioniert es auch. Aber leider nicht immer. Es kommt vor, dass die Pumpe einschaltet und ca. 5-10 Sekunden später wieder abschaltet obwohl ein Energieüberschuss vorhanden ist. Ich habe das schon x mal umgeschrieben und mit Variablen getestet. Da funktioniert es.
Kann mir jemand auf die Sprünge helfen?
vielen Dank vorab und Grüße Stephan -
@schoeppi_1
Bei Werten des Trigger-Datenpunktes > 20 W werden mehrere Timer gestartet, die sich nicht mehr stoppen lassen.
Prinzip: -
@paul53
Vielen Dank für die schnelle Antwort. Ich habe das Blockly mit Testvariablen und vielen Debug Ausgaben nachgebaut, da ich es nicht so ganz nachvollziehen konnte.
Einzig beim Neustart kommen die ersten beiden Meldungen:
Dann kann ich Leistungswerte eingeben wie ich will. Es passiert nichts mehr
Sieht du einen Fehler? -
@schoeppi_1 sagte: Sieht du einen Fehler?
Die Blöcke unter dem Trigger-Block gehören in den Trigger-Block!
Wegen der asynchronen Ausführung von "steuere" kann man nicht unmittelbar danach den Wert des Datenpunktes auslesen. Man erhält den alten Wert, da "steuere" zu dem Zeitpunkt noch nicht fertig ist.
-
@paul53
Oje, bin ich blöd... teste ich gleich noch mal.. Danke -
@schoeppi_1
es klapptIch setze es dann in die Praxis um. Danke vielmals..
Eine Verständnisfrage noch. Bedeutet diese Zeile frei übersetzt:
"Wenn der Timer nicht angestoßen ist, dann führe aus"Und diese Zeile:
"Wenn der Wert von Pumpe ein = wahr, dann führe aus" -
@schoeppi_1 sagte: "Wenn der Timer nicht angestoßen ist, dann führe aus"
Ja, das ist die Sperre, die einen mehrfachen Timerstart verhindert.
@schoeppi_1 sagte in Leistungsabhängig eine Pumpe schalten:
"Wenn der Wert von Pumpe ein = wahr, dann führe aus"
Ja, ein Vergleich mit wahr ist unnütz, da das Ergebnis eines jeden Vergleichs wahr oder falsch ist.
-
@paul53
Hallo @paul53 . Vielen Dank. Verstanden.
Ich habe es jetzt umgesetzt wie in deinem Beispiel beschrieben und die Pumpe schnurrt wie sie soll
Nachdem du es vorgebetet hast, kann ich es auch nachvollziehen. Auf die Lösung wäre ich aber nie gekommen.
Jetzt bin ich auf natürlich heiß gelaufen (macht halt mehr Spass wenn sich der Erfolg einstellt..) und habe das gleiche noch für einen Ventilator gebaut mit dem Unterschied, dass der nur anlaufen soll, wenn die Pumpe auch schön läuft und trotzdem noch Leistung zur Verfügung steht. (Vorrang)
Zunächst habe ich die Abfrage verundet.
Da ist er Falls Teil aber nie durchgelaufen. Wenn ich es richtig geprüft habe, noch nicht mal der Falls Teil wo die Abschaltung erfolgt. Habe ich nicht verstanden warum nicht.
Danach habe ich es dann so gemacht, dass ich einen komplette Falls Abfrage drüber gestülpt habe.Jetzt funktioniert es soweit ich es testen konnte.
Falls du noch einen Tip hast, gerne
Ansonsten nochmals vielen Dank für die Unterstützung. Du hast es echt drauf.