Nun wollen wir das ja in einer Systemvariablen haben und nicht nur im Debug-Oputput. Also nehme ich eine sysvar-Node und verbinde sie mit dem Ausgang der MQTT-in-Node.
- pv-p.jpg
- (70.59 KiB) Noch nie heruntergeladen
In welche Systemvariable der Wert nun geschrieben wird, kann man mit einem Doppelklick auf die Node einstellen. Bei mir ist es "S10 PV-Produktion"
(Ich weiß gerade nicht, warum das Bild nicht inline angezeigt wird.)
Man kann die debug-node auch stummschalten, indem man den grünen Knopf rechts drückt und dann nochmal deployd.
Nun kann es ja sein, dass man die PV-Produktion gerne nicht negativ hat. Dann fügt man einfach eine function-node ein und in die Formel schreibt man dann eine Multiplikation mit -1:
msg.payload = msg.payload * -1;
return msg;
- p-fna.jpg
- (59.44 KiB) Noch nie heruntergeladen
Damit man nicht immer alles abtippen muss, gibt es auch die Möglichkeit, Flows per Copy&Paste zu importieren. Dazu das folgende kopieren und dann im Hamburger-Menü "Import" (über Export) drücken.
Code: Alles auswählen
[{"id":"8fc5fcb5.5a33","type":"mqtt in","z":"aa9fb964.b9ee58","name":"","topic":"openWB/pv/get/power","qos":"2","datatype":"auto","broker":"c4cb83c8.1bd0c","x":160,"y":1560,"wires":[["a3bd2efa.f8a17"]]},{"id":"a3bd2efa.f8a17","type":"function","z":"aa9fb964.b9ee58","name":"","func":"msg.payload = msg.payload * -1;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":390,"y":1560,"wires":[["c4dc297f.d1d1c"]]},{"id":"c4dc297f.d1d1c","type":"ccu-sysvar","z":"aa9fb964.b9ee58","name":"S10 PV-Produktion","ccuConfig":"38263145.35ea0e","topic":"ReGaHSS/${Name}","change":true,"cache":true,"x":620,"y":1560,"wires":[[]]},{"id":"c4cb83c8.1bd0c","type":"mqtt-broker","name":"OpenWB","broker":"wallbox.fritz.box","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":"38263145.35ea0e","type":"ccu-connection","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":false,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048","queueTimeout":"5000","queuePause":"250","contextStore":""}]
Die weiteren Topics lauten:
EVU-Punkt: openWB/counter/0/get/powers
Ladeleistung: openWB/chargepoint/get/power
Hausspeicher: openWB/bat/get/power und openWB/bat/get/soc
Der EVU-Punkt kommt als einzelner Wert je Phase in einem JSON-String so in dieser Form: "[100, -40, 22]". Deshalb den in einer function-node in ein Array wandeln und die drei Werte aufsummieren:
var m = JSON.parse(msg.payload);
msg.payload = m[0] + m[1] + m[2];
return msg;
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion