Connecting Kostal Piko PV inverter to OpenEMS

They might have a RS485 interface. I could try to attach a Modus coupler to it to test if I get any data via Modbus TCP by that way. But that is all new terrain for me…

Some experience (in German), that doesn’t sound too inviting:

IMHO parsing html is not really a good approch for an Energy Management System as it can be unstable (Updates break Implementation easily).

Maybe an external Meter for the Inverters which are not controllable would suit the Case better.

Not true, they use RS485 Serial for Communication which is also a way to read Data from the Devices. You could Implement a Serial → TCP converter on site, so you have TCP available.

I contacted Kostal about modbus access and firmware updates. The expert is currently out of office. I’m hoping for a reply next week.

Modbus RTU via RS485 should be available. A firmware update is not available. I got a specification document, with the Modbus registers. But it was not clear if the spec fits to our inverter models.

What do you think? If there is no update and modbus registers are not known - should we try to inspect the html? If you agree and provide a static html (just download the power value overview) it should be possible to help implementing a component only providing values as PV inverter implementation.

I’m awaiting additional information from Kostal (Modbus TCP, firmware update), but don’t expect much more news.
If Modbus RTU via RS485 is the way to go, I’ll need some time to connect the inverters to a modbus RTU to TCP coupler. Then it hopefully is possible to implement a component, that can not only read, but also control the inverter.

Didn’t get much more info – and hope for being able to control them was low by Kostal.
I’m away the upcoming weeks, but will try to read out data via RS485 once I’m back.

Quick update, today we tried to read data from different inverters (Piko 101 FW 4.03, Piko 10.1 FW 3.71, Piko 8.3 FW 3.71) via Modbus RTU over the RS485 interface. Unfortunately without any luck. Only got time out errors.

Thus we are back to the question to either scrap the web interface as @iseeberg79 suggested or attach smart meters (e.g. Shelly Pro 3 EM) as @Sn0w3y suggested. We are talking about 5 buildings with 1 to 3 inverters each (11 inverters in total). These inverters will not receive any updates (to their web UI) anymore, as Kostal does not provide any. Looking at the web UI probably the status field is the only one not possible to get via a smart meter. Is one or the other way more recommended (also thinking of integrating it into OpenEMS)?

Ich sehe hier klar RS485 Kommunikation - der MUSS RS485 können - leider habe ich keinen da, um das zu testen. Kannst du einen Raspberry Pi aufsetzen, den dort hin hängen mit einem Modbu Umsetzer auf USB, der zu 100% korrekt ist vom Anschluss her zumindest? Dann könnte ich mit VPN eventuell mal testen.

Andernfalls wird die Implementierung ins OpenEMS schwer bis unmöglich - hat diese Status Seite eine Authentifizierung? Wenn nein, dann wird es wieder etwas “leichter” - kannst du mir da mal VPN geben, dass ich sehe, wie das ankommt?

Grüße

1 Like

“Standard”-Kommunikation via Modbus/RTU wäre auf jeden Fall zu bevorzugen.

Falls es nur per Web-Scraping geht: “jsoup: Java HTML Parser” ist schon als Abhängigkeit in OpenEMS: https://jsoup.org/

1 Like

Danke! Muss HW nochmal zusammen suchen und vorbereiten. Melde mich dann per PM bei dir.

Ja. HTTP Auth.

Hab dir eine Nachricht geschickt.

Thanks to the huge support of @Sn0w3y the current insight is that parsing HTML seems more feasible than Modbus support. Generously @Sn0w3y did an implementation and prepared a PR:

1 Like

I need to Note, that Kostal should provide us the correct way of Communicating via Modbus, as SolarLog can do it aswell..

If i had such a device at site, i would Sniff the Data Packages and Reverse Engineer it.. But as these Devices are “quite expensive” just for testing purposes (100-250€ on kleinanzeigen.de) i could not do so..

This is now merged to develop and well be part of OpenEMS 2025.11.0

2 Likes

I am getting build errors in eclipse after this PR got merged.
I commented in the respective commit and added how I worked around the issue:

I do not have Build Issues - tests run through so it MUST be on your side.

Also i do not see comments?

I also could build without problems and using the provided docker containers, it runs fine.
@Scritch maybe sharing the build errors help to understand the issue.

As said in the comment of the linked commit, its about the kostal bndtools defintion (bnd.bnd). Specifically about the colon in line 14:

org.jsoup:jsoup,\

This results in the following error:

org.jsoup:jsoup;version=0 Not found in [bnd-cache [openems/cnf/cache/7.1.0/bnd-cache r/w=false], BndPomRepository [name=Maven Central, localRepo=~/.m2/repository, location=cnf/cache/pom-Maven Central.xml], Templates, Release]

Followed by many other regular java compile errors, related to the fact that the org.jsoup types cannot be resolved.

Changing the line as follows solves the issue.

org.jsoup,\