Reading data from Huawei inverter SUN 2000 (3KTL-10KTL) via modbus TCP and RTU

Well, the Modbus TCP bridge usually just lies there. It doesn’t do anything by itself, it is just like a ‘pathway’ If it has status ONLINE, that just means openHAB can try to communicate with your target device, not that it actually has communicated.

That’s okay, that’s what your poller Thing is for. That should set to (try to) execute actual Modbus reads from your device. If there’s a problem with that transaction, it should be logging detail complaints in your openhab.log.

So we have a mystery - your TCP Bridge thing drops offline periodically, but we don’t see the expected poller thing error messages.

Maybe you do have a general network problem, and the KNX reports are related after all.

I started again with a fresh openhab installation. I only configured samba and installed frontail. After this I followed the instroctiones form @Rado1. Now I get massages in Log:

2022-09-17 10:54:23.683 [WARN ] [ing.ModbusSlaveConnectionFactoryImpl] - Error connecting connection TCPMasterConnection [m_Socket=Socket[unconnected], m_Timeout=3000, m_Connected=false, m_Address=/192.168.1.184, m_Port=502, m_ModbusTransport=null, m_ConnectTimeoutMillis=100000, rtuEncoded=false] for endpoint ModbusIPSlaveEndpoint [address=192.168.1.184, port=502]: Connection refused (Connection refused) 2022-09-17 10:54:23.686 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Could not connect to endpoint ModbusIPSlaveEndpoint [address=192.168.1.184, port=502] -- aborting request ModbusReadRequestBlueprint [slaveId=1, functionCode=READ_MULTIPLE_REGISTERS, start=37000, length=115, maxTries=3] [operation ID 501cdecd-25f9-475b-902e-2907c4ef3687] 2022-09-17 10:54:26.690 [WARN ] [ing.ModbusSlaveConnectionFactoryImpl] - Connect reached max tries 3, throwing last error: Connection refused (Connection refused). Connection TCPMasterConnection [m_Socket=Socket[unconnected], m_Timeout=3000, m_Connected=false, m_Address=/192.168.1.184, m_Port=502, m_ModbusTransport=null, m_ConnectTimeoutMillis=100000, rtuEncoded=false]. Endpoint ModbusIPSlaveEndpoint [address=192.168.1.184, port=502] 2022-09-17 10:54:26.692 [WARN ] [ing.ModbusSlaveConnectionFactoryImpl] - Error connecting connection TCPMasterConnection [m_Socket=Socket[unconnected], m_Timeout=3000, m_Connected=false, m_Address=/192.168.1.184, m_Port=502, m_ModbusTransport=null, m_ConnectTimeoutMillis=100000, rtuEncoded=false] for endpoint ModbusIPSlaveEndpoint [address=192.168.1.184, port=502]: Connection refused (Connection refused) 2022-09-17 10:54:26.695 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Could not connect to endpoint ModbusIPSlaveEndpoint [address=192.168.1.184, port=502] -- aborting request ModbusReadRequestBlueprint [slaveId=1, functionCode=READ_MULTIPLE_REGISTERS, start=32003, length=2, maxTries=3] [operation ID aef5923d-0df2-487c-b72c-0d4be9046b8f] 2022-09-17 10:54:29.699 [WARN ] [ing.ModbusSlaveConnectionFactoryImpl] - Connect reached max tries 3, throwing last error: Connection refused (Connection refused). Connection TCPMasterConnection [m_Socket=Socket[unconnected], m_Timeout=3000, m_Connected=false, m_Address=/192.168.1.184, m_Port=502, m_ModbusTransport=null, m_ConnectTimeoutMillis=100000, rtuEncoded=false]. Endpoint ModbusIPSlaveEndpoint [address=192.168.1.184, port=502] 2022-09-17 10:54:29.701 [WARN ] [ing.ModbusSlaveConnectionFactoryImpl] - Error connecting connection TCPMasterConnection [m_Socket=Socket[unconnected], m_Timeout=3000, m_Connected=false, m_Address=/192.168.1.184, m_Port=502, m_ModbusTransport=null, m_ConnectTimeoutMillis=100000, rtuEncoded=false] for endpoint ModbusIPSlaveEndpoint [address=192.168.1.184, port=502]: Connection refused (Connection refused) 2022-09-17 10:54:29.703 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Could not connect to endpoint ModbusIPSlaveEndpoint [address=192.168.1.184, port=502] -- aborting request ModbusReadRequestBlueprint [slaveId=1, functionCode=READ_MULTIPLE_REGISTERS, start=32008, length=1, maxTries=3] [operation ID 81e0f6ab-5cef-43ab-a2c2-d43e6e50062f] 2022-09-17 10:54:32.142 **[ERROR] [re.storage.json.internal.JsonStorage] - Error writing JsonDB to /var/lib/openhab/jsondb/users.json. Cause /var/lib/openhab/jsondb/users.json (Permission denied). 2022-09-17 10:54:32.471 [ERROR] [re.storage.json.internal.JsonStorage] - Error writing JsonDB to /var/lib/openhab/jsondb/users.json. Cause /var/lib/openhab/jsondb/users.json (Permission denied).** 2022-09-17 10:54:32.706 [WARN ] [ing.ModbusSlaveConnectionFactoryImpl] - Connect reached max tries 3, throwing last error: Connection refused (Connection refused). Connection TCPMasterConnection [m_Socket=Socket[unconnected], m_Timeout=3000, m_Connected=false, m_Address=/192.168.1.184, m_Port=502, m_ModbusTransport=null, m_ConnectTimeoutMillis=100000, rtuEncoded=false]. Endpoint ModbusIPSlaveEndpoint [address=192.168.1.184, port=502]
Modbus TCP slave inverter is “online” and has this config:
UID: modbus:tcp:71978dd591 label: Modbus TCP Slave inverter thingTypeUID: modbus:tcp configuration: rtuEncoded: false connectMaxTries: 3 reconnectAfterMillis: 0 timeBetweenTransactionsMillis: 1500 port: 502 timeBetweenReconnectMillis: 10 connectTimeoutMillis: 100000 host: 192.168.1.184 afterConnectionDelayMillis: 0 id: 1 enableDiscovery: false

I had to install it again. I saw the Modbus TCP slave after copeing the files form @Rado1 but i can´t config it. I didn´t installed the divide1.js and co, because i´m not sure what to do. Do I have to put the content in a newe file “divide1.js” in \openHAB3-conf\transform The software version of my dongle is: V100R001C00SPC125

Thank you!

Edit: I confiugrate the modbus TCP slave again and now my log looks like this:

2022-09-17 11:21:54.003 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:103:Alarm_1bit9' changed from UNINITIALIZED to UNINITIALIZED (BRIDGE_UNINITIALIZED)

2022-09-17 11:21:54.006 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:103a:Alarm_2bit10' changed from UNINITIALIZED to UNINITIALIZED (BRIDGE_UNINITIALIZED)

==> /var/log/openhab/openhab.log <==

2022-09-17 11:22:20.168 [ERROR] [re.storage.json.internal.JsonStorage] - Error writing JsonDB to /var/lib/openhab/jsondb/users.json. Cause /var/lib/openhab/jsondb/users.json (Permission denied).

==> /var/log/openhab/events.log <==

2022-09-17 11:23:06.768 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:slave104:Pv_2_Voltage' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to UNINITIALIZED (DISABLED)

==> /var/log/openhab/openhab.log <==

2022-09-17 11:23:07.267 [ERROR] [re.storage.json.internal.JsonStorage] - Error writing JsonDB to /var/lib/openhab/jsondb/thing_status_storage.json. Cause /var/lib/openhab/jsondb/thing_status_storage.json (Permission denied).

2022-09-17 11:23:08.579 [ERROR] [re.storage.json.internal.JsonStorage] - Error writing JsonDB to /var/lib/openhab/jsondb/thing_status_storage.json. Cause /var/lib/openhab/jsondb/thing_status_storage.json (Permission denied).

==> /var/log/openhab/events.log <==

2022-09-17 11:23:08.083 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:slave104:Pv_2_Voltage' changed from UNINITIALIZED (DISABLED) to UNINITIALIZED (BRIDGE_UNINITIALIZED)

2022-09-17 11:23:11.583 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:slave104:Pv_2_Voltage' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to UNINITIALIZED (DISABLED)

==> /var/log/openhab/openhab.log <==

2022-09-17 11:23:12.081 [ERROR] [re.storage.json.internal.JsonStorage] - Error writing JsonDB to /var/lib/openhab/jsondb/thing_status_storage.json. Cause /var/lib/openhab/jsondb/thing_status_storage.json (Permission denied).

==> /var/log/openhab/events.log <==

2022-09-17 11:23:12.346 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:slave104:Pv_2_Voltage' changed from UNINITIALIZED (DISABLED) to UNINITIALIZED (BRIDGE_UNINITIALIZED)

==> /var/log/openhab/openhab.log <==

2022-09-17 11:23:12.843 [ERROR] [re.storage.json.internal.JsonStorage] - Error writing JsonDB to /var/lib/openhab/jsondb/thing_status_storage.json. Cause /var/lib/openhab/jsondb/thing_status_storage.json (Permission denied).

==> /var/log/openhab/events.log <==

2022-09-17 11:23:14.287 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:slave104:Pv_2_Voltage' changed from UNINITIALIZED (BRIDGE_UNINITIALIZED) to INITIALIZING

2022-09-17 11:23:14.302 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:slave104:Pv_2_Voltage' changed from INITIALIZING to OFFLINE (CONFIGURATION_ERROR): Thing modbus:data:slave104:Pv_2_Voltage readStart=32018, and readValueType=int16 were specified even though the data thing is child of endpoint (that is, write-only)!

==> /var/log/openhab/openhab.log <==

2022-09-17 11:23:14.901 [ERROR] [re.storage.json.internal.JsonStorage] - Error writing JsonDB to /var/lib/openhab/jsondb/backup/1663406594900--org.openhab.core.thing.Thing.json. Cause /var/lib/openhab/jsondb/backup/1663406594900--org.openhab.core.thing.Thing.json (Permission denied).

2022-09-17 11:24:45.107 [WARN ] [.io.rest.auth.internal.TokenResource] - Couldn't find a user with a session matching the provided refresh_token

2022-09-17 11:24:45.109 [WARN ] [.io.rest.auth.internal.TokenResource] - Token issuing failed: invalid_grant

