Reading SolarEdge inverter and meter data via Modbus TCP

Hello,

I want to read data from my Solaredge inverter as well as Solaredge meter which is connected to the inverter, via Modbus TCP. I found already a lot of information here in the community forum and with this help I was able to configure openHAB to read data from the inverter. So thanks to the community already for this! I am new to openHAB and it’s great how much information can be found here!

However, I still have issues reading data from the Solaredge meter and I do not understand yet why. I din’t find this here so far. Please forgive me if I didn’t search with the correct keywords. Any hint/advice is very much appreciated.

I am running openHAB 2.5.3 - there are no exceptions in the log.

Following is my things configuration:

Bridge modbus:tcp:SE5000TCP [ host="solaredge", port=502, id=1, timeBetweenTransactionsMillis=60, 

timeBetweenReconnectMillis=0, connectMaxTries=3, reconnectAfterMillis=0, connectTimeoutMillis=10000 ] {

    Bridge poller Registers [ start=69, length=70, refresh=5000, type="holding" ] {

        Thing data C_SunSpec_DID    [ readStart="69", readValueType="uint16" ]        // 101 = single phase, 102 = split phase, 103 = three phase 

        Thing data I_AC_Power       [ readStart="83", readValueType="int16"  ]        // AC Power value

        Thing data I_AC_Power_SF    [ readStart="84", readValueType="int16"  ]        // AC Power scale factor

        Thing data I_Status         [ readStart="107", readValueType="uint16"]        // Operating state

    }

This works fine. Then I try to insert the meter registers, and no matter whether I try to do this directly (with increasing length) or with a seperate bridge, I still get back NULL

    Bridge poller Registers [ start=205, length=50, refresh=5000, type="holding" ] {

        Thing data M_AC_Power       [ readStart="205", readValueType="int16"]
        Thing data M_AC_Power_SF    [ readStart="209", readValueType="int16"]

    }

I am pretty sure that the id of the modbus:tcp brige shall be 1, this is also what I did when reading the data when using iobroker, which worked fine,

Please let me know in case I missed to provide anyhting or missed anything obvious. Thank you very much for you help!

Kind regards,
Chris

Instead manually configuring everything via plain modbus binding, you might have easier time with the solaredge binding from @mrbig Reading Data from Solaredge inverters via Modbus TCP

Do you think it would support this device as well?

The specific issues you might have is due reusing same id (Registers) for different things. Things should have unique ids for openHAB to pick up the configuration properly.

Best
Sami

2 Likes

Yes, I have a version with meter support. The last time I’ve compiled it it’s against OH 2.3.0, but it might works on newer versions as well.

Currently I’m trying to push my initial PR through the devs, but it’s a very slow process.

2 Likes

Thanks a lot for pointing out the issue with the similar IDs. I have changed that and at least I get some values back. Not the right ones yet, however, this is most likely due to reading the wrong registers. I will also have a look at the solaredge binding. I wasn’t aware of that, I always thought there’s “only” the one available reading values from the cloud service, which I want to avoid.

Thanks! I will have a look at this! Just need to figure out how to install/activate this - so far I have just jused the preinstalled bindings. I don’t have time right now, but I will look and read into this before I bug you - I am sure there’s some documentation available for that. Thanks meanwhile!

Unfortunately there is not much documentation about the install yet. But I have the prebuilt .jar-s, if you contact me in PM I will send them for you