Pumpensteuerung Solar

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

Stephan22
Beiträge: 38
Registriert: 02.12.2020, 21:34
System: CCU
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Pumpensteuerung Solar

Beitrag von Stephan22 » 31.05.2021, 20:05

Hallo,

Ich habe eine Pool-Pumpe die ich gerne ansteuern würde. Ich habe dazu einfach einen HMIP-Schaltaktor 1 Fach dazwischen gebastelt, womit ich ein und ausschalten kann.

Zusätzlich habe ich eine Systemvariable, die mit meinen aktuellen Stromverbrauch anzeigt.

Jetzt würde ich gerne, dass wenn der Stromzähler auf -600W geht, die Pumpe einschaltet. Gleichzeitig möchte ich, dass die Pumpe ausschaltet, wenn 0 oder mehr angezeigt wird. Dazu möchte ich, dass Ausschalten um 20 Sekunden verzögern und das einschalten um 10 Sekunden.
Hintergrund: Kurze spitzen im Haus, oder Wolken am Himmel sollen die Pumpe nicht abschalten.

Soweit wäre der Flow klar, nur stören die Überschneidungen. Wenn die Sonne scheint, wird „einschalten“ geschickt. Kommt eine Wolke, wird „ausschalten“ geschickt. Also passiert es regelmäßig dass die Pumpe ausschaltet und sofort wieder an.

Wie kann ich denn effektiv erreichen, dass eine Aktion abgebrochen wird ?
Also wenn der Flow „Pumpe ausschalten“ aktiv ist und bei der Verzögerung steht, muss das abgebrochen werden, wenn „Pumpe einschalten“ getriggert wird.

Hier mein bisheriger Aufbau:
* Bitte "Aquariumbelüftung" einfach ignorieren. Das habe ich gemacht, da ich das Aquarium hier habe und sehe was passiert. Und dort passiert nicht viel. Dauernd Pumpe an / aus finde ich schlecht und die Nachbarn müssen ja auch nicht genervt werden.
Bildschirmfoto 2021-05-31 um 20.08.45.png
Danke!!

turrican944
Beiträge: 513
Registriert: 29.05.2019, 22:19
Wohnort: Bargfeld
Hat sich bedankt: 4 Mal
Danksagung erhalten: 49 Mal

Re: Pumpensteuerung Solar

Beitrag von turrican944 » 01.06.2021, 12:52

Moin
Musst du eine Hystherese einbauen. Ich habe das für meine Poolheizung gemacht um die Sonne zu erkennen per Helligkeit. Der Helligkeitssensor gibt jede Minute die Helligkeit aus, damit gehe ich in einen Switch node wo ich die einschalt und die auschaltschwelle festgelegt habe. Die Ausgänge des Switch node gehen auf jeweils einen Trigger node. Der Trigger für Sonnen an wird bei größer 30000 Lux angestoßen, macht erstmal nix und nach 2 Minuten kommt dort mein Signal sonne scheint raus. Der zweite Ausgang vom Switch node ist auf 20000 Lux (also sonne scheint nicht mehr) und Resettet den Trigger Node für Sonne scheint, dh wenn 2 Minuten die Lux stärke nicht unter 20000 war wird eingeschaltet. Fürs auschalten ein zweiter Trigger node der 5 Minuten wartet und bei kleiner 20000 Lux gestartet wird bzw bei größer 30000 Lux einen Reset macht.

Gibt vielleicht bessere Lösungen aber funktioniert bei mir so.

Code: Alles auswählen

