PV Modul mehr als ein WR
-
- Beiträge: 29
- Registriert: Mi Mai 06, 2020 11:30 am
Re: PV Modul mehr als ein WR
Hallo zusammen,
das N.-PV-Modul beschäftigt mich auch gerade, weil bei einem Freund mehrere Ausrichtungen über Modulwechselrichter und insgesamt (aktuell) 4 Sonoff POW laufen. Diese wiederum sollen dann auf Tasmota laufen. Somit kann man ja bis zu 2 über JSON in die 2 PV-Module eintragen.
Es sind aber 4...
Wir haben folgende Idee: Abseits der openWB mittels Node-Red alle Sonoff auslesen und saldieren. Das ginge sogar ohne Tasmota über mqtt. Die saldierten Werte dann ebenfalls über Node-Red mittels "http response" zur Abfrage durch openWB als JSON-Objekt zur Vefügung stellen.
Kann das mal grundsätzlich jemand einschätzen? Ich sehe nicht viel, was im Weg sein könnte, lediglich bei der Bereitstellung des JSON-Objektes bin ich unsicher, weil noch nie gemacht.
Wird natürlich alles hier geteilt, ist ja Ehrensache...
Das Auslesen der Sonoff's ist einfach, dazu später mehr. Genauso lassen sich bspw. beliebig viele Froniusse summieren oder eben alle WR, die über Node-Red (also MQTT, HTTP) auszulesen wären.
Bereitstellung JSON-String für Request durch openWB:
Müsste helfen: https://cookbook.nodered.org/http/serve-json-content
Gruß
Sascha
das N.-PV-Modul beschäftigt mich auch gerade, weil bei einem Freund mehrere Ausrichtungen über Modulwechselrichter und insgesamt (aktuell) 4 Sonoff POW laufen. Diese wiederum sollen dann auf Tasmota laufen. Somit kann man ja bis zu 2 über JSON in die 2 PV-Module eintragen.
Es sind aber 4...
Wir haben folgende Idee: Abseits der openWB mittels Node-Red alle Sonoff auslesen und saldieren. Das ginge sogar ohne Tasmota über mqtt. Die saldierten Werte dann ebenfalls über Node-Red mittels "http response" zur Abfrage durch openWB als JSON-Objekt zur Vefügung stellen.
Kann das mal grundsätzlich jemand einschätzen? Ich sehe nicht viel, was im Weg sein könnte, lediglich bei der Bereitstellung des JSON-Objektes bin ich unsicher, weil noch nie gemacht.
Wird natürlich alles hier geteilt, ist ja Ehrensache...
Das Auslesen der Sonoff's ist einfach, dazu später mehr. Genauso lassen sich bspw. beliebig viele Froniusse summieren oder eben alle WR, die über Node-Red (also MQTT, HTTP) auszulesen wären.
Bereitstellung JSON-String für Request durch openWB:
Müsste helfen: https://cookbook.nodered.org/http/serve-json-content
Gruß
Sascha
-
- Beiträge: 29
- Registriert: Mi Mai 06, 2020 11:30 am
Re: PV Modul mehr als ein WR
Ist erledigt. Anbei der Flow für Node-Red. Logik und Skalierung müsste beim Betrachten der Flows klar werden.
Völlig bescheuert habe ich noch die Summierung der Einzelwerte gelöst, aber dafür sind die Werte im Array mit der Herkunft als Schüsselwort gekennzeichnet. Dadurch fängt man auch Timing Fehler ab und es werden sicher immer alle Werte von 1 bis n addiert. So oft ändert sich die PV-Anlage ja nicht.
Node-Red ist ja standardmäßig auf dem raspi dabei, man muss nur noch dafür sorgen, dass es immer mit startet:
sudo systemctl enable nodered.service
Froniusse sind schonmal inkludiert. Bei mir läuft das sauber, ich bitte um Verbesserungsvorschläge/Korrekturen/konstruktive Kritik. Ich behaupte nicht, ich könne programmieren, aber genau dafür war Node-Red ja gedacht
Der Flow unten ist stets aktuell soweit es meine Arbeit angeht....Einstellungen openWB siehe Bild
NATÜRLICH MUSS JEDER SEINE IP-ADRESSEN und sonstigen Pfade und Adressen pflegen... ACHTUNG!!! Ich habe da wohl die Tagesenergien aggregiert, aber es müssen die TOTALEN-Energien aggregiert werden, Flow am 19.05.2021 geupdated!
Völlig bescheuert habe ich noch die Summierung der Einzelwerte gelöst, aber dafür sind die Werte im Array mit der Herkunft als Schüsselwort gekennzeichnet. Dadurch fängt man auch Timing Fehler ab und es werden sicher immer alle Werte von 1 bis n addiert. So oft ändert sich die PV-Anlage ja nicht.
Node-Red ist ja standardmäßig auf dem raspi dabei, man muss nur noch dafür sorgen, dass es immer mit startet:
sudo systemctl enable nodered.service
Froniusse sind schonmal inkludiert. Bei mir läuft das sauber, ich bitte um Verbesserungsvorschläge/Korrekturen/konstruktive Kritik. Ich behaupte nicht, ich könne programmieren, aber genau dafür war Node-Red ja gedacht
Der Flow unten ist stets aktuell soweit es meine Arbeit angeht....Einstellungen openWB siehe Bild
NATÜRLICH MUSS JEDER SEINE IP-ADRESSEN und sonstigen Pfade und Adressen pflegen... ACHTUNG!!! Ich habe da wohl die Tagesenergien aggregiert, aber es müssen die TOTALEN-Energien aggregiert werden, Flow am 19.05.2021 geupdated!
- Dateianhänge
-
- tasmota ls n-te PV.txt
- (6.23 KiB) 168-mal heruntergeladen
Zuletzt geändert von doppeldecker1678 am Mi Mai 19, 2021 11:00 am, insgesamt 10-mal geändert.
Re: PV Modul mehr als ein WR
Ich sammle die PV Echtzeitdaten meiner PV Anlagen mit Nodered, fasse sie zusammen und sende sie per MQTT zur Openwb. Klappt super und Openwb "sieht" nur eine PV Anlage angebunden per MQTT.
Re: PV Modul mehr als ein WR
Hallo und danke für die Anregungen,
ich versuche mich gerade daran meinen 2. WR (Kostal Piko alt) per Node-Red auszulesen und die Werte an die opwnWB weiterzuleiten. Habe mir dazu so einiges zusammengesucht und bekomme auch Daten in Node-Red.
Was mir nicht gelingt ist es diese an die openWB weiterzugeben, hat jemand eine Idee?
Diese Daten erhalte ich über parse http
Beste Grüße!
ich versuche mich gerade daran meinen 2. WR (Kostal Piko alt) per Node-Red auszulesen und die Werte an die opwnWB weiterzuleiten. Habe mir dazu so einiges zusammengesucht und bekomme auch Daten in Node-Red.
Was mir nicht gelingt ist es diese an die openWB weiterzugeben, hat jemand eine Idee?
Diese Daten erhalte ich über parse http
msg.payload : string[246]
"{"acPowerCurrent":0,"totalEnergy":44446,"dailyEnergy":0.95,"status":"Aus","string1voltage":0,"string1current":0,"string2voltage":0,"string2current":0,"line1voltage":0,"line1power":0,"line2voltage":0,"line2power":0,"line3voltage":0,"line3power":0}"
Beste Grüße!
- Dateianhänge
-
- flow piko.txt
- (4.11 KiB) 174-mal heruntergeladen
-
- Beiträge: 29
- Registriert: Mi Mai 06, 2020 11:30 am
Re: PV Modul mehr als ein WR
Moin,
habe mir deinen flow angesehen... sieht eigentlich gut aus. Was liefert der Debugger am JSON-Konverter? Ich denke, was Du gepostet hast, ist der String, oder?
habe mir deinen flow angesehen... sieht eigentlich gut aus. Was liefert der Debugger am JSON-Konverter? Ich denke, was Du gepostet hast, ist der String, oder?
Re: PV Modul mehr als ein WR
Hallo und danke fürs Feedback,
genau es kommen aber sowohl string als auch object Daten. Anbei die Debug Ausgabe am JSON Konverter
Ich bin mir tatsächlich unsicher ob die openWB die Daten mit meiner config an der openWB so auslesen kann. Muss ich die entsprechende URL (http://192.168.178.37:1880/piko) erst erstellen oder generiert die sich automatisch durch nodeRed?
genau es kommen aber sowohl string als auch object Daten. Anbei die Debug Ausgabe am JSON Konverter
Zusätzlich bekomme ich noch eine Debug Meldung:28/01/2021, 12:52:19node: 631e7f66.99167
msg.payload : Object
{ acPowerCurrent: 153, totalEnergy: 44446, dailyEnergy: 0.33, status: "Einspeisen(MPP)", string1voltage: 348 … }
28/01/2021, 12:52:20node: 631e7f66.99167
msg.payload : string[277]
"{"acPowerCurrent":153,"totalEnergy":44446,"dailyEnergy":0.33,"status":"Einspeisen(MPP)","string1voltage":348,"string1current":0.2,"string2voltage":536,"string2current":0.21,"line1voltage":232,"line1power":0,"line2voltage":231,"line2power":0,"line3voltage":231,"line3power":153}"
diese bezieht sich wohl auf den http request node, muss dieser konfiguriert werden?28/01/2021, 13:00:23node: openwb
msg : string[18]
"No response object"
Ich bin mir tatsächlich unsicher ob die openWB die Daten mit meiner config an der openWB so auslesen kann. Muss ich die entsprechende URL (http://192.168.178.37:1880/piko) erst erstellen oder generiert die sich automatisch durch nodeRed?
Re: PV Modul mehr als ein WR
Update 2:
Natürlich gehört in die config des ersten WR kein 2. WR rein, es sieht jetzt tatsächlich danach aus als liefe es.
anbei noch einmal der aktuelle Flow für Interessierte:
Update:
Es kommen nun Daten an, aber in der openWB Web Darstellung werden sie nicht mit dem 1. WR aufsummiert, übersehe ich etwas?
Anbei ein Screenshot, ab 12.57 habe ich den 2. WR mit JSON Abfrage hinzugefügt, seitdem stimmt die Leistung des 2. WR überein (153W) der Tagesertrag stammt wiederrum vom 1. WR (Plenticore) und die dort angeschlossene Batterie wird ebenfalls nicht mehr ausgelesen.
Natürlich gehört in die config des ersten WR kein 2. WR rein, es sieht jetzt tatsächlich danach aus als liefe es.
anbei noch einmal der aktuelle Flow für Interessierte:
Code: Alles auswählen
[{"id":"fbdcd5ed.f2fab8","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"a9031dbf.3e3aa","type":"function","z":"fbdcd5ed.f2fab8","name":"parse http","func":"acPowerCurrent = parseInt(msg.payload[14].replace(/([^a-z0-9]+)/gi, ''));\ntotalEnergy = parseInt(msg.payload[17].replace(/([^A-Z0-9]+)/gi, ''));\ndailyEnergy = parseInt(msg.payload[26].replace(/([^a-z0-9]+)/gi, ''))/100;\nstring1voltage = parseInt(msg.payload[56].replace(/([^a-z0-9]+)/gi, ''));\nstring1current = parseInt(msg.payload[65].replace(/([^a-z0-9]+)/gi, ''))/100;\nstring2voltage = parseInt(msg.payload[82].replace(/([^a-z0-9]+)/gi, ''));\nstring2current = parseInt(msg.payload[91].replace(/([^a-z0-9]+)/gi, ''))/100;\nline1voltage = parseInt(msg.payload[59].replace(/([^a-z0-9]+)/gi, ''));\nline1power = parseInt(msg.payload[68].replace(/([^a-z0-9]+)/gi, ''));\nline2voltage = parseInt(msg.payload[85].replace(/([^a-z0-9]+)/gi, ''));\nline2power = parseInt(msg.payload[94].replace(/([^a-z0-9]+)/gi, ''));\nline3voltage = parseInt(msg.payload[111].replace(/([^a-z0-9]+)/gi, ''));\nline3power = parseInt(msg.payload[120].replace(/([^a-z0-9]+)/gi, ''));\nstatus = msg.payload[32].replace(/\\r?\\n|\\r/g, '').replace(/\\s/g, \"\");\n\n\nif (Number.isNaN(acPowerCurrent) === true){\n acPowerCurrent = 0;\n}\nif (Number.isNaN(totalEnergy) === true){\n totalEnergy = -1;\n}\nif (Number.isNaN(dailyEnergy) === true){\n dailyEnergy = 0;\n}\nif (Number.isNaN(string1voltage) === true){\n string1voltage = 0;\n}\nif (Number.isNaN(string1current) === true){\n string1current = 0;\n}\nif (Number.isNaN(string2voltage) === true){\n string2voltage = 0;\n}\nif (Number.isNaN(string2current) === true){\n string2current = 0;\n}\nif (Number.isNaN(line1voltage) === true){\n line1voltage = 0;\n}\nif (Number.isNaN(line1power) === true){\n line1power = 0;\n}\nif (Number.isNaN(line2voltage) === true){\n line2voltage = 0;\n}\nif (Number.isNaN(line2power) === true){\n line2power = 0;\n}\nif (Number.isNaN(line3voltage) === true){\n line3voltage = 0;\n}\nif (Number.isNaN(line3power) === true){\n line3power = 0;\n}\n\nmsg.payload = {\n \"acPowerCurrent\" : acPowerCurrent,\n \"totalEnergy\" : totalEnergy,\n \"dailyEnergy\" : dailyEnergy,\n \"status\" : status,\n \"string1voltage\" : string1voltage,\n \"string1current\" : string1current,\n \"string2voltage\" : string2voltage,\n \"string2current\" : string2current,\n \"line1voltage\" : line1voltage,\n \"line1power\" : line1power,\n \"line2voltage\" : line2voltage,\n \"line2power\" : line2power,\n \"line3voltage\" : line3voltage,\n \"line3power\" : line3power\n}\n\nglobal.set(\"kostal\", msg.payload);\nreturn msg;","outputs":1,"noerr":0,"x":1150,"y":140,"wires":[["6c8eca8c.3914e4"]]},{"id":"a9c16f25.f6396","type":"http request","z":"fbdcd5ed.f2fab8","name":"kostal","method":"GET","ret":"txt","paytoqs":false,"url":"http://192.168.178.81/index.fhtml","tls":"","persist":false,"proxy":"","authType":"basic","x":790,"y":140,"wires":[["598908b3.3d6bb8"]]},{"id":"598908b3.3d6bb8","type":"html","z":"fbdcd5ed.f2fab8","name":"","property":"payload","outproperty":"payload","tag":"td","ret":"text","as":"single","x":950,"y":140,"wires":[["a9031dbf.3e3aa"]]},{"id":"828a50e6.02143","type":"inject","z":"fbdcd5ed.f2fab8","name":"5 sec","topic":"","payload":"","payloadType":"date","repeat":"5","crontab":"","once":false,"onceDelay":0.1,"x":580,"y":120,"wires":[["a9c16f25.f6396"]]},{"id":"631e7f66.99167","type":"debug","z":"fbdcd5ed.f2fab8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1600,"y":360,"wires":[]},{"id":"6c8eca8c.3914e4","type":"json","z":"fbdcd5ed.f2fab8","name":"","property":"payload","action":"","pretty":false,"x":1430,"y":220,"wires":[["631e7f66.99167"]]},{"id":"edf7d527.a93928","type":"http in","z":"fbdcd5ed.f2fab8","name":"","url":"/piko","method":"get","upload":false,"swaggerDoc":"","x":570,"y":180,"wires":[["a9c16f25.f6396"]]}]
Update:
Es kommen nun Daten an, aber in der openWB Web Darstellung werden sie nicht mit dem 1. WR aufsummiert, übersehe ich etwas?
Anbei ein Screenshot, ab 12.57 habe ich den 2. WR mit JSON Abfrage hinzugefügt, seitdem stimmt die Leistung des 2. WR überein (153W) der Tagesertrag stammt wiederrum vom 1. WR (Plenticore) und die dort angeschlossene Batterie wird ebenfalls nicht mehr ausgelesen.
-
- Beiträge: 29
- Registriert: Mi Mai 06, 2020 11:30 am
Re: PV Modul mehr als ein WR
Es scheint nun, als ob du den Piko zweimal abfragst, im 1. und 2. P-Modul.
Lass mal im ersten PV-Modul die xxx.xxx.xxx.37 komplett raus.
Lass mal im ersten PV-Modul die xxx.xxx.xxx.37 komplett raus.
Re: PV Modul mehr als ein WR
Habe ich gemacht und es läuft tatsächlich jetzt, vielen Dank Doppeldecker!
Nächste Kuriosität, ich habe dauerhaft 153W zu viel und bin mal wieder auf der Suche ...
Open WB log sagt folgendes:
Nächste Kuriosität, ich habe dauerhaft 153W zu viel und bin mal wieder auf der Suche ...
Open WB log sagt folgendes:
In Node Red wird korrekterweise 0W angezeigtloadvars.sh: Zeile 1116: ((: == 1 : Syntax Fehler: Operator erwartet. (Fehlerverursachendes Zeichen ist \"== 1 \").
pv1watt 0 pv2watt -153 pvwatt -153 ladeleistung 0 llalt 16 nachtladen 1 nachtladen 0 minimalA 6 maximalA 16
[...]
modules/wr2_json/main.sh: Zeile 6: ((: > 5 : Syntax Fehler: Operator erwartet. (Fehlerverursachendes Zeichen ist \"> 5 \").
"{"acPowerCurrent":0,"totalEnergy":44447,"dailyEnergy":1.45,"status":"Aus","string1voltage":0,"string1current":0,"string2voltage":0,"string2current":0,"line1voltage":0,"line1power":0,"line2voltage":0,"line2power":0,"line3voltage":0,"line3power":0}"
-
- Beiträge: 29
- Registriert: Mi Mai 06, 2020 11:30 am
Re: PV Modul mehr als ein WR
beim openWB-Log bin ich raus, aber die Ursache scheint beim WR1 zu liegen, nicht beim piko via Node-Red. Warte mal ab, was morgen passiert, war ja schon duster als du das in den Griff bekommen hast.
Aber für den Log da gibt es ja absolute Experten hier.
Gruß
Sascha
Aber für den Log da gibt es ja absolute Experten hier.
Gruß
Sascha