==> /var/log/openhab/events.log <==

2022-09-17 11:25:19.555 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:slave104:Pv_2_Voltage' changed from OFFLINE (CONFIGURATION_ERROR): Thing modbus:data:slave104:Pv_2_Voltage readStart=32018, and readValueType=int16 were specified even though the data thing is child of endpoint (that is, write-only)! to UNINITIALIZED

2022-09-17 11:25:19.596 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:slave104:Pv_2_Voltage' changed from UNINITIALIZED to UNINITIALIZED (DISABLED)

==> /var/log/openhab/openhab.log <==

2022-09-17 11:25:20.051 [ERROR] [re.storage.json.internal.JsonStorage] - Error writing JsonDB to /var/lib/openhab/jsondb/thing_status_storage.json. Cause /var/lib/openhab/jsondb/thing_status_storage.json (Permission denied).

2022-09-17 11:25:21.398 [ERROR] [re.storage.json.internal.JsonStorage] - Error writing JsonDB to /var/lib/openhab/jsondb/thing_status_storage.json. Cause /var/lib/openhab/jsondb/thing_status_storage.json (Permission denied).

==> /var/log/openhab/events.log <==

2022-09-17 11:25:20.908 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:slave104:Pv_2_Voltage' changed from UNINITIALIZED (DISABLED) to INITIALIZING

2022-09-17 11:25:20.927 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:data:slave104:Pv_2_Voltage' changed from INITIALIZING to OFFLINE (CONFIGURATION_ERROR): Thing modbus:data:slave104:Pv_2_Voltage readStart=32018, and readValueType=int16 were specified even though the data thing is child of endpoint (that is, write-only)!```

Good, now we can get somwhere.

If you choose to configure using xxx.things files, you cannot edit those Things/channels from the GUI. You must edit the file(s).

This is not a Modbus problem, but looks serious as it could prevent any config changes working.
You need to fix that permissions problem.

As the message goes on to say, this Modbus data Thing needs to be a child of a poller Thing, not directly of the TCP bridge Thing. You’ve messed up your edit somewhere.

The logical structure

    Modbus TCP Bridge
       I         I
  poller        poller
  I    I        I     I
data  data    data  data

The usual way to express that structure in a xxx.things file and make it clear for yourself, the curly braces do the work

TCP bridge (settings) {
    poller (settings) {
       data  (settings)
       data  (settings)
    }
    poller (settings) ( 
       data  (settings)
       data  (settings)
     }
}

Be sure to give all things a unique name

Have you allowed Modbus TCP Communication in the Dongle?

Hello! Thanks for all that information and good instructions.

Anyhow I did setup everything as described (copied things and items) but my items don´t receive any values from the Modbus binding. Every single item is in state “NULL”.

All Things are online and there´s no error in the frontail logs.
Want to achieve modbus access through TCP.

Here are my things:

//Choose the bridge you want to use and delete the other one.
Bridge modbus:tcp:SUN2000 [ host="192.168.1.23", port=502, id=1, timeBetweenTransactionsMillis=60, reconnectAfterMillis=1000, timeBetweenReconnectMillis=1000, connectTimeoutMillis=10000, afterConnectionDelayMillis=1000  ]{





Bridge poller slave101holding [ start=30073, length=10, refresh=10000, type="holding" ]{
    
        Thing data Rated_power                      [ readStart="30073", readValueType="uint32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Maximum_active_power             [ readStart="30075", readValueType="uint32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Maximum_apparent_power           [ readStart="30077", readValueType="uint32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Maximum_reactive_power_fed       [ readStart="30079", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Maximum_reactive_power_absorbed  [ readStart="30081", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]

   }

Bridge poller slave102holding [ start=32000, length=1, refresh=10000, type="holding" ]{


        Thing data Standalone_tele_indicationbit0          [ readStart="32000.0", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit1          [ readStart="32000.1", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Standalone_tele_indicationbit2          [ readStart="32000.2", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]     
        Thing data Standalone_tele_indicationbit3          [ readStart="32000.3", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Standalone_tele_indicationbit4          [ readStart="32000.4", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit5          [ readStart="32000.5", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Standalone_tele_indicationbit6          [ readStart="32000.6", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Standalone_tele_indicationbit7          [ readStart="32000.7", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Standalone_tele_indicationbit8          [ readStart="32000.8", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Standalone_tele_indicationbit9          [ readStart="32000.9", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit10         [ readStart="32000.10", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit11         [ readStart="32000.11", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit12         [ readStart="32000.12", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit13         [ readStart="32000.13", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit14         [ readStart="32000.14", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Standalone_tele_indicationbit15         [ readStart="32000.15", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]

   }

Bridge poller slave102aholding [ start=32002, length=1, refresh=10000, type="holding" ]{
    
        Thing data Operating_statusbit0                 [ readStart="32002.0", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Operating_statusbit1                 [ readStart="32002.1", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Operating_statusbit2                 [ readStart="32002.2", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]  

   }

Bridge poller slave103holding [ start=32008, length=1, refresh=10000, type="holding" ]{

        
        Thing data Alarm_1bit0                          [ readStart="32008.0", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit1                          [ readStart="32008.1", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit2                          [ readStart="32008.2", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit3                          [ readStart="32008.3", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit4                          [ readStart="32008.4", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit5                          [ readStart="32008.5", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit6                          [ readStart="32008.6", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit7                          [ readStart="32008.7", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit8                          [ readStart="32008.8", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit9                          [ readStart="32008.9", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit10                         [ readStart="32008.10", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit11                         [ readStart="32008.11", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit12                         [ readStart="32008.12", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit13                         [ readStart="32008.13", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit14                         [ readStart="32008.14", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_1bit15                         [ readStart="32008.15", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]

    }

Bridge poller slave103aholding [ start=32009, length=1, refresh=10000, type="holding" ]{        
        
        Thing data Alarm_2bit0                          [ readStart="32009.0", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit1                          [ readStart="32009.1", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit2                          [ readStart="32009.2", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit3                          [ readStart="32009.3", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit4                          [ readStart="32009.4", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit5                          [ readStart="32009.5", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit6                          [ readStart="32009.6", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit7                          [ readStart="32009.7", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit8                          [ readStart="32009.8", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit9                          [ readStart="32009.9", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit10                         [ readStart="32009.10", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit11                         [ readStart="32009.11", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit12                         [ readStart="32009.12", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit13                         [ readStart="32009.13", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit14                         [ readStart="32009.14", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Alarm_2bit15                         [ readStart="32009.15", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]

    } 

//Bridge poller slave103bholding [ start=32010, length=1, refresh=1000, type="holding" ]{        
                
        
    //    Thing data Alarm_3bit0                          [ readStart="320010.0", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit1                          [ readStart="320010.1", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit2                          [ readStart="320010.2", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit3                          [ readStart="320010.3", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit4                          [ readStart="320010.4", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit5                          [ readStart="320010.5", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit6                          [ readStart="320010.6", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit7                          [ readStart="320010.7", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit8                          [ readStart="320010.8", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit9                          [ readStart="320010.9", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit10                         [ readStart="320010.10", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit11                         [ readStart="320010.11", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit12                         [ readStart="320010.12", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit13                         [ readStart="320010.13", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit14                         [ readStart="320010.14", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]
    //    Thing data Alarm_3bit15                         [ readStart="320010.15", readValueType="bit",updateUnchangedValuesEveryMillis="5000000" ]

//   }

Bridge poller slave104holding [ start=32016, length=8, refresh=1000, type="holding" ]{
    
        Thing data Pv_1_Voltage                    [ readStart="32016", readValueType="int16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Pv_1_Current                    [ readStart="32017", readValueType="int16",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Pv_2_Voltage                    [ readStart="32018", readValueType="int16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Pv_2_Current                    [ readStart="32019", readValueType="int16",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]
       // Thing data Pv_3_Voltage                    [ readStart="32020", readValueType="int16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
       // Thing data Pv_3_Current                    [ readStart="32021", readValueType="int16",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]
       // Thing data Pv_4_Voltage                    [ readStart="32022", readValueType="int16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
       // Thing data Pv_4_Current                    [ readStart="32023", readValueType="int16",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]

   }

Bridge poller slave105holding [ start=32064, length=31, refresh=1000, type="holding" ]{
    
        Thing data Input_power                    [ readStart="32064", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]     
        Thing data Uab                            [ readStart="32066", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Ubc                            [ readStart="32067", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Uca                            [ readStart="32068", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Ua                             [ readStart="32069", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Ub                             [ readStart="32070", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Uc                             [ readStart="32071", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data La                             [ readStart="32072", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Lb                             [ readStart="32074", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Lc                             [ readStart="32076", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Active_peak_of_current_day     [ readStart="32078", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Active_power                   [ readStart="32080", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Reactive_power                 [ readStart="32082", readValueType="int32",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]     
        Thing data Power_factor                   [ readStart="32084", readValueType="int16",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Frequency                      [ readStart="32085", readValueType="uint16",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ] 
        Thing data Inverter_efficiency            [ readStart="32086", readValueType="uint16",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Cabinet_temperature            [ readStart="32087", readValueType="int16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Insulation_resistance          [ readStart="32088", readValueType="uint16",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Device_status                  [ readStart="32089", readValueType="uint16",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Fault_code                     [ readStart="32090", readValueType="uint16",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Start_up_time                  [ readStart="32091", readValueType="uint32",readTransform="JS(divide1.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Shutdown_time                  [ readStart="32093", readValueType="uint32",readTransform="JS(divide1.js)",updateUnchangedValuesEveryMillis="5000000" ]

    }

Bridge poller slave106holding [ start=32106, length=2, refresh=10000, type="holding" ]{
    
        Thing data E_total                       [ readStart="32106", readValueType="uint32",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]

    }

Bridge poller slave107holding [ start=32114, length=2, refresh=10000, type="holding" ]{            
        
        Thing data E_day                         [ readStart="32114", readValueType="uint32",readTransform="JS(divide100.js)",updateUnchangedValuesEveryMillis="5000000" ]  

    }

Bridge poller slave108holding [ start=40122, length=6, refresh=10000, type="holding" ]{
    
        Thing data Reactive_power_compensation_pf [ readStart="40122", readValueType="int16",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]     
        Thing data Reactive_power_compensation_qs [ readStart="40123", readValueType="int16",readTransform="JS(divide1000.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Active_power_derating_percent  [ readStart="40125", readValueType="uint16",readTransform="JS(divide10.js)",updateUnchangedValuesEveryMillis="5000000" ]
        Thing data Active_power_derating_fixed    [ readStart="40126", readValueType="uint32",readTransform="JS(divide1.js)",updateUnchangedValuesEveryMillis="5000000" ]
    }


}

And my items:

Group   gSolar "Solar data"
Group:Number:SUM   gSolalarmMinor  "Minor alarm [%d] "<error>
Group:Number:SUM   gSolalarmWarning "Warning [%d] "   <error>
Group:Number:SUM   gSolalarmMajor "Major alarm [%d] " <error>
Group:Number:SUM   gSolateleIndica  "Standelone tele indication [%d] " <settings>

Number  Rated_power                                                                                                         { channel="modbus:data:slave100:slave101holding:Rated_power:number" } 
Number  Maximum_active_power                                                                                                { channel="modbus:data:slave100:slave101holding:Maximum_active_power:number" }
Number  Maximum_apparent_power                                                                                              { channel="modbus:data:slave100:slave101holding:Maximum_apparent_power:number" }
Number  Maximum_reactive_power_fed                                                                                          { channel="modbus:data:slave100:slave101holding:Maximum_reactive_power_fed:number" }
Number  Maximum_reactive_power_absorbed                                                                                     { channel="modbus:data:slave100:slave101holding:Maximum_reactive_power_absorbed:number" }

String  Standalone_tele_indication       "Tele indicatie  [%s]"                 
Number  Standalone_tele_indicationbit0   "Stand by"                                                       (gSolateleIndica) { channel="modbus:data:slave100:slave102holding:Standalone_tele_indicationbit0:number" }
Number  Standalone_tele_indicationbit1   "Grid connection"                                                (gSolateleIndica) { channel="modbus:data:slave100:slave102holding:Standalone_tele_indicationbit1:number" }
Number  Standalone_tele_indicationbit2   "Normal grid connection"                                         (gSolateleIndica) { channel="modbus:data:slave100:slave102holding:Standalone_tele_indicationbit2:number" }
Number  Standalone_tele_indicationbit3   "Grid connection with derating due to power rationing"           (gSolateleIndica) { channel="modbus:data:slave100:slave102holding:Standalone_tele_indicationbit3:number" }
Number  Standalone_tele_indicationbit4   "Grid connection with derating due to inverter internel causes"  (gSolateleIndica) { channel="modbus:data:slave100:slave102holding:Standalone_tele_indicationbit4:number" }
Number  Standalone_tele_indicationbit5   "Normal stop"                                                    (gSolateleIndica) { channel="modbus:data:slave100:slave102holding:Standalone_tele_indicationbit5:number" }
Number  Standalone_tele_indicationbit6   "Stop due to faults"                                             (gSolateleIndica) { channel="modbus:data:slave100:slave102holding:Standalone_tele_indicationbit6:number" }
Number  Standalone_tele_indicationbit7   "Stop due to power rationing"                                    (gSolateleIndica) { channel="modbus:data:slave100:slave102holding:Standalone_tele_indicationbit7:number" }
Number  Standalone_tele_indicationbit8   "Shutdown"                                                       (gSolateleIndica) { channel="modbus:data:slave100:slave102holding:Standalone_tele_indicationbit8:number" }
Number  Standalone_tele_indicationbit9   "Spot check"                                                     (gSolateleIndica) { channel="modbus:data:slave100:slave102holding:Standalone_tele_indicationbit9:number" }

Number  Unlocked              "Unlocked [MAP(0-1.map):%s]"   <settings>                                                     { channel="modbus:data:slave100:slave102aholding:Operating_statusbit0:number" }
Number  Pv_connection         "Pv connection [MAP(0-1.map):%s]"  <settings>                                                 { channel="modbus:data:slave100:slave102aholding:Operating_statusbit1:number" }
Number  Dsp_data_collection   "Dsp data collection [MAP(0-1.map):%s]"  <settings>                                           { channel="modbus:data:slave100:slave102aholding:Operating_statusbit2:number" }

Number  Alarm_1bit0            "High String Voltage 2001"                                                 (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit0:number" }
Number  Alarm_1bit1            "DC Arc Fault 2002"                                                        (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit1:number" }
Number  Alarm_1bit2            "String Reversed 2011"                                                     (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit2:number" }
Number  Alarm_1bit3            "PV String Backfeed 2012"                                                  (gSolalarmWarning){ channel="modbus:data:slave100:slave103holding:Alarm_1bit3:number" }
Number  Alarm_1bit4            "Abnormal String 2013"                                                     (gSolalarmWarning){ channel="modbus:data:slave100:slave103holding:Alarm_1bit4:number" }
Number  Alarm_1bit5            "AFCI Self-test Fault 2021"                                                (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit5:number" }
Number  Alarm_1bit6            "Short circuit between phase to PE 2031"                                   (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit6:number" }
Number  Alarm_1bit7            "Power Grid Failure 2032"                                                  (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit7:number" }
Number  Alarm_1bit8            "Grid Undervoltage 2033"                                                   (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit8:number" }
Number  Alarm_1bit9            "Grid Overvoltage 2034"                                                    (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit9:number" }
Number  Alarm_1bit10           "Unbalanced Grid Voltage 2035"                                             (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit10:number" }
Number  Alarm_1bit11           "Grid Overfrequency 2036"                                                  (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit11:number" }
Number  Alarm_1bit12           "Grid Underfrequency 2037"                                                 (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit12:number" }
Number  Alarm_1bit13           "Grid Frequency Instability 2038"                                          (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit13:number" }
Number  Alarm_1bit14           "Output Overcurrent 2039"                                                  (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit14:number" }
Number  Alarm_1bit15           "Large DC of Output current 2040"                                          (gSolalarmMajor)  { channel="modbus:data:slave100:slave103holding:Alarm_1bit15:number" }


Number  Alarm_2bit0           "Abnormal Leakage Current 2051"                                             (gSolalarmMajor)   { channel="modbus:data:slave100:slave103aholding:Alarm_2bit0:number" }
Number  Alarm_2bit1           "Abnormal Ground 2061"                                                      (gSolalarmMajor)   { channel="modbus:data:slave100:slave103aholding:Alarm_2bit1:number" }
Number  Alarm_2bit2           "Low Insulation Res 2062"                                                   (gSolalarmMajor)   { channel="modbus:data:slave100:slave103aholding:Alarm_2bit2:number" }
Number  Alarm_2bit3           "High Temperature 2063"                                                     (gSolalarmMajor)   { channel="modbus:data:slave100:slave103aholding:Alarm_2bit3:number" }
Number  Alarm_2bit4           "Abnormal Equipment 2064"                                                   (gSolalarmMajor)   { channel="modbus:data:slave100:slave103aholding:Alarm_2bit4:number" }
Number  Alarm_2bit5           "Upgrade Failed 2065"                                                       (gSolalarmMinor)   { channel="modbus:data:slave100:slave103aholding:Alarm_2bit5:number" }
Number  Alarm_2bit6           "License Expired 2066"                                                      (gSolalarmWarning) { channel="modbus:data:slave100:slave103aholding:Alarm_2bit6:number" }
Number  Alarm_2bit7           "Abnormal Monitor Unit 61440"                                               (gSolalarmMinor)   { channel="modbus:data:slave100:slave103aholding:Alarm_2bit7:number" }
Number  Alarm_2bit8           "Power collector fault 2067"                                                (gSolalarmMajor)   { channel="modbus:data:slave100:slave103aholding:Alarm_2bit8:number" }
Number  Alarm_2bit9           "Abnormal energy storage device 2068"                                       (gSolalarmMinor)   { channel="modbus:data:slave100:slave103aholding:Alarm_2bit9:number" }
Number  Alarm_2bit10          "Active islanding 2070"                                                     (gSolalarmMajor)   { channel="modbus:data:slave100:slave103aholding:Alarm_2bit10:number" }
Number  Alarm_2bit11          "Passive islanding 2071"                                                    (gSolalarmMajor)   { channel="modbus:data:slave100:slave103aholding:Alarm_2bit11:number" }
Number  Alarm_2bit12          "Transient AC overvoltage 2072"                                             (gSolalarmMajor)   { channel="modbus:data:slave100:slave103aholding:Alarm_2bit12:number" }
//Number  Alarm_2bit13                                                                                                       { channel="modbus:data:slave100:slave103aholding:Alarm_2bit13:number" }
//Number  Alarm_2bit14                                                                                                       { channel="modbus:data:slave100:slave103aholding:Alarm_2bit14:number" }
Number  Alarm_2bit15          "Abnormal PV module configuration 2080"                                     (gSolalarmMajor)   { channel="modbus:data:slave100:slave103aholding:Alarm_2bit15:number" }


//Number  Alarm_3bit0                                                                                                        { channel="modbus:data:slave100:slave103bholding:Alarm_3bit0:number" }
//Number  Alarm_3bit1                                                                                                        { channel="modbus:data:slave100:slave103bholding:Alarm_3bit1:number" }
//Number  Alarm_3bit2                                                                                                        { channel="modbus:data:slave100:slave103bholding:Alarm_3bit2:number" }
//Number  Alarm_3bit3                                                                                                        { channel="modbus:data:slave100:slave103bholding:Alarm_3bit3:number" }
//Number  Alarm_3bit4                                                                                                        { channel="modbus:data:slave100:slave103bholding:Alarm_3bit4:number" }
//Number  Alarm_3bit5                                                                                                        { channel="modbus:data:slave100:slave103bholding:Alarm_3bit5:number" }
//Number  Alarm_3bit6                                                                                                        { channel="modbus:data:slave100:slave103bholding:Alarm_3bit6:number" }
//Number  Alarm_3bit7                                                                                                        { channel="modbus:data:slave100:slave103bholding:Alarm_3bit7:number" }
//Number  Alarm_3bit8                                                                                                        { channel="modbus:data:slave100:slave103bholding:Alarm_3bit8:number" }
//Number  Alarm_3bit9                                                                                                        { channel="modbus:data:slave100:slave103bholding:Alarm_3bit9:number" }
//Number  Alarm_3bit10                                                                                                       { channel="modbus:data:slave100:slave103bholding:Alarm_3bit10:number" }
//Number  Alarm_3bit11                                                                                                       { channel="modbus:data:slave100:slave103bholding:Alarm_3bit11:number" }
//Number  Alarm_3bit12                                                                                                       { channel="modbus:data:slave100:slave103bholding:Alarm_3bit12:number" }
//Number  Alarm_3bit13                                                                                                       { channel="modbus:data:slave100:slave103bholding:Alarm_3bit13:number" }
//Number  Alarm_3bit14                                                                                                       { channel="modbus:data:slave100:slave103bholding:Alarm_3bit14:number" }
//Number  Alarm_3bit15                                                                                                       { channel="modbus:data:slave100:slave103bholding:Alarm_3bit15:number" }

Number  Pv_1_Voltage        "Pv 1 voltage[%.1f V]"    <energy>                                         (gSolar)             { channel="modbus:data:slave100:slave104holding:Pv_1_Voltage:number" }
Number  Pv_1_Current        "Pv 1 stroom[%.2f A]"     <energy>                                         (gSolar)              { channel="modbus:data:slave100:slave104holding:Pv_1_Current:number" }
Number  Pv_2_Voltage        "Pv 2 voltage[%.1f V]"    <energy>                                         (gSolar)              { channel="modbus:data:slave100:slave104holding:Pv_2_Voltage:number" }
Number  Pv_2_Current        "Pv 2 stroom[%.2f A]"     <energy>                                         (gSolar)              { channel="modbus:data:slave100:slave104holding:Pv_2_Current:number" }
//Number  Pv_3_Voltage        "Pv 3 voltage[%.1f V]"                                                                         { channel="modbus:data:slave100:slave104holding:Pv_3_Voltage:number" }
//Number  Pv_3_Current        "Pv 3 stroom[%.2f A]"                                                                          { channel="modbus:data:slave100:slave104holding:Pv_3_Current:number" }
//Number  Pv_4_Voltage        "Pv 4 voltage[%.1f V]"                                                                         { channel="modbus:data:slave100:slave104holding:Pv_4_Voltage:number" }
//Number  Pv_4_Current        "Pv 4 stroom[%.2f A]"                                                                          { channel="modbus:data:slave100:slave104holding:Pv_4_Current:number" }

Number  Input_power                                                                                                          { channel="modbus:data:slave100:slave105holding:Input_power:number" }
Number  Uab                                                                                                                  { channel="modbus:data:slave100:slave105holding:Uab:number" }
Number  Ubc                                                                                                                  { channel="modbus:data:slave100:slave105holding:Ubc:number" }
Number  Uca                                                                                                                  { channel="modbus:data:slave100:slave105holding:Uca:number" }
Number  Ua                                                                                            (gSolar)               { channel="modbus:data:slave100:slave105holding:Ua:number" }
Number  Ub                                                                                            (gSolar)               { channel="modbus:data:slave100:slave105holding:Ub:number" }
Number  Uc                                                                                            (gSolar)               { channel="modbus:data:slave100:slave105holding:Uc:number" }
Number  La                                                                                                                   { channel="modbus:data:slave100:slave105holding:La:number" }
Number  Lc                                                                                                                   { channel="modbus:data:slave100:slave105holding:Lc:number" }
Number  Active_peak_of_current_day                                                                                           { channel="modbus:data:slave100:slave105holding:Active_peak_of_current_day:number" }
Number  Active_power         "Actieve power[%.2f Kw]"      <energy>                                (gSolar)               { channel="modbus:data:slave100:slave105holding:Active_power:number" }
Number  Reactive_power                                                                                                       { channel="modbus:data:slave100:slave105holding:Reactive_power:number" }
Number  Power_factor                                                                                                         { channel="modbus:data:slave100:slave105holding:Power_factor:number" }
Number  Frequency                                                                                                            { channel="modbus:data:slave100:slave105holding:Frequency:number" }
Number  Inverter_efficiency  "Efficientie omvormer[%.1f %%]" <settings>                               (gSolar)               { channel="modbus:data:slave100:slave105holding:Inverter_efficiency:number" }
Number  Cabinet_temperature  "Temperatuur omvormer[%.1f °C]"<temperature>                             (gSolar)               { channel="modbus:data:slave100:slave105holding:Cabinet_temperature:number" }
Number  Insulation_resistance                                                                                                { channel="modbus:data:slave100:slave105holding:Insulation_resistance:number" }
Number  Device_status    "Apparaat status[MAP(inverter_device_status.map):%s]" <settings>             (gSolar)               { channel="modbus:data:slave100:slave105holding:Device_status:number" }
Number  Fault_code            "Fault code[%d]"      <error>                                           (gSolar)               { channel="modbus:data:slave100:slave105holding:Fault_code:number" }
Number  Start_up_time                                                                                                        { channel="modbus:data:slave100:slave105holding:Start_up_time:number" }
Number  Shutdown_time                                                                                                        { channel="modbus:data:slave100:slave105holding:Shutdown_time:number" }

Number  E_total            "Totaal opgewekt[%.2f Kwh]"    <line>                                      (gSolar)               { channel="modbus:data:slave100:slave106holding:E_total:number" }

Number  E_day              "Dagelijks opgewekt[%.2f Kwh]" <line>                                      (gSolar)               { channel="modbus:data:slave100:slave107holding:E_day:number" }

Number  Reactive_power_compensation_pf                                                                                       { channel="modbus:data:slave100:slave108holding:Reactive_power_compensation_pf:number" }
Number  Reactive_power_compensation_qs                                                                                       { channel="modbus:data:slave100:slave108holding:Reactive_power_compensation_qs:number" }
Number  Active_power_derating_percent                                                                                        { channel="modbus:data:slave100:slave108holding:Active_power_derating_percent:number" }
Number  Active_power_derating_fixed                                                                                          { channel="modbus:data:slave100:slave108holding:Active_power_derating_fixed:number" }

Any idea what I can do next?
I was able to connect through modbus with Windows Client Modbus software.
Inverter is online and available in the fusion solar app.
IP address for the wifi dongle is fixed.
Thank you.

Best regards,
Mario

EDIT:

Okay I got my first warning here…

[WARN ] [rt.modbus.internal.ModbusManagerImpl] - Try 1 out of 3 failed when executing request (ModbusReadRequestBlueprint [slaveId=1, functionCode=READ_MULTIPLE_REGISTERS, start=32009, length=1, maxTries=3]). Will try again soon. Error was I/O error, so resetting the connection. Error details: net.wimpi.modbus.ModbusIOException I/O exception: SocketTimeoutException Read timed out [operation ID bcf30e3b-1f6c-4b2a-9829-cc6cfc78ad39]

Any ideas what I can try next? Thanks!

I updated my Wifi Dongle from SPC125 to SPC130 today.
Warning message is still here and no values received yet.

Will try to fix it somehow…
If you have any input for me please let me know! Any help is much appreciated.

My fault - i forgot to update the channels of the items to the modbus TCP value! Now I get my first values from the inverter!

Will update this one here with my configuration - maybe it will help others to set this up.

Where do I set this??

I think there are several ways how to do it but I connected directly to the WIFI of my Huawei inverter and found the settings there.

I used google - 1st result is this instruction here:

Any chances doing this without an Android phone?

Yes of course. You only need the Fusion Solar app for Huawei.
With Android you have to use Huawei App Galery to get the Fusion Solar App.

Please search the internet you can find these answers there aswell.

https://eu5.fusionsolar.huawei.com/pvmswebsite/app.html

I think my technician gave me too less rights to do this. I can’t see it

If you are a brave man you could search the web for the standard installer password :wink:

It´s possible that your technician gave you a user with restricted rights for the settings.
If you don´t know the password (and if he changed the default one) you need to contact him to activate Modbus TCP.

00000a also not working. Yes I am waiting for his reply. Is rs485 activated by default or do I also have to activate it?

Hi,
i have got 2 huawei sun 2000 inverters, one master and one slave connected with rs458, the master plugged with the huawei dongle wla fe, THE PROBLEM IS THAT I can’t connect to the slave inverter using node red with modbus addons. can someone please help me??

I‘ve done that but I still get the number shown

Anybody managed to get the kWh data (which is also shown in fusion solar app (e.g. kWh imported from the grid, kWh imported to the grid) out of the modbus interface?

I was also reading about a fusion solar API but huawei support didn´t send me a token / user for this.

At the moment I have the power consumption only in my Huawei_Grid item which gets updated every 4 to 5 seconds. I don´t want to calculate everything manually when it´s available in a different spot.

Try below:

  1. Active power:
poller:
  maxTries: 1
  cacheMillis: 50
  start: 32080
  length: 2
  refresh: 5000
  type: holding
data:
   readValueType: uint32
   readStart: 32080
  1. Yield energy:
poller:
  maxTries: 1
  cacheMillis: 50
  start: 32106
  length: 2
  refresh: 60000
  type: holding
data:
   readValueType: uint32
   readStart: 32106

Yield might require re-scale through one of data options, profile or transformation.

Thank You so much to this community for very interesting and helpful postings!

I followed the instructions (“Rado1: Reading data from Huawei inverter SUN 2000 (3KTL-10KTL) via modbus TCP and RTU with json configuration for full GIU control”) on how to set up openHAB to communicate with Huawei SUN2000 inverters (10 KTL) using the S-Dongle and Modbus-TCP. The GUI interface fits “my level of knowledge” very well.

Reading values works great!

However - I’m lost when it’s about writing values, e.g. to register 47088 (RW, ReadWrite) for control of charging (“Grid charge cutoff SOC”) the LUNA2000 battery.

I read the value fine, but there doesn’t seem to be any writing to the SUN2000, when I change the value of the item representing the register-thing. The log is not giving messages that I can understand any relevance of, which of course may be due to my miniscule knowledge.

I don’t really know what to do, but here is the code of the register-thing:

UID: modbus:data:d3c8c19bbd:f5a3face4a
label: Batteri charge-discharge
thingTypeUID: modbus:data
configuration:
readValueType: uint16
readTransform: default
writeTransform: default
writeType: holding
readStart: “47088”
updateUnchangedValuesEveryMillis: 100000
writeValueType: int16
writeMultipleEvenWithSingleRegisterOrCoil: false
writeMaxTries: 3
writeStart: “47088”
bridgeUID: modbus:poller:slave100:107

and the poller-thing code is:

UID: modbus:poller:slave100:107
label: Regular Poll 107
thingTypeUID: modbus:poller
configuration:
start: 47088
length: 1
refresh: 130000
maxTries: 3
cacheMillis: 50
type: holding
bridgeUID: modbus:tcp:71978dd591