[{"id":"99e86b00.834d58","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"2076b68e.8a2f5a","type":"switch","z":"99e86b00.834d58","name":"","property":"payload","propertyType":"msg","rules":[{"t":"gt","v":"30","vt":"num"},{"t":"lt","v":"10","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":310,"y":300,"wires":[["f8e44427.7de108","d58e5569.ba75e8"],["cb4f944a.999358","167f1732.d89029"]]},{"id":"df930ccc.3b87f","type":"inject","z":"99e86b00.834d58","name":"","props":[{"p":"payload"},{"p":"topic","v":"","vt":"num"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"9","payloadType":"num","x":140,"y":260,"wires":[["2076b68e.8a2f5a"]]},{"id":"9abcce05.0202f","type":"inject","z":"99e86b00.834d58","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"31","payloadType":"num","x":140,"y":360,"wires":[["2076b68e.8a2f5a"]]},{"id":"cb4f944a.999358","type":"trigger","z":"99e86b00.834d58","name":"","op1":"","op2":"0","op1type":"nul","op2type":"str","duration":"25","extend":false,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":690,"y":280,"wires":[["8d9da229.d8de6"]]},{"id":"f8e44427.7de108","type":"trigger","z":"99e86b00.834d58","name":"","op1":"","op2":"1","op1type":"nul","op2type":"str","duration":"10","extend":false,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":690,"y":360,"wires":[["8d9da229.d8de6"]]},{"id":"167f1732.d89029","type":"change","z":"99e86b00.834d58","name":"","rules":[{"t":"set","p":"reset","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":500,"y":440,"wires":[["f8e44427.7de108"]]},{"id":"d58e5569.ba75e8","type":"change","z":"99e86b00.834d58","name":"","rules":[{"t":"set","p":"reset","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":500,"y":220,"wires":[["cb4f944a.999358"]]},{"id":"8d9da229.d8de6","type":"debug","z":"99e86b00.834d58","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":940,"y":320,"wires":[]}]
in dem Beispiel ein Wert kleiner 10 stößt den einen Trigger an der nach 25 Sek (soll ja zum testen nicht so lange dauern) das Aussignal sendet.
Passiert in dieser Zeit nix oder ein Wert größer 10 aber kleiner 30 kommt, passiert auch nix. Nach 25 Sek ist dann aus. Sollte inerhalb von der Zeit ein Wert größer 30 kommen wird der Trigger Resettet und der andere gesetzt. Wenn du nur für das ausschalten das haben möchtest lass den kurzen Trigger weg und schalte gleich beim überschreiten der schwelle ein.
Dateianhänge
flow.txt.txt
(2.19 KiB) 29-mal heruntergeladen
Unbenannt.PNG
Gruß Florian

Stephan22
Beiträge: 38
Registriert: 02.12.2020, 21:34
System: CCU
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Pumpensteuerung Solar

Beitrag von Stephan22 » 02.06.2021, 19:17

Hallo,

Danke für die Antwort. Ist ja sehr ausführlich. Werde ich mir heute Abend mal genauer ansehen.

Edit:
Wow perfekt. Das ist ja ein voll funktionsfähiger Flow genau wie ich ihn brauche.
Import => Inputs ändern => Device ändern => Fertig läuft

Vielen dank dafür!!! Wahnsinn!!
Ende Edit

Weißt du eventuell, ob es auch einen Baustein gibt wo ich eine Zeit hoch zählen lassen kann?
Also ich würde dann gerne täglich erfassen wollen, wie lang die Pumpe gelaufen ist.
Damit ich dann täglich um 17 Uhr prüfen kann ob es wenigstens 2h waren. Wenn nicht soll die dann noch zusätzlich laufen.

Danke :)

ptweety
Beiträge: 522
Registriert: 07.01.2017, 16:48
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 48 Mal
Danksagung erhalten: 66 Mal

Re: Pumpensteuerung Solar

Beitrag von ptweety » 02.06.2021, 22:58

Nicht hochzuholen, aber runterzuholen kann der hier: https://flows.nodered.org/node/node-red ... -countdown

Stephan22
Beiträge: 38
Registriert: 02.12.2020, 21:34
System: CCU
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Pumpensteuerung Solar

Beitrag von Stephan22 » 02.06.2021, 23:03

Super, den schaue ich mir mal an danke!

Ich kann ja auch auf 0 zählen und dann abfragen wenn >0 einschalten.


Jetzt habe ich nur noch ein Problem.

Und zwar habe ich eine Systemvariable die ich "wirkenergie_ges" genannt habe. Diese beinhaltet wie der Name schon sagt meinen Aktuellen Stromverbrauch vom zähler. Diesen übermittel ich per Script:

Code: Alles auswählen

$url = 'http://user:pass@192.168.0.50:8181/blabla.exe?Antwort=dom.GetObject("wirkenergie_ges").State('.$entityBody.')';
Die Homematic zeigt innerhalb von einer Sekunde den geänderten Wert in der Liste der Systemvariablen an.

Im RedMatic nutze ich dafür einen sysvar node der auf diese änderung reagiert.

Der node braucht aber locker 20 Sekunden länger. Unter dem node steht auch noch bestimmt 20 Sekunden der alte wert, obwohl in der Sysvar schon lange der neue Wert steht.

Kann man die Häufigkeit Ändern, die der node auf Änderungen prüft?

Danke!

ptweety
Beiträge: 522
Registriert: 07.01.2017, 16:48
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 48 Mal
Danksagung erhalten: 66 Mal

Re: Pumpensteuerung Solar

Beitrag von ptweety » 03.06.2021, 00:21

Sysvar werden von Redmatic im Abstand von (glaube ich) 30 Sekunden gepullt. Vielleicht kann man das auch einstellen.

Aber woher kommt denn überhaupt der Wert für die Sysvar? Kannst du nicht den Zähler auch aus Redmatic auslesen und damit dann weiterarbeiten?

Stephan22
Beiträge: 38
Registriert: 02.12.2020, 21:34
System: CCU
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Pumpensteuerung Solar

Beitrag von Stephan22 » 03.06.2021, 01:18

Ja das habe ich auch gerade rausgefunden beim suchen. Blöd mit den 30 Sekunden.

Ich glaube nicht dass es anders geht.

Der Wert kommt aus VZLogger.

VZLogger ruft eine php-Datei auf und diese php-Datei schreibt die systemvariable

Edit:

Ok ich könnte ein inject machen der jede Sekunde startet und den Wert aus einer influxdb ausliest. Denn dort speichert VZLogger den Wert auch noch ab.

Stephan22
Beiträge: 38
Registriert: 02.12.2020, 21:34
System: CCU
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Pumpensteuerung Solar

Beitrag von Stephan22 » 03.06.2021, 03:02

Hallo nochmal,

Also das klappt soweit perfekt. Ich habe jetzt einen Flow der jede Sekunde 1x die influx ausließt und den Wert in einer Datei speichert.

Meine anderen Flows habe ich so geändert, dass jede Sekunde ein inject läuft, der dann diese Datei ausliest und den Wert verarbeitet.


@ptweety:

Der Countdown funktioniert leider nicht wie er müsste. Er fängt zwar an zu laufen und zählt rückwärts, wird aber jedesmal zurückgesetzt.
Wenn man ihn also wieder startet, zählt er wieder vom Startwert aus. Soweit ich sehe, kann man das nicht ändern. Oder übersehe ich etwas?


Danke!

turrican944
Beiträge: 513
Registriert: 29.05.2019, 22:19
Wohnort: Bargfeld
Hat sich bedankt: 4 Mal
Danksagung erhalten: 49 Mal

Re: Pumpensteuerung Solar

Beitrag von turrican944 » 03.06.2021, 07:33

Moin
Das gut das es funktioniert. Mittlerweile habe ich festgestellt das es sogar fertige Hysterese nodes gibt, hätte ich Garnicht selber bauen müssen.
In den combine nodes von Hobbyquaker ist ein Bangbang node der macht eine Hysterese (den hatte ich sogar schon drauf) und einen Hysterese Node gibt's auch noch einzeln.
So geht es natürlich auch.
Zum Laufzeit messen habe ich auch noch nix wirklich brauchbares gefunden. Ich will das für meine Pumpe auch machen und bin eigentlich schon soweit mir selbst ne Funktion zu schreiben die wenn die Pumpe gestartet wird entweder die Zeit wegschreibt und beimabschalten dann die Laufzeit ausrechnet oder ich mache es einfach das duef Funktion jede Minute getriggert wird und ich einfach die Minuten zähle (ist einfacher).
Gruß Florian

ptweety
Beiträge: 522
Registriert: 07.01.2017, 16:48
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 48 Mal
Danksagung erhalten: 66 Mal

Re: Pumpensteuerung Solar

Beitrag von ptweety » 03.06.2021, 09:09

Letzteres geht mit einfachen Bordmitteln z.B. wie folgt:

Code: Alles auswählen

[{"id":"3dbba324.c710fc","type":"inject","z":"f48abf30.643098","name":"Reset","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"00 17 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":430,"y":1800,"wires":[["f0a419f6.36e768"]]},{"id":"8b07a956.32d94","type":"inject","z":"f48abf30.643098","name":"Start","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":430,"y":1860,"wires":[["f5ff59b8.b49ef8"]]},{"id":"c4acc0fe.483ba","type":"inject","z":"f48abf30.643098","name":"Stop","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":430,"y":1900,"wires":[["6b5d5e48.0279d8"]]},{"id":"96a878b6.8755b8","type":"inject","z":"f48abf30.643098","name":"Count","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"*/1 7-16 * * *","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":430,"y":1960,"wires":[["67b603ef.7926dc"]]},{"id":"f0a419f6.36e768","type":"change","z":"f48abf30.643098","name":"","rules":[{"t":"set","p":"counter","pt":"flow","to":"{\"count\":false,\"value\":0}","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":610,"y":1800,"wires":[[]]},{"id":"f5ff59b8.b49ef8","type":"change","z":"f48abf30.643098","name":"","rules":[{"t":"set","p":"counter.count","pt":"flow","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":630,"y":1860,"wires":[[]]},{"id":"6b5d5e48.0279d8","type":"change","z":"f48abf30.643098","name":"","rules":[{"t":"set","p":"counter.count","pt":"flow","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":630,"y":1900,"wires":[[]]},{"id":"67b603ef.7926dc","type":"switch","z":"f48abf30.643098","name":"","property":"counter.count","propertyType":"flow","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":570,"y":1960,"wires":[["556f3733.1561d8"]]},{"id":"556f3733.1561d8","type":"change","z":"f48abf30.643098","name":"","rules":[{"t":"set","p":"counter.value","pt":"flow","to":"$flowContext('counter').value + 1","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":770,"y":1960,"wires":[[]]},{"id":"a2c304e7.d9a7b8","type":"inject","z":"f48abf30.643098","name":"Check","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"$flowContext('counter')","payloadType":"jsonata","x":430,"y":2020,"wires":[["5ad3f985.bd3f98"]]},{"id":"5ad3f985.bd3f98","type":"debug","z":"f48abf30.643098","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":590,"y":2020,"wires":[]}]
Bildschirmfoto 2021-06-03 um 09.08.34.png

Antworten

Zurück zu „RedMatic“