As far as I can tell there is only an energy counter for “from battery” not “to battery”.
Nice video, congratulations. But in my case I have a Penticore Plus with battery and additional the Kostal energy meter KEM P (without LAN) - it is not the KSEM. And I am looking for integrating resp. monitoring the “Energy into grid” into the Enegy dashborad in HA. Modbus via inverter doesnt work, yet. Can anybody help?
KEM-P has a modbus interface. You can use an RS-485 adaptor to query is serially.
Hi,
is only one inverter supported by the official integration? I have two Kostal and i’m only able the add one.
BW
Is anybody of you have trouble with the Kostal integration recently?
It was working fine for three months, but I now observe the the “AC Power” sensor is suddenly unavailable every now and then. I need to restart the integration to restore its behavior.
The interver itself is up and running, and when my solar enery dashoard is “catching up”, which means it will assign the collected kWh to the wrong hour etc. (But I assume, it would miss them complete when I do not realize this on the particular day)
Is there a way to manage/force battery charging by HA automation? Currently it’ll only charge based on settings in Kostal Plenticore “Service menu” → “battery settings”.
Would really like to have the option of automating it based on available solar and/or network feed in rate (already have an integration with Nordpool for that).
Should be possible. I do this with node red for disabling battery discharging while charging the EV.
You can write the modbus register 1034 to do so.
Can you show how you did that? Gladly with an example.
I fail to write the appropriate modbus register via NodeRed.
In Kostal Plenticore the battery management is already set to Modbus TCP.
Yes, of course:
[{"id":"9fc0f809.f00518","type":"tab","label":"disable-battery-discharging","disabled":false,"info":""},{"id":"69d3ebb87d314db0","type":"inject","z":"9fc0f809.f00518","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"10","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":240,"wires":[[]]},{"id":"b51f2c57b46cfdf3","type":"switch","z":"9fc0f809.f00518","name":"","property":"payload","propertyType":"msg","rules":[{"t":"false"},{"t":"true"}],"checkall":"true","repair":false,"outputs":2,"x":610,"y":160,"wires":[["a824c7b1042d8991"],["269d4a791ea63c01"]]},{"id":"a824c7b1042d8991","type":"debug","z":"9fc0f809.f00518","name":"Zielladen nicht aktiv","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":900,"y":80,"wires":[]},{"id":"832e19233b7c6bdf","type":"buffer-maker","z":"9fc0f809.f00518","name":"","specification":"spec","specificationType":"ui","items":[{"name":"float","type":"floatle","length":1,"dataType":"msg","data":"payload"}],"swap1":"swap16","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"str","x":870,"y":240,"wires":[["a5e2af6ad2457e4a"]]},{"id":"a5e2af6ad2457e4a","type":"buffer-parser","z":"9fc0f809.f00518","name":"","data":"payload","dataType":"msg","specification":"spec","specificationType":"ui","items":[{"type":"uint16be","name":"data","offset":0,"length":2,"offsetbit":0,"scale":"1","mask":""}],"swap1":"","swap2":"","swap3":"","swap1Type":"swap","swap2Type":"swap","swap3Type":"swap","msgProperty":"payload","msgPropertyType":"str","resultType":"value","resultTypeType":"return","multipleResult":true,"fanOutMultipleResult":false,"setTopic":true,"outputs":1,"x":490,"y":340,"wires":[["67062c1ccec57ec9"]]},{"id":"67062c1ccec57ec9","type":"modbus-write","z":"9fc0f809.f00518","name":"1034 (Ent-/Ladeleistung)","showStatusActivities":false,"showErrors":true,"showWarnings":true,"unitid":"71","dataType":"MHoldingRegisters","adr":"1034","quantity":"2","server":"a1b432331279e425","emptyMsgOnFail":false,"keepMsgProperties":false,"delayOnStart":false,"startDelayTime":"","x":810,"y":360,"wires":[["85bf2b359a49c492"],[]]},{"id":"85bf2b359a49c492","type":"debug","z":"9fc0f809.f00518","name":"Zielladen aktiv","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1020,"y":320,"wires":[]},{"id":"f93eebac120801dc","type":"debug","z":"9fc0f809.f00518","name":"error","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":530,"y":40,"wires":[]},{"id":"035fe24f0538dc43","type":"mqtt in","z":"9fc0f809.f00518","name":"","topic":"evcc/loadpoints/1/planActive","qos":"2","datatype":"auto-detect","broker":"d6c82b6abc04c385","nl":false,"rap":true,"rh":0,"inputs":0,"x":280,"y":160,"wires":[["b51f2c57b46cfdf3"]]},{"id":"269d4a791ea63c01","type":"api-current-state","z":"9fc0f809.f00518","name":"","server":"8161678f.30be58","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.scb_battery_soc","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":480,"y":240,"wires":[["adeebeb74855588a"]]},{"id":"adeebeb74855588a","type":"switch","z":"9fc0f809.f00518","name":"","property":"payload","propertyType":"msg","rules":[{"t":"gte","v":"50","vt":"str"},{"t":"lt","v":"50","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":830,"y":140,"wires":[["b32a4111c8bebdbe"],["832e19233b7c6bdf"]]},{"id":"b32a4111c8bebdbe","type":"debug","z":"9fc0f809.f00518","name":"battery SoC > 50%","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1160,"y":160,"wires":[]},{"id":"a1b432331279e425","type":"modbus-client","name":"Kostal Plenticore","clienttype":"tcp","bufferCommands":true,"stateLogEnabled":false,"queueLogEnabled":false,"failureLogEnabled":false,"tcpHost":"192.168.188.109","tcpPort":"1502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB","serialType":"RTU-BUFFERD","serialBaudrate":"9600","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"100","serialAsciiResponseStartDelimiter":"0x3A","unit_id":"71","commandDelay":"5","clientTimeout":"1000","reconnectOnTimeout":true,"reconnectTimeout":"2000","parallelUnitIdsAllowed":false},{"id":"d6c82b6abc04c385","type":"mqtt-broker","name":"","broker":"192.168.188.15","port":"1884","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"8161678f.30be58","type":"server","name":"Home Assistant","addon":true}]
You should be able to import this in node red and adapt for your needs
Ok, i’ve got the discharging to work for Kostal Plenticore Plus 10 with BYD HVM 13.8. It requires this script to be run every 59 seconds for discharge otherwise it resets to Kostal default.
This is not the problem im facing though.
Now, according to Plenticore if i want to charge i should just write negative value, but it wont accept it.
What am i doing wrong?
Example script that i’ve run just now that shows forcing battery to discharge works.
You have to have the setting for Battery control set to External via protocol (Modbus TCP)
Plenticore10 admin interface shows correct data.
Settings → Automations and scripts → Scripts
alias: PC10-BYDHVM discharge
sequence:
- service: modbus.write_register
data:
hub: PLENTICORE10
address: 1034
value: 3500
slave: 71
mode: single
icon: mdi:battery-minus-variant
(for this to work you also have to have your “PLENTICORE10” configured in configuration.yaml)
modbus:
- name: "PLENTICORE10"
type: tcp
host: [put here the ip address of your inverter]
port: 1502
I’ve resolved this.
Hi,
I am also looking for a possibility to disable battery discharging (to avoid battery discharge while charging my car).
I am getting the status of the battery_min_soc via modbus, but the modbus.write service is not able to change the value.
I am remembering (but only from somewhere) that changing this parameter via modbus will not function based on the technical implementation of modbus by Kostal.
The plenticore integration shows a number.scb_battery_min_soc, but HA is writing in yellow - Diese Entität ist nicht verfügbar -
Anyway I don’t know how to change this “number”-stuff, sorry I am pretty new.
Just on the way to migrate from iobroker to HA.
But as example the iobroker plenticore adapter is able to change the battery_min_soc!
Therefore technically it should be possible…
Any help or ideas?
Regards,
Gerhard
sorry, sorry…
for any reason, I don’t know why: this entity number.scb_battery_min_soc was deactivated.
Just activated - and now it is avaible and changes are functioning via action the the automation.
Sorry and regards
Gerhard
Just came here via google. Is the a simple way to force the battery to load as in “Service Menu”, “Battery Settings”, scroll down “Start loading Battery to 100%”?
This option is only visible via the installer account. The plant owner can´t see it.