Alfen Eve Pro EV chargepoint interface via TCP modbus

@hollie Interesting. The Audi E-tron simply resumes when the charger is set to more than 5A.

1 Like

FYI: no matter what I try as setting from the chargepoint I donā€™t succeed in suspending the charge process of the Volvo.

Every time the charge current is set to a value below 6A the car goes into failure mode after Ā±2ā€¦3 hours.

I tried the settings ā€˜0Aā€™, ā€˜5Aā€™, ā€˜5A with going to 6A for a short time every hourā€™ but nothing worked out.

So I took the other route: I now suspend the charging from the car side using the ā€˜charge location settingsā€™ API from Volvo. This works as expected.

I am currently busy experimenting with my Alfen charger. However, I now have a problem. The connection keeps dropping. So every 5 to 10 minutes the communication stops for 1 to 2 minutes. Then it just continues again. Has anyone encountered this problem and how did you solve it?

Hey Luuk,

are you sure that you communicate via TCP/IP modbus more frequently that the timeout you can set in the configuration software of the chargepoint?

And do you only have a single TCP/IP connection going to the chargepoint. As far s I know only a sinlge connection is allowed.

Those two things can have an impact on the stability of the connection.

Best regards,
Lieven.

I solved the problem with the connection dropping out. It had to do with an experiment I did first to set up OCPP. Somehow the loader kept trying to connect to the OCPP server, despite the fact that I had cleared this info in the loader.

That said, donā€™t use the MyEve app for now. I have used it a few times, but it is an app that is not at all ready to use. I used the app because I have an Apple laptop and the ACE service installer only works on a Windows PC. Using the MyEve app has cost me a lot of time! With the ACE service installer, I was able to delete the wrong server information.

Everything works great now and I am load balancing using Home Assistant and Node Red! Thanks again Lieven for sharing this info.

Kind regards,

Luuk

2 Likes

Would you please be so kind to share your Node-Red setup? Iā€™m still struggling with Home Assistant changing the binary values to numeric values and thus the load balancing doesnā€™t work through Home Assistant and I can only read the values from the charger (halfway there haha :wink: )

Since Iā€™m running Node-Red anyway that would be really helpful as a start.

Hi Emacee,

I am happy to share my flow. Be aware that I calculate over 3 phases, so the flow may look overwelming at first glance. At the very end, I format the desired current to a format that the charger can understand.

I have added some comments. I hope those help a little.

Furthermore, I have now set it up that when using maximum solar, I send 100% of the Solar power that is left to the charger. I am looking at the phase with the highest solar current. On other phases it can be that I import power from the grid during solar operation.

