AMTRON Überschussladen mit Fronius Wechselrichter
Vorbereitung
Dieser Flow benötigt die Nodes node-red-contrib-amtron-wallbox und node-red-dashboard.
Bevor der Flow in Betrieb genommen werden kann, müssen die IP-Adressen der AMTRON Wallbox (in den AMTRON in und AMTRON out Nodes) und des Fronius Wechselrichters (Node "Fronius API") an das lokale Netzwerk angepasst werden.
Damit der Flow funktionieren kann, muss der AMTRON im Modus "App Steuerung" arbeiten und der Maximalstrom im Abschnitt "User Settings" der Konfigurationsoberfläche der Wallbox eingestellt sein.
In den "Installation Settings" muss die Option "Modbus TCP Server" aktiviert sein und auf dem AMTRON sollte die aktuelle Softwareversion (mind. 1.13) installiert sein.
Sofern ein AMTRON mit dreiphasigem Anschluss angesteuert wird, dieser aber nur einphasig an die Stromversorgung angeschlossen ist, muss in den "Installation Settings" das Häkchen bei der Option "Monitoring Relay Wired to 1 Phase Only" gesetzt sein.
Funktionsweise
Zuerst werden vom Fronius Wechselrichter die aktuellen Daten zur vorhandenen Einspeise-/Überschussleistung abgerufen.
Abhängig von der Anzahl der Phasen, über die der AMTRON das Elektroauto laden kann, wird ein Maximalstrom berechnet, mit dem das Auto je Phase geladen werden darf.
Falls nicht mind. 50% der technisch nötigen Mindest-Ladeleistung (6 A * Phasen * 230 V) über die Photovoltaikanlage gedeckt werden können, wird die Ladung pausiert.
Um den gesetzten Maximalstrom im Flow anzeigen zu können, wird dieser kurz nach der Übermittlung an die Ladestation ausgelesen und in einer Debug-Node angezeigt.
Das Intervall, in dem der Flow ausgeführt wird, liegt aktuell bei 5 Minuten und kann in der "Start" Node angepasst werden.
[{"id":"39a54416.fd7a44","type":"tab","label":"Overflow Charging","disabled":false,"info":""},{"id":"f0e83287.54e0f8","type":"amtron-in","z":"39a54416.fd7a44","name":"AMTRON in","ip":"192.168.1.100","register":"IR_0x030F_UINT32","x":250,"y":360,"wires":[["bde18d34.6c65a"]]},{"id":"7eda6cbb.0afc2c","type":"debug","z":"39a54416.fd7a44","name":"Aktuelle Ladeleistung","active":true,"tosidebar":false,"console":false,"tostatus":true,"complete":"amtronCurrentPower","targetType":"msg","statusVal":"amtronCurrentPower","statusType":"auto","x":640,"y":300,"wires":[]},{"id":"2c054670.3457f2","type":"debug","z":"39a54416.fd7a44","name":"Einspeisung [W]","active":true,"tosidebar":false,"console":false,"tostatus":true,"complete":"feedInPower","targetType":"msg","statusVal":"feedInPower","statusType":"auto","x":620,"y":140,"wires":[]},{"id":"15568458.3b6394","type":"http request","z":"39a54416.fd7a44","name":"Fronius API","method":"GET","ret":"obj","paytoqs":false,"url":"http://192.168.1.101/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System","tls":"","persist":false,"proxy":"","authType":"","x":250,"y":200,"wires":[["1614e46f.4776a4"]]},{"id":"7a7797.edda8868","type":"amtron-in","z":"39a54416.fd7a44","name":"AMTRON in","ip":"192.168.1.100","register":"HR_0x0400_UINT16","x":950,"y":560,"wires":[["a90d616c.975f68"]]},{"id":"a90d616c.975f68","type":"debug","z":"39a54416.fd7a44","name":"Max. Strom je Phase [A]","active":true,"tosidebar":false,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1150,"y":560,"wires":[]},{"id":"1c0e98b3.8cae4f","type":"amtron-in","z":"39a54416.fd7a44","name":"AMTRON in","ip":"192.168.1.100","register":"IR_0x0308_UINT16","x":610,"y":360,"wires":[["64b15bfc.240bd4"]]},{"id":"c00c88d6.fcc0c8","type":"debug","z":"39a54416.fd7a44","name":"Phasenzahl","active":true,"tosidebar":false,"console":false,"tostatus":true,"complete":"amtronPhases","targetType":"msg","x":970,"y":300,"wires":[]},{"id":"1614e46f.4776a4","type":"function","z":"39a54416.fd7a44","name":"Puffern","func":"msg.feedInPower = -1 * msg.payload.Body.Data[\"0\"].PowerReal_P_Sum;\nreturn msg;","outputs":1,"noerr":0,"x":400,"y":200,"wires":[["2c054670.3457f2","f0e83287.54e0f8","5f773ddc.ea45a4"]]},{"id":"64b15bfc.240bd4","type":"function","z":"39a54416.fd7a44","name":"Puffern","func":"msg.amtronPhases = msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":760,"y":360,"wires":[["c00c88d6.fcc0c8","728a4182.5cb81"]]},{"id":"2e867209.269cbe","type":"inject","z":"39a54416.fd7a44","name":"Start","repeat":"300","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":90,"y":200,"wires":[["15568458.3b6394"]]},{"id":"728a4182.5cb81","type":"function","z":"39a54416.fd7a44","name":"Max. Strom je Phase berechnen","func":"// Der Wer in msg.paylod ist am Ende der neue Maximalstrom in Ampere.\n\nconst minCurrent = 6; // Ampere; Fahrzeuge benötigen zum Laden mind. 6A.\nconst minPvShare = 0.50; // Min. PV-Anteil am Ladestrom in Prozent.\n\nvar totalPowerBudget = msg.amtronCurrentPower + msg.feedInPower;\nvar totalCurrentBudget = totalPowerBudget / 230 / msg.amtronPhases;\nvar flooredCurrentBudget = Math.floor(totalCurrentBudget);\n\nif (flooredCurrentBudget < minCurrent * minPvShare) {\n msg.payload = 0; // Pausiert den Ladevorgang\n}\nelse if (flooredCurrentBudget < minCurrent) {\n msg.payload = minCurrent;\n}\nelse {\n msg.payload = flooredCurrentBudget;\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":310,"y":520,"wires":[["6af15348.9c22ec","facd5716.18b5a"]]},{"id":"bde18d34.6c65a","type":"function","z":"39a54416.fd7a44","name":"Puffern","func":"msg.amtronCurrentPower = msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":400,"y":360,"wires":[["7eda6cbb.0afc2c","1c0e98b3.8cae4f","f13c20ac.ea1e5"]]},{"id":"6af15348.9c22ec","type":"amtron-out","z":"39a54416.fd7a44","name":"AMTRON out","ip":"192.168.1.100","register":"HR_0x0400_UINT16","x":770,"y":520,"wires":[]},{"id":"facd5716.18b5a","type":"delay","z":"39a54416.fd7a44","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":780,"y":560,"wires":[["7a7797.edda8868"]]},{"id":"5b1e4ba5.7d7554","type":"ui_gauge","z":"39a54416.fd7a44","name":"chargingPower","group":"a2e743e7.6dd06","order":2,"width":0,"height":0,"gtype":"gage","title":"Ladeleistung","label":"kW","format":"{{value}}","min":0,"max":"11","colors":["#ced204","#00d118","#0015b3"],"seg1":"5","seg2":"8","x":740,"y":260,"wires":[]},{"id":"f13c20ac.ea1e5","type":"function","z":"39a54416.fd7a44","name":"kW","func":"msg.payload = msg.amtronCurrentPower / 1000;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":590,"y":260,"wires":[["5b1e4ba5.7d7554"]]},{"id":"73719fe5.f6472","type":"ui_gauge","z":"39a54416.fd7a44","name":"excessEnergy","group":"a2e743e7.6dd06","order":2,"width":0,"height":0,"gtype":"gage","title":"Einspeiseleistung","label":"kW","format":"{{value}}","min":"-15","max":"15","colors":["#d24204","#ced204","#00d118"],"seg1":"-2","seg2":"0","x":740,"y":100,"wires":[]},{"id":"5f773ddc.ea45a4","type":"function","z":"39a54416.fd7a44","name":"kW","func":"msg.payload = Math.round((msg.feedInPower / 1000) * 100) / 100;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":590,"y":100,"wires":[["73719fe5.f6472"]]},{"id":"a2e743e7.6dd06","type":"ui_group","name":"Photovoltaik-Laden","tab":"9601a635.2be4a8","disp":true,"width":"6","collapse":false},{"id":"9601a635.2be4a8","type":"ui_tab","name":"Home","icon":"sun-o","disabled":false,"hidden":false}]