Auch von mir vielen Dank für den Wink. Ich bin ja auch nur blutiger Anfänger in NodeRed und mir ist auch bewusst, dass meine Lösung eher ein Workaround ist, der der NodeRed-Philosopie entgegen steht. Ich habe eine Lösung gesucht, dass man beim Betätigen eines Sliders eine payload-lose Message an die anderen triggert. Oder eine Summierungsnode sich die alten durchgekommenen Messages merkt. Da bin ich aber nicht fündig geworden. Den DSM schaue ich mir auch mal an.
Beispiele: openWB Integration an Node-Red
-
- Beiträge: 3415
- Registriert: Sa Feb 20, 2021 9:55 am
- Has thanked: 4 times
- Been thanked: 59 times
Re: Beispiele: openWB Integration an Node-Red
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
-
- Beiträge: 7745
- Registriert: Mo Okt 08, 2018 4:51 pm
- Has thanked: 17 times
- Been thanked: 31 times
Re: Beispiele: openWB Integration an Node-Red
Das zugehörige Wiki ist nicht schlecht.
https://github.com/cflurin/node-red-contrib-dsm/wiki
https://github.com/cflurin/node-red-contrib-dsm/wiki
-
- Beiträge: 3415
- Registriert: Sa Feb 20, 2021 9:55 am
- Has thanked: 4 times
- Been thanked: 59 times
Re: Beispiele: openWB Integration an Node-Red
So hier ein mehr node-reddiger Lösungsvorschlag:
Nun habe ich verstanden, wie die statistic-node aus node-red-contrib-combine funktioniert. Sie summiert alle Werte unterschiedlicher Topics. D.h. Sie merkt sich den Wert jedes Topics und gibt dann die Summe aller Topics aus. Dementsprechend muss jede Slider/Numeric-Gruppe ein eigenes Topic bekommen, dann klappt's auch mit der Summierung.
Code: Alles auswählen
[{"id":"6eac542e.5dabf4","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"e56b20c5.ce2a78","type":"ui_slider","z":"6eac542e.5dabf4","name":"S1","label":"S1","tooltip":"","group":"1de0097c.41aea7","order":3,"width":"4","height":"1","passthru":true,"outs":"all","topic":"SI1","topicType":"str","min":0,"max":"20","step":1,"className":"","x":270,"y":100,"wires":[["e2dd636a.e87488"]]},{"id":"39d9e634.6f9e2a","type":"ui_slider","z":"6eac542e.5dabf4","name":"S2","label":"S2","tooltip":"","group":"1de0097c.41aea7","order":5,"width":"4","height":"1","passthru":true,"outs":"all","topic":"SI2","topicType":"str","min":0,"max":"20","step":1,"className":"","x":270,"y":180,"wires":[["ffb1249.b156ad8"]]},{"id":"ffb1249.b156ad8","type":"ui_numeric","z":"6eac542e.5dabf4","name":"I2","label":"","tooltip":"","group":"1de0097c.41aea7","order":6,"width":"2","height":"1","wrap":false,"passthru":true,"topic":"SI2","topicType":"str","format":"{{value}}","min":0,"max":"20","step":1,"className":"","x":410,"y":180,"wires":[["39d9e634.6f9e2a","9c07867f.be1bb"]]},{"id":"e2dd636a.e87488","type":"ui_numeric","z":"6eac542e.5dabf4","name":"I1","label":"","tooltip":"","group":"1de0097c.41aea7","order":4,"width":"2","height":"1","wrap":false,"passthru":true,"topic":"SI1","topicType":"str","format":"{{value}}","min":0,"max":"20","step":1,"className":"","x":410,"y":100,"wires":[["e56b20c5.ce2a78","9c07867f.be1bb"]]},{"id":"22f39c88.e11c04","type":"ui_slider","z":"6eac542e.5dabf4","name":"","label":"S3","tooltip":"","group":"1de0097c.41aea7","order":7,"width":"4","height":"1","passthru":true,"outs":"all","topic":"SI3","topicType":"str","min":0,"max":"20","step":1,"className":"","x":270,"y":260,"wires":[["a5d3a640.8a69b8"]]},{"id":"9c07867f.be1bb","type":"combine-statistic","z":"6eac542e.5dabf4","name":"","topic":"HV","operator":"sum","falsy":"include","defer":250,"timeout":"0","distinction":"topic","x":620,"y":180,"wires":[["3fbf70b5.4a3ec"]]},{"id":"3fbf70b5.4a3ec","type":"ui_gauge","z":"6eac542e.5dabf4","name":"","group":"1de0097c.41aea7","order":9,"width":0,"height":0,"gtype":"gage","title":"summe","label":"Watt","format":"{{value}}","min":0,"max":"13800","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","className":"","x":780,"y":180,"wires":[]},{"id":"3485204b.a1ab68","type":"inject","z":"6eac542e.5dabf4","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"0","payloadType":"num","x":90,"y":180,"wires":[["e56b20c5.ce2a78","39d9e634.6f9e2a","22f39c88.e11c04"]]},{"id":"a5d3a640.8a69b8","type":"ui_numeric","z":"6eac542e.5dabf4","name":"I3","label":"","tooltip":"","group":"1de0097c.41aea7","order":8,"width":"2","height":"1","wrap":false,"passthru":true,"topic":"SI3","topicType":"str","format":"{{value}}","min":0,"max":"20","step":1,"className":"","x":410,"y":260,"wires":[["22f39c88.e11c04","9c07867f.be1bb"]]},{"id":"1de0097c.41aea7","type":"ui_group","name":"Simulation","tab":"744b5117.d18b28","order":1,"disp":true,"width":"6","collapse":false,"className":""},{"id":"744b5117.d18b28","type":"ui_tab","name":"Haussimulation","icon":"dashboard","disabled":false,"hidden":false}]
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
-
- Beiträge: 7745
- Registriert: Mo Okt 08, 2018 4:51 pm
- Has thanked: 17 times
- Been thanked: 31 times
Re: Beispiele: openWB Integration an Node-Red
und ich dachte schon, ich muss jetzt auf Python umschwenken . Na mal sehen, ob wir den Sim zum Laufen bekommen. Danach geb' ich einen aus.
Den statistic-node bekomme ich bei mir immer noch als unknown. Auch die Schleifen flattern heftigst.
Kannst Du mal den Inhalt des function-node posten?
Den statistic-node bekomme ich bei mir immer noch als unknown. Auch die Schleifen flattern heftigst.
Kannst Du mal den Inhalt des function-node posten?
-
- Beiträge: 3415
- Registriert: Sa Feb 20, 2021 9:55 am
- Has thanked: 4 times
- Been thanked: 59 times
Re: Beispiele: openWB Integration an Node-Red
Du musst das noch das node-red-contrib-combine installieren. Da ist die statistic-node drin. Das mit dem Flattern habe ich bei mir nicht. Das kommt dann vielleicht von den unterschiedlichen Versionen?
Ich hab' mal weitergebaut: Ich kann nun die PV-Leistung verdrehen und den Hausverbrauch einstellen. Raus kommt wenig überraschend die Leistung am EVU-Punkt. Und ganz unten schon mal die Geamt-Ladeleistung der openWB.
Hier ist der Flow dazu:
Auf die Spannung und die Frequenz habe ich erst mal verzichtet, Als Demonstrator reicht das ja vielleicht auch nur mit den Leistungen.
Du müsstest also nur noch die einzelnen Werte in die richtigen MQTT-Topics der openWB schreiben.
Ich hab' mal weitergebaut: Ich kann nun die PV-Leistung verdrehen und den Hausverbrauch einstellen. Raus kommt wenig überraschend die Leistung am EVU-Punkt. Und ganz unten schon mal die Geamt-Ladeleistung der openWB.
Hier ist der Flow dazu:
Code: Alles auswählen
[{"id":"cf354afd.9bc818","type":"tab","label":"Haussimulation","disabled":false,"info":""},{"id":"5719608c.cb6d5","type":"ui_slider","z":"cf354afd.9bc818","name":"","label":"HV1","tooltip":"","group":"e4b1e54c.678138","order":2,"width":"4","height":"1","passthru":true,"outs":"all","topic":"HV1","topicType":"str","min":0,"max":"20","step":1,"className":"","x":270,"y":100,"wires":[["bbecace6.cf6118"]]},{"id":"4c4decd7.181c64","type":"ui_slider","z":"cf354afd.9bc818","name":"","label":"HV2","tooltip":"","group":"e4b1e54c.678138","order":4,"width":"4","height":"1","passthru":true,"outs":"all","topic":"HV2","topicType":"str","min":0,"max":"20","step":1,"className":"","x":270,"y":180,"wires":[["73c7b491.eca484"]]},{"id":"73c7b491.eca484","type":"ui_numeric","z":"cf354afd.9bc818","name":"n2","label":"","tooltip":"","group":"e4b1e54c.678138","order":5,"width":"2","height":"1","wrap":false,"passthru":true,"topic":"HV2","topicType":"str","format":"{{value}}","min":0,"max":"20","step":1,"className":"","x":410,"y":180,"wires":[["4c4decd7.181c64","61f39718.4707a"]]},{"id":"bbecace6.cf6118","type":"ui_numeric","z":"cf354afd.9bc818","name":"n1","label":"","tooltip":"","group":"e4b1e54c.678138","order":3,"width":"2","height":"1","wrap":false,"passthru":true,"topic":"HV1","topicType":"str","format":"{{value}}","min":0,"max":"20","step":1,"className":"","x":410,"y":100,"wires":[["5719608c.cb6d5","61f39718.4707a"]]},{"id":"73d4ae7a.9e5378","type":"ui_gauge","z":"cf354afd.9bc818","name":"","group":"e4b1e54c.678138","order":1,"width":0,"height":0,"gtype":"gage","title":"Hausverbrauch","label":"Watt","format":"{{value}}","min":0,"max":"13800","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","className":"","x":1080,"y":180,"wires":[]},{"id":"33e16f4f.c097e8","type":"ui_slider","z":"cf354afd.9bc818","name":"","label":"HV3","tooltip":"","group":"e4b1e54c.678138","order":6,"width":"4","height":"1","passthru":true,"outs":"all","topic":"HV3","topicType":"str","min":0,"max":"20","step":1,"className":"","x":270,"y":260,"wires":[["c46e3ffe.11dc18"]]},{"id":"c46e3ffe.11dc18","type":"ui_numeric","z":"cf354afd.9bc818","name":"n3","label":"","tooltip":"","group":"e4b1e54c.678138","order":7,"width":"2","height":"1","wrap":false,"passthru":true,"topic":"HV3","topicType":"str","format":"{{value}}","min":0,"max":"20","step":1,"className":"","x":410,"y":260,"wires":[["33e16f4f.c097e8","61f39718.4707a"]]},{"id":"3b68517d.870aae","type":"inject","z":"cf354afd.9bc818","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"HV","payload":"0","payloadType":"num","x":90,"y":180,"wires":[["5719608c.cb6d5","4c4decd7.181c64","33e16f4f.c097e8","5fca2631.32d338"]]},{"id":"967fc91e.c1e34","type":"ui_slider","z":"cf354afd.9bc818","name":"","label":"PV","tooltip":"","group":"1de0097c.41aea7","order":2,"width":"4","height":"1","passthru":true,"outs":"all","topic":"PV","topicType":"str","min":0,"max":"13000","step":"100","className":"","x":270,"y":500,"wires":[["7ed00085.af4438"]]},{"id":"7ed00085.af4438","type":"ui_numeric","z":"cf354afd.9bc818","name":"PVn","label":"","tooltip":"","group":"1de0097c.41aea7","order":3,"width":"3","height":"1","wrap":false,"passthru":true,"topic":"PV","topicType":"str","format":"{{value}}","min":0,"max":"13000","step":"100","className":"","x":410,"y":500,"wires":[["967fc91e.c1e34","5fca2631.32d338","49e4bb93.e612c4"]]},{"id":"49e4bb93.e612c4","type":"ui_gauge","z":"cf354afd.9bc818","name":"","group":"1de0097c.41aea7","order":1,"width":0,"height":0,"gtype":"gage","title":"PV-Leistung","label":"Watt","format":"{{value}}","min":0,"max":"13000","colors":["#e6e600","#e6e600","#e6e600"],"seg1":"","seg2":"","className":"","x":1070,"y":500,"wires":[]},{"id":"a28ea702.28953","type":"ui_gauge","z":"cf354afd.9bc818","name":"","group":"5dcc2e5f.f76a9","order":8,"width":0,"height":0,"gtype":"gage","title":"Überschuss/Bezug","label":"Watt","format":"{{value}}","min":"-13800","max":"13800","colors":["#00f900","#00f900","#ff2600"],"seg1":"100","seg2":"100","className":"","x":1090,"y":300,"wires":[]},{"id":"61f39718.4707a","type":"combine-statistic","z":"cf354afd.9bc818","name":"","topic":"HV","operator":"sum","falsy":"include","defer":250,"timeout":0,"distinction":"topic","x":660,"y":180,"wires":[["1ac0d787.7324c8"]]},{"id":"5fca2631.32d338","type":"combine-delta","z":"cf354afd.9bc818","topic":"","topicA":"HV","topicB":"PV","name":"PV - HV","x":640,"y":320,"wires":[["a28ea702.28953"]]},{"id":"1ac0d787.7324c8","type":"function","z":"cf354afd.9bc818","name":"A * 230 > W","func":"msg.payload = msg.payload * 230;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":850,"y":180,"wires":[["73d4ae7a.9e5378","5fca2631.32d338"]]},{"id":"e1fc2a5a.4cf05","type":"inject","z":"cf354afd.9bc818","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"PV","payload":"7200","payloadType":"num","x":100,"y":500,"wires":[["967fc91e.c1e34","5fca2631.32d338"]]},{"id":"ed5b83b7.d1883","type":"mqtt in","z":"cf354afd.9bc818","name":"Hausverbrauch","topic":"openWB/global/WAllChargePoints","qos":"2","datatype":"auto","broker":"978968c8.7b5238","x":120,"y":640,"wires":[["77fdf7a5.1417b"]]},{"id":"77fdf7a5.1417b","type":"ui_gauge","z":"cf354afd.9bc818","name":"","group":"9545499f.a61ca8","order":0,"width":0,"height":0,"gtype":"gage","title":"openWB","label":"watt","format":"{{value}}","min":0,"max":"11000","colors":["#00b500","#00b500","#00b500"],"seg1":"","seg2":"","className":"","x":430,"y":640,"wires":[]},{"id":"e4b1e54c.678138","type":"ui_group","name":"Hausverbrauch","tab":"744b5117.d18b28","order":2,"disp":false,"width":"7","collapse":false,"className":""},{"id":"1de0097c.41aea7","type":"ui_group","name":"PV Produkion","tab":"744b5117.d18b28","order":1,"disp":false,"width":"7","collapse":false,"className":""},{"id":"5dcc2e5f.f76a9","type":"ui_group","name":"Überschuss","tab":"744b5117.d18b28","order":3,"disp":false,"width":"7","collapse":false,"className":""},{"id":"978968c8.7b5238","type":"mqtt-broker","name":"OpenWB","broker":"192.168.8.11","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"30","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","willTopic":"","willQos":"0","willRetain":"false","willPayload":""},{"id":"9545499f.a61ca8","type":"ui_group","name":"Wallbox","tab":"744b5117.d18b28","order":4,"disp":false,"width":"7","collapse":false,"className":""},{"id":"744b5117.d18b28","type":"ui_tab","name":"Haussimulation","icon":"dashboard","disabled":false,"hidden":false}]
Du müsstest also nur noch die einzelnen Werte in die richtigen MQTT-Topics der openWB schreiben.
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
-
- Beiträge: 7745
- Registriert: Mo Okt 08, 2018 4:51 pm
- Has thanked: 17 times
- Been thanked: 31 times
Re: Beispiele: openWB Integration an Node-Red
mächtig gewaltig!
Danke
Der combine-node ist sehr hilfreich. Bis auf die Schleifen läuft alles sauber. Ich habe sie erst einmal entfernt. Ich tippe auch auf die unterschiedlichen node-Versionen.
Eine oWB-MQTT-Auslesung der oWB nach Deinem Bsp. viewtopic.php?p=49177#p49177 habe ich gut hinbekommen. So langsam kommt Licht ins Dunkel, wobei ich noch ein paar Fragen habe:
1. Muss man jeden Wert einzeln mit einem extra MQTT-out-node an oWB senden oder kann man z.B. alle Werte-Ausgaben über einen node laufen lassen?
2. Im Gegensatz zum lesenden chargepoint-Bsp. muss ich MQTT-out für SET nutzen; cool = > Nach EVU-Umstellung auf MQTT in oWB kommen dort die Werte.
3. Gibt es noch eine Option die verschiedenen Dashboard-Fenstergruppen nach Wunsch anzuordnen? Innerhalb der Fenster habe ich gefunden, aber nicht untereinander. Aktuell liegen die bei mir alle untereinander.
Das war ein Mega-Schritt (für mich). Hier mal visulle Ergebnisse:
Danke
Der combine-node ist sehr hilfreich. Bis auf die Schleifen läuft alles sauber. Ich habe sie erst einmal entfernt. Ich tippe auch auf die unterschiedlichen node-Versionen.
Eine oWB-MQTT-Auslesung der oWB nach Deinem Bsp. viewtopic.php?p=49177#p49177 habe ich gut hinbekommen. So langsam kommt Licht ins Dunkel, wobei ich noch ein paar Fragen habe:
1. Muss man jeden Wert einzeln mit einem extra MQTT-out-node an oWB senden oder kann man z.B. alle Werte-Ausgaben über einen node laufen lassen?
2. Im Gegensatz zum lesenden chargepoint-Bsp. muss ich MQTT-out für SET nutzen; cool = > Nach EVU-Umstellung auf MQTT in oWB kommen dort die Werte.
3. Gibt es noch eine Option die verschiedenen Dashboard-Fenstergruppen nach Wunsch anzuordnen? Innerhalb der Fenster habe ich gefunden, aber nicht untereinander. Aktuell liegen die bei mir alle untereinander.
Das war ein Mega-Schritt (für mich). Hier mal visulle Ergebnisse:
-
- Beiträge: 3415
- Registriert: Sa Feb 20, 2021 9:55 am
- Has thanked: 4 times
- Been thanked: 59 times
Re: Beispiele: openWB Integration an Node-Red
Da man in der Node ja nur ein Topic angeben kann, würde ich erst mal sagen ja. Kannst ja mal suchen, ob es sowas wie einen Multi-MQTT node gibt, dem man ein Array als Payload gibt. Oder dass das MQTT-Topic aus dem NodeRED-Topic genommen wird. Ich vermute aber eher mal nicht.
Genau so war es ja gedacht. Man dreht an PV und HV rum und schaut was die openWB daraus macht. Wäre ja auch zum Debugging hilfreich. Ich denke da an den noch offenen PR mit der Ladeleistung und den 1p3-Umschalten. viewtopic.php?f=9&t=4063
Klick mal dieses Menü hier und wähle Dashboard - das hier sind bei mir drei Screens, zwischen denen ich auf dem Handy hin- und herwischen kann.
Wegen des Flatterns hätte ich noch einen Tip: Probier' mal im Slider diese Option auszuschalten - wir brauchen den ja nur zu schieben und nicht nochmal den Wert:
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
-
- Beiträge: 1408
- Registriert: Di Sep 03, 2019 4:13 pm
- Has thanked: 7 times
- Been thanked: 8 times
Re: Beispiele: openWB Integration an Node-Red
Nein, das geht alles generischer.
Du kannst mit einem MQTT Node *alle* Topics oder Teile des Baumes subscriben.
Das fragt alles unterhalb openWB/ ab ... quasi *.*
Dann kannst Du die eingehenden Messages in einem Switch-Node weiter verteilen.
...so:
BTW: Der "rbe"-Node nach dem MQTT Eingang sorgt dafür, das ein Topic nur weitergereicht wird, wenn sich der Wert des Topics gegenüber dem letzten Mal geändert hat. Das verhindert, dass NR geflutet wird, sollte die openWB mal spinnen
Genau das geht aber...für ausgehende publish ("senden") Messages kannst Du das Topic in der Konfig leerlassen und es einfach in der Message setzenOder dass das MQTT-Topic aus dem NodeRED-Topic genommen wird. Ich vermute aber eher mal nicht.
...zB mit einem Change Node:
-
- Beiträge: 667
- Registriert: So Jul 25, 2021 2:32 pm
- Has thanked: 2 times
- Been thanked: 3 times
Re: Beispiele: openWB Integration an Node-Red
Hm...
Bei mir hat die Start-Node openWB/# über 600 Elemente.
Die alle zu "subscripten" ist vieleicht doch ein bischen viel wenn man nur 20-30 wirklich haben will.
Bei mir hat die Start-Node openWB/# über 600 Elemente.
Die alle zu "subscripten" ist vieleicht doch ein bischen viel wenn man nur 20-30 wirklich haben will.
gruss
Heinz
6kWp+7.7kWp PV, RCT Akku, RCT Power DC6+DC8, +Tibber,+Shelly's
Skoda Citigo e-iV, openWB series2 standart+
mit openWB_lite
Github: https://github.com/hhoefling/openWB_lite
https://github.com/hhoefling/MyOwnOWBC
Heinz
6kWp+7.7kWp PV, RCT Akku, RCT Power DC6+DC8, +Tibber,+Shelly's
Skoda Citigo e-iV, openWB series2 standart+
mit openWB_lite
Github: https://github.com/hhoefling/openWB_lite
https://github.com/hhoefling/MyOwnOWBC
-
- Beiträge: 1408
- Registriert: Di Sep 03, 2019 4:13 pm
- Has thanked: 7 times
- Been thanked: 8 times
Re: Beispiele: openWB Integration an Node-Red
Bedenke, das ist keine aktive Abfrage, sondern eine Subscribtion.
Der MQTT Node bekommt nur dann etwas, wenn sich etwas (durch ein publish der openWB) im Broker ändert.
Da alle Topics in der openWB das retain Flag gesetzt haben, bekommt er tatsächlich beim *ersten* Start *alle* Topics genau einmal.
Aber Du packst eben nur die Topics in den switch-Node, welche du im Flow brauchst.
Alle anderen werden dann zwar auch mal im Strom dabei sein, aber werden sofort ausgefiltert.
Du kannst auch ein Switch-Element "anderfalls" ans Ende bauen..dort landet dann alles, was Du nicht explizit vorher gelistet im Switch hast.
Das ist wesentlich Ressourcenschonender und pflegeleichter als lauter einzelne Nodes über viele Flows verteilt.
Der MQTT Node bekommt nur dann etwas, wenn sich etwas (durch ein publish der openWB) im Broker ändert.
Da alle Topics in der openWB das retain Flag gesetzt haben, bekommt er tatsächlich beim *ersten* Start *alle* Topics genau einmal.
Aber Du packst eben nur die Topics in den switch-Node, welche du im Flow brauchst.
Alle anderen werden dann zwar auch mal im Strom dabei sein, aber werden sofort ausgefiltert.
Du kannst auch ein Switch-Element "anderfalls" ans Ende bauen..dort landet dann alles, was Du nicht explizit vorher gelistet im Switch hast.
Das ist wesentlich Ressourcenschonender und pflegeleichter als lauter einzelne Nodes über viele Flows verteilt.