Modbus Binding for Kostal inverters

Hi all,
I’m currently considering to write a new Modbus Binding to read (and later write) data from Kostal Solar Inverters (especially Plenticore Typ). There is an official documentation available from Kostal (https://cdn-production.kostal.com/-/media/document-library-folder---kse/2023/11/16/13/29/ba_kostal-interface-description-modbus-tcp_sunspec_hybrid.pdf), which I have already running using the “default” modbus binding.
There are three reasons why I’m considering writing this binding:

  1. I had some issues setting up the current Kostal Binding with my Plenticore BI G2 inverter and I have the feeling the that the rest-api / web-scraping based approach is quite fragile and needs to be update to new inverters / firmware versions quite often. In contrast modbus is offically documented and seems to be stable.
  2. I want to write some fields which currently is not supported for my Inverter. Especially max soc can not even be changed through the UI, so I’m no sure it would even be possible to implement this in the current binding.
  3. I considered just using the “default” modbus binding (which I already have configured). But I want to write some values (especially min and max soc) and these need to be (re-)written every second, otherwise they are automatically reset to their default value - which is quite hard to achieve using the “default” modbus binding.

My main question is now: Would such a binding be accepted by the maintainers, because there is already a rest-api / web scraping based binding for Kostal inverters and this binding would kinda be competing, which I understand is not desired.

Second question: Is there any intereset for such a binding by the community?

Regards

Talking of values that seem to reset themselves every second, I don’t think you really want to do that. Generally speaking, that would only happen in modes where you should not be changing these values.
The proper approach is to set the inverter into the right mode (such as e.g. to enable external battery control).

For the rest, you can use the existing modbus binding and don’t need a specialized new one.

The Inverter is configured for external control via modbus. But that has a timeout - which can be enlarged, but not disable. Default is 3 seconds:

This is basically a safety feature to make sure, the inverter goes into a safe / controlled state if the external controller does not respond anymore.

AFAIK this behavior is for example defined for SunSpec as well. In Battery Base Model (802) the controller needs to increment the “Controller Heartbeat” every second. Otherwise the inverter goes back into default configuration.