Connecting Kostal Piko PV inverter to OpenEMS

We’re running some old Kostal Piko 4.2, 5.5, 8.3, 10.1 PV inverters, which I like to connect to OpenEMS. Using the PV-Inverter Kostal component I receive a Modbus Communication failed warning message and no values are shown in the UI. I unfortunately do not find any Modbus settings in the web UI of the Kostal pv inverters.
Searching this forum, I only came across one post stating that Modbus is not available for later versions (12 - 20).
Searching the internet I did find on the other hand two sources in German, stating that Modbus is available for the versions 3.0 - 36 or 4.2-20 and that no further settings are needed:

Does anyone has a hint how to get the pv inverters connected to OpenEMS or how to debug the issue further?

Screenshot of warning message in OpenEMS UI:

As far as I understand the Piko devices provide data via http. You could implement an integration using a httpBridge? KSEM is also available but is it available at your side and does it know about solar production?
Other Kostal integrations are based on modbus, yet. You could somehow create something new using Shelly and existing Kostal modbus integrations, utilizing documented http calls used by other solutions?

From the smartfox documentation there are network limitations (only one integration: portal or local) and required settings (page 15)? Device setting may map a modbus device id? But that‘s only from what I read just now. Maybe that‘s kind of another starting point…

Could you please post the result of:

http://inverter-ip/api/dxs.json?dxsEntries=67109120&dxsEntries=251658753&dxsEntries=251658754&dxsEntries=16780032

Check and Please send me the result.

Thanks!

1 Like

Thanks for your replies!

Yes, it has a web UI to configure it and reading data.

Could you please elaborate which component you mean? I only see following Brdiges in OpenEMS UI: M-Bus, Modbus/RTU Serial, Modbus/TCP, OneWire. Searching for HTTP only leads to “Controller Api Websocket” (and Apache Felix Jetty Based Http Service).

No, we are using a Fronius Smart Meter TS 5kA-3, which I also have trouble with reading.

Not sure if I understand you correctly. You mean, to attach a Shelly meter to the inverter cables and read the Shelly values? Would prefer to read the values directly (and maybe later also be able to control the inverter).

Yes, I tried with and without active portal connection – unfortunately didn’t make any difference. I also had the impression, that it looked like Modbus, thus my question. :slight_smile:

Result is a blank page with the message: Sorry, the requested file does not exist on this server. It stays the same if I remove one parameter after the other and finally removing the file and path.

Versuch mal bitte:

http://<WR‑IP>/api/dxs.json?dxsEntries=16780544&dxsEntries=33556736&dxsEntries=251658753

Andernfalls:

Es gibt auf dem WR ja eine Page, auf der du die Werte siehst, die aktuell ankommen.

Bevor du die Seite mit den Werten aufrufst, schau mal in die Netzwerkaktivität in den Entwicklereinstellungen (F12) und dann Tab “Netzwerk”. Welche Endpoints tauchen da auf, wenn du dann auf die Seote gehst?

1 Like

Unfortunately I get the same message.

Under developer tools → network analysis I only see:
<wr-ip>/index.fhtml, one gif and favicon.

Thanks for trying. What about http://inverterip/measurements.xml, perhaps using basic authentication?

Sorry, I was trying to suppose developing an implementation of a custom device using some existing device implementations as basis.

But let‘s find out how values are to be read first.

Same message (having used basic auth for the first call).

Ok, if you inspect the page where the inverter shows it‘s values using the developer tools F12? Make sure you have the page displaying inverter details (pv production, …).
There the endpoints should be shown?

If I get you right, only the three files mentioned above are shown. Screenshot:

So, I believe we need to go for downloading index.fhtml and extraction of the desired values then. But there is nothing ready and needs development?!

1 Like

Please refresh the Page, after Opening the Tools, as otherwise the Data is not Displayed.

Also what happens if you try to read the Values via a Modbus Tool manually?

1 Like

Do you know if there is another component already available, that also uses web scraping?

I did so.

Haven’t tried yet (new world for me). Is there a Modbus tool you can recommend for Linux?

1 Like

Try modbus first, let‘s discuss html only if modbus is not an option.

Perhaps you may also give some insight about what you want to achieve. Or what your use case looks like?

I already did a quick scan with

which didn’t give any results. nmap also showed only open ports 80 and 81. But I will try with the recommended modpoll again – just need to understand the config first…

As a first step, I’d like to read the power delivered by the inverters. In a second step, it will be interesting to also control the inverters (that can be controlled by OpenEMS). The bigger picture is a little more complicated, but nothing too anormal, like peak shaving, surplus charging, intelligent power storing, …

Well then Modbus is not the Way to go i would say.

modpoll fails to connect on port 502. Using the example config, on ports 80 and 81 all fields are displayed with value none. (Using the same config to query a fronius pv inverter that works within OpenEMS, modpoll also shows fields with values.)
Not sure if I should try something else?

I’ll try to reach out to two inverter installers and to Kostal itself in the upcoming days, to see if I get any additional information and firmware updates.

First of all nmap should show an open modbus port (often 502, for modbus tcp) if configured correctly and available, imho.

I mentioned that it might be possible to retrieve values showing energy production. There are examples for other systems (HA, scrips) parsing the html. Reusing this to implement an integration?

Sn0w3y, what do you think? Getting complicated at least to control something I expect?

1 Like