[{"id":"69a0004e801bbfa1","type":"server-state-changed","z":"d694d7c5192629c6","name":"Solar Power","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.grid_power","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":190,"y":620,"wires":[["79b1e446e6bf3b5f"]]},{"id":"79b1e446e6bf3b5f","type":"calculator","z":"d694d7c5192629c6","name":"P to A per phase","inputMsgField":"payload","outputMsgField":"payload","operation":"div","constant":"690","round":true,"decimals":"1","x":410,"y":620,"wires":[["a03101fae47e14d9","104491e511772850","3e1e5840714f1b39"]]},{"id":"325b7dd1e136d9a9","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current consumption L1","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.current_consumption_phase_l1","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":150,"y":60,"wires":[["e03e6692a2d64cbe","29ea7464100f0a28","1baf576ebced4572","53760b2579a34756"]]},{"id":"2b1fe501d8250658","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current consumption L2","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.current_consumption_phase_l2","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":150,"y":240,"wires":[["433772b0563ed50b","1e83a795a9badbee","67a95ffd7fa650a1","3be9834ddcd41efc"]]},{"id":"c5ae3a904bb71e6d","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current consumption L3","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.current_consumption_phase_l3","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":150,"y":440,"wires":[["eb862c6e4598f95b","bee061367d54fdaf","1662a1354c4cbfdb","ffcda845a606032f"]]},{"id":"433772b0563ed50b","type":"api-current-state","z":"d694d7c5192629c6","name":"Current consumption L2","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.current_consumption_phase_l2","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":430,"y":240,"wires":[["fa9571753e3b504f"]]},{"id":"eb862c6e4598f95b","type":"api-current-state","z":"d694d7c5192629c6","name":"Current consumption L3","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.current_consumption_phase_l3","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":430,"y":440,"wires":[["fc3e6e3ef8ebaa51"]]},{"id":"e03e6692a2d64cbe","type":"api-current-state","z":"d694d7c5192629c6","name":"Current consumption L1","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.current_consumption_phase_l1","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":430,"y":60,"wires":[["d1d9cd5b7d2f3d2e"]]},{"id":"c7eeabb400dcc02a","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current production L3","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.current_production_phase_l3","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":160,"y":480,"wires":[["eb862c6e4598f95b","bee061367d54fdaf","1662a1354c4cbfdb","ffcda845a606032f"]]},{"id":"1662a1354c4cbfdb","type":"api-current-state","z":"d694d7c5192629c6","name":"Current production L3","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.current_production_phase_l3","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":430,"y":520,"wires":[["a4dbc58f6e0f5b04"]]},{"id":"67a95ffd7fa650a1","type":"api-current-state","z":"d694d7c5192629c6","name":"Current production  L2","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.current_production_phase_l2","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":430,"y":320,"wires":[["8566410b3640d18e"]]},{"id":"29ea7464100f0a28","type":"api-current-state","z":"d694d7c5192629c6","name":"Current production L1","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.current_production_phase_l1","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":430,"y":140,"wires":[["c50ccf05e074a382"]]},{"id":"ffcda845a606032f","type":"api-current-state","z":"d694d7c5192629c6","name":"Current EVcharger L3","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.evcharger_current_phase_l3","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":420,"y":560,"wires":[["f6a34a54b47895be"]]},{"id":"3be9834ddcd41efc","type":"api-current-state","z":"d694d7c5192629c6","name":"Current EVcharger  L2","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.evcharger_current_phase_l2","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":420,"y":360,"wires":[["15c5421b8e9b0361"]]},{"id":"53760b2579a34756","type":"api-current-state","z":"d694d7c5192629c6","name":"Current EVcharger L1","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.evcharger_current_phase_l1","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":420,"y":180,"wires":[["913dc42bf8ccecc7"]]},{"id":"1baf576ebced4572","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Solar L1","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.solar_l1","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":410,"y":100,"wires":[["d1d9cd5b7d2f3d2e"]]},{"id":"c50ccf05e074a382","type":"calculator","z":"d694d7c5192629c6","name":"Multiply -1","inputMsgField":"payload","outputMsgField":"payload","operation":"mult","constant":"-1","round":false,"decimals":0,"x":650,"y":140,"wires":[["d1d9cd5b7d2f3d2e"]]},{"id":"913dc42bf8ccecc7","type":"calculator","z":"d694d7c5192629c6","name":"Multiply -1","inputMsgField":"payload","outputMsgField":"payload","operation":"mult","constant":"-1","round":false,"decimals":0,"x":650,"y":180,"wires":[["d1d9cd5b7d2f3d2e"]]},{"id":"d1d9cd5b7d2f3d2e","type":"join","z":"d694d7c5192629c6","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"4","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":850,"y":60,"wires":[["1f1a95733ee63785"]]},{"id":"1f1a95733ee63785","type":"calculator","z":"d694d7c5192629c6","name":"","inputMsgField":"payload","outputMsgField":"payload","operation":"sum","constant":"","round":true,"decimals":"1","x":990,"y":60,"wires":[["f35b1bc0e46c9206"]]},{"id":"f35b1bc0e46c9206","type":"api-call-service","z":"d694d7c5192629c6","name":"Set current Home L1","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.home_l1"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1200,"y":60,"wires":[[]]},{"id":"3e17a45a6637c7c7","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current production L1","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.current_production_phase_l1","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":160,"y":100,"wires":[["e03e6692a2d64cbe","1baf576ebced4572","29ea7464100f0a28","53760b2579a34756"]]},{"id":"54d3e54c724e4408","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current production L2","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.current_production_phase_l2","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":160,"y":280,"wires":[["1e83a795a9badbee","433772b0563ed50b","67a95ffd7fa650a1","3be9834ddcd41efc"]]},{"id":"1e83a795a9badbee","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Solar L2","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.solar_l2","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":410,"y":280,"wires":[["fa9571753e3b504f"]]},{"id":"8566410b3640d18e","type":"calculator","z":"d694d7c5192629c6","name":"Multiply -1","inputMsgField":"payload","outputMsgField":"payload","operation":"mult","constant":"-1","round":false,"decimals":0,"x":650,"y":320,"wires":[["fa9571753e3b504f"]]},{"id":"15c5421b8e9b0361","type":"calculator","z":"d694d7c5192629c6","name":"Multiply -1","inputMsgField":"payload","outputMsgField":"payload","operation":"mult","constant":"-1","round":false,"decimals":0,"x":650,"y":360,"wires":[["fa9571753e3b504f"]]},{"id":"fa9571753e3b504f","type":"join","z":"d694d7c5192629c6","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"4","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":850,"y":240,"wires":[["d674aa7bbe1db3af"]]},{"id":"d674aa7bbe1db3af","type":"calculator","z":"d694d7c5192629c6","name":"","inputMsgField":"payload","outputMsgField":"payload","operation":"sum","constant":"","round":true,"decimals":"1","x":990,"y":240,"wires":[["a03d7372ba9f0fed"]]},{"id":"a03d7372ba9f0fed","type":"api-call-service","z":"d694d7c5192629c6","name":"Set current Home L2","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.home_l2"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1200,"y":240,"wires":[[]]},{"id":"bee061367d54fdaf","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Solar L3","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.solar_l3","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":410,"y":480,"wires":[["fc3e6e3ef8ebaa51"]]},{"id":"a4dbc58f6e0f5b04","type":"calculator","z":"d694d7c5192629c6","name":"Multiply -1","inputMsgField":"payload","outputMsgField":"payload","operation":"mult","constant":"-1","round":false,"decimals":0,"x":650,"y":520,"wires":[["fc3e6e3ef8ebaa51"]]},{"id":"f6a34a54b47895be","type":"calculator","z":"d694d7c5192629c6","name":"Multiply -1","inputMsgField":"payload","outputMsgField":"payload","operation":"mult","constant":"-1","round":false,"decimals":0,"x":650,"y":560,"wires":[["fc3e6e3ef8ebaa51"]]},{"id":"fc3e6e3ef8ebaa51","type":"join","z":"d694d7c5192629c6","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"4","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":850,"y":440,"wires":[["5e016d9aa238a0f2"]]},{"id":"5e016d9aa238a0f2","type":"calculator","z":"d694d7c5192629c6","name":"","inputMsgField":"payload","outputMsgField":"payload","operation":"sum","constant":"","round":true,"decimals":"1","x":990,"y":440,"wires":[["924061b33ddd5bc5"]]},{"id":"924061b33ddd5bc5","type":"api-call-service","z":"d694d7c5192629c6","name":"Set current Home L3","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.home_l3"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1200,"y":440,"wires":[[]]},{"id":"2eb9243cfd0e7e9c","type":"comment","z":"d694d7c5192629c6","name":"Calc Home usage per phase","info":"Calculate the current per phase going to my home.\n\nHome = Consumption - Production + Solar - EVcharger\n\n","x":160,"y":20,"wires":[]},{"id":"23facd40947008da","type":"comment","z":"d694d7c5192629c6","name":"Calc Solar production per phase","info":"Since my solar inverter does not give current per phase I calculate this current based on Solar Production Power.\n\nCurrent Solar per Phase = Total Solar Power / (230 * 3)\n\n230 is Voltage\n3 is number of phases","x":160,"y":580,"wires":[]},{"id":"104491e511772850","type":"api-call-service","z":"d694d7c5192629c6","name":"Set current Solar L2","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.solar_l2"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":680,"y":680,"wires":[[]]},{"id":"a03101fae47e14d9","type":"api-call-service","z":"d694d7c5192629c6","name":"Set current Solar L1","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.solar_l1"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":680,"y":620,"wires":[[]]},{"id":"3e1e5840714f1b39","type":"api-call-service","z":"d694d7c5192629c6","name":"Set current Solar L3","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.solar_l3"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":680,"y":740,"wires":[[]]},{"id":"3f53ed1d.fd3d32","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]

Hope this helps you get started and sorry for Dutch words in the flow every now and then!

Kind regards,

Luuk

Hi Emacee,

Had to split the Flow because to many characters for this board! :woozy_face:
Part 2:

[{"id":"3c13d01ff8be9885","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current Home L1","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.home_l1","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":150,"y":820,"wires":[["1a867d8de5b1518f","e83261528fb90728"]]},{"id":"5ba972785779c0bc","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current Home L2","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.home_l2","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":150,"y":940,"wires":[["6702b2e6143d4392","5a599ead035e6e3c"]]},{"id":"1c56793fe12e9841","type":"join","z":"d694d7c5192629c6","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":830,"y":820,"wires":[["a289e8ccc637575e","2e953567c84228cc"]]},{"id":"a289e8ccc637575e","type":"calculator","z":"d694d7c5192629c6","name":"Sum","inputMsgField":"payload","outputMsgField":"payload","operation":"sum","constant":"25","round":true,"decimals":"1","x":970,"y":820,"wires":[["10356485f149018b"]]},{"id":"1a867d8de5b1518f","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Solar L1","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.solar_l1","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":410,"y":880,"wires":[["1c56793fe12e9841"]]},{"id":"31d71bc35e032da0","type":"calculator","z":"d694d7c5192629c6","name":"Multiply -1","inputMsgField":"payload","outputMsgField":"payload","operation":"mult","constant":"-1","round":false,"decimals":0,"x":590,"y":820,"wires":[["1c56793fe12e9841"]]},{"id":"e83261528fb90728","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Home L1","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.home_l1","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":410,"y":820,"wires":[["31d71bc35e032da0"]]},{"id":"10356485f149018b","type":"api-call-service","z":"d694d7c5192629c6","name":"Set current Alfen Max L1","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.alfen_max_l1"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1190,"y":820,"wires":[[]]},{"id":"14ef868561fc481c","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current Solar L1","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.solar_l1","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":160,"y":880,"wires":[["e83261528fb90728","1a867d8de5b1518f"]]},{"id":"fb0c0fab9121d6ca","type":"join","z":"d694d7c5192629c6","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":830,"y":940,"wires":[["3dcc2d9478ad7348","8e994f4d9a24a4f5"]]},{"id":"3dcc2d9478ad7348","type":"calculator","z":"d694d7c5192629c6","name":"Sum","inputMsgField":"payload","outputMsgField":"payload","operation":"sum","constant":"25","round":true,"decimals":"1","x":970,"y":940,"wires":[["768be43d18e1422b"]]},{"id":"5a599ead035e6e3c","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Solar L2","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.solar_l2","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":410,"y":1000,"wires":[["fb0c0fab9121d6ca"]]},{"id":"bf28d9a0a9d7aa14","type":"calculator","z":"d694d7c5192629c6","name":"Multiply -1","inputMsgField":"payload","outputMsgField":"payload","operation":"mult","constant":"-1","round":false,"decimals":0,"x":590,"y":940,"wires":[["fb0c0fab9121d6ca"]]},{"id":"6702b2e6143d4392","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Home L2","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.home_l2","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":410,"y":940,"wires":[["bf28d9a0a9d7aa14"]]},{"id":"768be43d18e1422b","type":"api-call-service","z":"d694d7c5192629c6","name":"Set current Alfen Max L2","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.alfen_max_l2"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1190,"y":940,"wires":[[]]},{"id":"d6d4d60cb2b48c7d","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current Solar L2","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.solar_l2","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":160,"y":1000,"wires":[["5a599ead035e6e3c","6702b2e6143d4392"]]},{"id":"cb30db5fa1ea7d3a","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current Home L3","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.home_l3","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":150,"y":1060,"wires":[["6fe58fc46587e592","c336af90b9e80c8a"]]},{"id":"3357781d5e08f3e4","type":"join","z":"d694d7c5192629c6","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":830,"y":1060,"wires":[["e09f5cd3ba6440a6","d66b3f400111f633"]]},{"id":"e09f5cd3ba6440a6","type":"calculator","z":"d694d7c5192629c6","name":"Sum","inputMsgField":"payload","outputMsgField":"payload","operation":"sum","constant":"25","round":true,"decimals":"1","x":970,"y":1060,"wires":[["c0e6a1b422bc0442"]]},{"id":"c336af90b9e80c8a","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Solar L3","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.solar_l3","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":410,"y":1120,"wires":[["3357781d5e08f3e4"]]},{"id":"e002f3c0e91110d6","type":"calculator","z":"d694d7c5192629c6","name":"Multiply -1","inputMsgField":"payload","outputMsgField":"payload","operation":"mult","constant":"-1","round":false,"decimals":0,"x":590,"y":1060,"wires":[["3357781d5e08f3e4"]]},{"id":"6fe58fc46587e592","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Home L3","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.home_l3","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":410,"y":1060,"wires":[["e002f3c0e91110d6"]]},{"id":"c0e6a1b422bc0442","type":"api-call-service","z":"d694d7c5192629c6","name":"Set current Alfen Max L3","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.alfen_max_l3"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1190,"y":1060,"wires":[[]]},{"id":"79bfe08864ac96e3","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current Solar L3","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.solar_l3","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":160,"y":1120,"wires":[["c336af90b9e80c8a","6fe58fc46587e592"]]},{"id":"2e953567c84228cc","type":"calculator","z":"d694d7c5192629c6","name":"Sum","inputMsgField":"payload","outputMsgField":"payload","operation":"sum","constant":"","round":true,"decimals":"1","x":970,"y":880,"wires":[["7094339c7852a1b5"]]},{"id":"7094339c7852a1b5","type":"api-call-service","z":"d694d7c5192629c6","name":"Set current Alfen Solar Max L1","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.alfen_solar_max_l1"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1210,"y":880,"wires":[[]]},{"id":"8e994f4d9a24a4f5","type":"calculator","z":"d694d7c5192629c6","name":"Sum","inputMsgField":"payload","outputMsgField":"payload","operation":"sum","constant":"","round":true,"decimals":"1","x":970,"y":1000,"wires":[["bfb14ea65783da1a"]]},{"id":"bfb14ea65783da1a","type":"api-call-service","z":"d694d7c5192629c6","name":"Set current Alfen Solar Max L2","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.alfen_solar_max_l2"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1210,"y":1000,"wires":[[]]},{"id":"d66b3f400111f633","type":"calculator","z":"d694d7c5192629c6","name":"Sum","inputMsgField":"payload","outputMsgField":"payload","operation":"sum","constant":"","round":true,"decimals":"1","x":970,"y":1120,"wires":[["2f42b75c8c02cd43"]]},{"id":"2f42b75c8c02cd43","type":"api-call-service","z":"d694d7c5192629c6","name":"Set current Alfen Solar Max L3","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.alfen_solar_max_l3"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1210,"y":1120,"wires":[[]]},{"id":"86cc5240e8bf3b72","type":"comment","z":"d694d7c5192629c6","name":"Calc Max current on solar or grid for EVcharger","info":"Calculate the max current the EVcharger van use to charge EV.\n\nMax Solar = Solar - Home\n\nMax Grid = 25 + Solar - Home\n\n\n25A is the max current I can use from the grid.\nSolar is the calculated current for Solar per phase\nHome is the calculated current for use of my Home per phase","x":200,"y":760,"wires":[]},{"id":"3f53ed1d.fd3d32","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]

Kind regards,

Luuk

Part 3

[{"id":"1c53cc31ecce0897","type":"function","z":"d694d7c5192629c6","name":"Calculate Float32","func":"const Float32ToHex = (float32) => {\n    const getHex = i => ('00' + i.toString(16)).slice(-2);\n    var view = new DataView(new ArrayBuffer(4))\n    view.setFloat32(0, float32);\n    return Array.apply(null, { length: 4 }).map((_, i) => getHex(view.getUint8(i))).join('');\n}\n\nlet var1=Float32ToHex(msg.payload);\n\nmsg.payload=var1;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2050,"y":1460,"wires":[["88f38dd8f16777d6"]]},{"id":"88f38dd8f16777d6","type":"split","z":"d694d7c5192629c6","name":"","splt":"4","spltType":"len","arraySplt":"4","arraySpltType":"len","stream":false,"addname":"","x":2010,"y":1520,"wires":[["7b96babc396d1786"]]},{"id":"671f170b37f36d38","type":"join","z":"d694d7c5192629c6","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":2010,"y":1640,"wires":[["08a1d23ef3b12c6b"]]},{"id":"9febc22ab202dee3","type":"modbus-flex-write","z":"d694d7c5192629c6","name":"Write Modbus","showStatusActivities":true,"showErrors":false,"server":"45116883a93e505c","emptyMsgOnFail":false,"keepMsgProperties":true,"x":2040,"y":1760,"wires":[[],[]]},{"id":"08a1d23ef3b12c6b","type":"function","z":"d694d7c5192629c6","name":"Modbus Slave Max Current","func":"msg.payload = { \n    value: msg.payload,\n    'fc': 16, \n    'unitid': 1, \n    'address': 1210, \n    'quantity': 2 } \nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2080,"y":1700,"wires":[["9febc22ab202dee3"]]},{"id":"7b96babc396d1786","type":"function","z":"d694d7c5192629c6","name":"Hex2Dec","func":"msg.payload = parseInt(msg.payload,16);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2020,"y":1580,"wires":[["671f170b37f36d38"]]},{"id":"298fe9dc00ba9e85","type":"change","z":"d694d7c5192629c6","name":"Minimal 5A","rules":[{"t":"set","p":"payload","pt":"msg","to":"5","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":2030,"y":1320,"wires":[["1c53cc31ecce0897"]]},{"id":"7288666d3376f9ae","type":"change","z":"d694d7c5192629c6","name":"Maximal 16A","rules":[{"t":"set","p":"payload","pt":"msg","to":"16","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":2040,"y":1360,"wires":[["1c53cc31ecce0897"]]},{"id":"b106510b5177f505","type":"switch","z":"d694d7c5192629c6","name":"","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"6","vt":"num"},{"t":"gt","v":"16","vt":"num"},{"t":"btwn","v":"6","vt":"num","v2":"16","v2t":"num"}],"checkall":"false","repair":false,"outputs":3,"x":1810,"y":1420,"wires":[["298fe9dc00ba9e85"],["7288666d3376f9ae"],["1c53cc31ecce0897"]]},{"id":"538cd9667d719229","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current Alfen Solar Max L1","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.alfen_solar_max_l1","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":160,"y":1260,"wires":[["de9a85a9fd8b7e75","77f4e9ad0fc1eba5","bcc6a631d0000827"]]},{"id":"22762c48e339981e","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current Alfen Solar Max L2","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.alfen_solar_max_l2","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":160,"y":1320,"wires":[["bcc6a631d0000827","77f4e9ad0fc1eba5","de9a85a9fd8b7e75"]]},{"id":"26d264b3619a40e4","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current Alfen Solar Max L3","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.alfen_solar_max_l3","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":160,"y":1380,"wires":[["de9a85a9fd8b7e75","77f4e9ad0fc1eba5","bcc6a631d0000827"]]},{"id":"de9a85a9fd8b7e75","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Alfen Solar Max L3","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.alfen_solar_max_l3","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":460,"y":1380,"wires":[["fad20883bf886a23"]]},{"id":"77f4e9ad0fc1eba5","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Alfen Solar Max  L2","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.alfen_solar_max_l2","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":460,"y":1320,"wires":[["fad20883bf886a23"]]},{"id":"fad20883bf886a23","type":"join","z":"d694d7c5192629c6","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":810,"y":1320,"wires":[["299430d43a8946ac"]]},{"id":"299430d43a8946ac","type":"calculator","z":"d694d7c5192629c6","name":"Max A","inputMsgField":"payload","outputMsgField":"payload","operation":"max","constant":"","round":true,"decimals":"1","x":950,"y":1320,"wires":[["3544c70b3d30604c"]]},{"id":"6ed3a44a1936a808","type":"api-call-service","z":"d694d7c5192629c6","name":"Max A for Alfen on Solar","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.min_current_production"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1350,"y":1320,"wires":[["157c33120eb29bba"]]},{"id":"bcc6a631d0000827","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Alfen Solar Max L1","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.alfen_solar_max_l1","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":460,"y":1260,"wires":[["fad20883bf886a23"]]},{"id":"307641c670a211fc","type":"api-call-service","z":"d694d7c5192629c6","name":"EV Charger max load balance","server":"3f53ed1d.fd3d32","version":5,"debugenabled":false,"domain":"input_number","service":"set_value","areaId":[],"deviceId":[],"entityId":["input_number.ev_charger_max_load_balance"],"data":"{\"value\":payload}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1330,"y":1520,"wires":[["06e689f541a93bf8"]]},{"id":"157c33120eb29bba","type":"api-current-state","z":"d694d7c5192629c6","name":"Solar - Grid","server":"3f53ed1d.fd3d32","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.solar_grid","state_type":"str","blockInputOverrides":false,"outputProperties":[],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1590,"y":1320,"wires":[["b106510b5177f505"],[]]},{"id":"06e689f541a93bf8","type":"api-current-state","z":"d694d7c5192629c6","name":"Solar - Grid","server":"3f53ed1d.fd3d32","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.solar_grid","state_type":"str","blockInputOverrides":false,"outputProperties":[],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1590,"y":1520,"wires":[[],["b106510b5177f505"]]},{"id":"3544c70b3d30604c","type":"calculator","z":"d694d7c5192629c6","name":"Round up","inputMsgField":"payload","outputMsgField":"payload","operation":"ceil","constant":"","round":true,"decimals":"0","x":1110,"y":1320,"wires":[["6ed3a44a1936a808"]]},{"id":"61305b37974da96b","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current Alfen Max L1","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.alfen_max","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":140,"y":1460,"wires":[["8b638e6aaec7e06d","2940a2490a633d4e","b80b8b40a22bc6dc"]]},{"id":"f404ee2f7355eeb7","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current Alfen Max L2","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.alfen_max_l2","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":140,"y":1520,"wires":[["b80b8b40a22bc6dc","2940a2490a633d4e","8b638e6aaec7e06d"]]},{"id":"63273715a9825236","type":"server-state-changed","z":"d694d7c5192629c6","name":"Current Alfen Max L3","server":"3f53ed1d.fd3d32","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.alfen_max_l3","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"x":140,"y":1580,"wires":[["8b638e6aaec7e06d","2940a2490a633d4e","b80b8b40a22bc6dc"]]},{"id":"8b638e6aaec7e06d","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Alfen Max L3","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.alfen_max_l3","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":440,"y":1580,"wires":[["9a7d7e6ff9cfabf1"]]},{"id":"2940a2490a633d4e","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Alfen Max  L2","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.alfen_max_l2","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":440,"y":1520,"wires":[["9a7d7e6ff9cfabf1"]]},{"id":"9a7d7e6ff9cfabf1","type":"join","z":"d694d7c5192629c6","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":710,"y":1520,"wires":[["54dbbd5a772c19d0"]]},{"id":"54dbbd5a772c19d0","type":"calculator","z":"d694d7c5192629c6","name":"Min A","inputMsgField":"payload","outputMsgField":"payload","operation":"min","constant":"","round":true,"decimals":"1","x":850,"y":1520,"wires":[["785499d348f9f482"]]},{"id":"b80b8b40a22bc6dc","type":"api-current-state","z":"d694d7c5192629c6","name":"Current Alfen Max L1","server":"3f53ed1d.fd3d32","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_number.alfen_max_l1","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":440,"y":1460,"wires":[["9a7d7e6ff9cfabf1"]]},{"id":"785499d348f9f482","type":"calculator","z":"d694d7c5192629c6","name":"Round down","inputMsgField":"payload","outputMsgField":"payload","operation":"floor","constant":"","round":true,"decimals":"0","x":1040,"y":1520,"wires":[["307641c670a211fc"]]},{"id":"0581f0a9072195d1","type":"comment","z":"d694d7c5192629c6","name":"Send the max current value to EVcharger","info":"I determine which phase is dominant for the desired charging current and send the maximum charging current value to the charger.\n\nBased on the position of the Solar-Grid switch, I send the Solar or Grid value to the charger.","x":200,"y":1200,"wires":[]},{"id":"7052c2c9fa5fe253","type":"comment","z":"d694d7c5192629c6","name":"Format current value and send it to charger","info":"","x":2070,"y":1260,"wires":[]},{"id":"45116883a93e505c","type":"modbus-client","name":"Laadpunt","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"queueLogEnabled":false,"tcpHost":"192.168.2.24","tcpPort":"502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","serialAsciiResponseStartDelimiter":"0x3A","unit_id":3,"commandDelay":1,"clientTimeout":1000,"reconnectOnTimeout":true,"reconnectTimeout":2000,"parallelUnitIdsAllowed":true},{"id":"3f53ed1d.fd3d32","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]

Kind regards,

Luuk

Thanks a lot, works great for my instance too! Iā€™m not using the solar part of the flow but setting the power limit on the charger works great!

Hi all,

Today I ran into a new problem. Active load balancing works perfectly through my Node Red flow in Home Assistant. However, if the permitted current for the car is set to maximum (in my case 16 A) and a large consumer in the house switches on (for example 15 A) then my load balancing flow nicely reduces the max current to a maximum of 10 A for the charger (connection max is 25 A). The only problem is that my car itself needs a little time to adjust to this. It has to reduce the current from 16 A to 10 A. But before it gets there, the EV charger already stops working because of over current. And it wonā€™t start anymore because this over current is more than 150%. So I have to unplug the charger from my car and plug it in again to resume charging.

Anyone have any idea how to deal with/solve this?

Below from the Alfen Implementation Guide Smart_Charging (EN)

The charging station pauses the charging session in case the following situations of over current occur:
ā€¢ 100% ā‰¤ x < 105% after 1200 seconds
ā€¢ 105% ā‰¤ x < 112% after 100seconds
ā€¢ 112% ā‰¤ x < 120% after 5 seconds
ā€¢ 120% ā‰¤ x < 150% after 2 seconds

After 5 minutes the charging stations will resume the charging session. In case the over current occurs again the charging station will again pause the charging session for 5 minutes.

After this the charging station will resume the charging session once more. This cycle is repeated until the charging current is decreased (session stopped by user, fully charged EV battery) or the over current situation is resolved in another way.

Kind regards,

Luuk

Hi @bartland. Great idea. Would you be so kind to share your code? Thanks!

Hi Bartland,

Iā€™m trying to enable the one time setting to be able to switch between 1 and 3 phase charging.
I found this guide which explains how to do it within ACE. However when I try to execute the command. All I get is the message: ā€˜incorrect passwordā€™? Although I am succesfully logged in with the ā€˜Ownerā€™ account and password.

Any idea what Iā€™m doing wrong?
Thanks!

Is it possible to read the state of charge of the vehicleā€™s battery from the EVE chargerā€™s modbus connection? I would like to be able to make Nodered flow which makes sure my SOC is at least 60% in the morning (and then keep charging on solar power during the day).

Hey Anton,

no, that is not possible: the car does not communicate SOC to the chargepoint, this is not provided in the interface between the car and the chargerā€¦

Best regards,
Lieven

Quick question, my Alfen charging station is not managed by me but by my employer and a third-party backoffice.

I do have Owner access to the device using the ACE Service Installer tool and the MyEve app, and it appears that I also have the load balancing license (despite never asking, nor paying for this IIRC but whatever).

So obviously Iā€™d like to get some data from the Alfen using modbus. But it seems that you can only enable modbus by also enabling Load Balancing. But hereā€™s the thing, I donā€™t have a digital meter with a P1 port so thereā€™s no data source for load balancing. Is this a problem? I donā€™t want to mess too much with any settings on a device thatā€™s technically not mine.

Hey @Matva ,

no this is not a problem. I am not using the P1 port interface either, only the modbus interface. See the posts from December 2021 in this post for more details.

Best regards,
Lieven

Cool, Iā€™ll give it a try. Thanks!

Any experience with using P1signal? My Alfen Eve is provided with load balancing (employer, also third party provider of my Alfen), by reading P1 into Iungo, that is transferred to my Alfen. I would like to send a fake signal to this Iungo from Home Assistant, so I use Home Assistant to do this calculation of overproduction of solar panels, then sending signal to Iungo to trick into loadbalancing (reduce charging power/speed) using solar produced power?

I have an Alfen Dual Eve and it works great for Pv surplus EV charging with EVCC software.