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

Hi oschwabe,

sorry for the late reply I was not at home.
Yes, an update to OH 3.3 solved my problem. I can now connect to the inverter an recieve all data I want.
If you need I can share my config.

Hello,

I have managed to connect to SUN2000-5KTL-M1 using WLAN-FE Smart Dongle and modbus TCP.
I am running Openhab version 3.2 on RPI3B+. I have a few items defined and they are updated by the binding. However, I have a regular warning message in the log as follows:

2022-07-07 10:24:59.416 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Try 1 out of 3 failed when executing request (ModbusReadRequestBlueprint [slaveId=1, functionCode=READ_MULTIPLE_REGISTERS, start=32069, length=19, 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 ac0bf193-1979-4cc3-a33f-77daca5f2741]
2022-07-07 10:25:34.952 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Try 1 out of 3 failed when executing request (ModbusReadRequestBlueprint [slaveId=1, functionCode=READ_MULTIPLE_REGISTERS, start=32069, length=19, 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 87f71476-92c2-46cd-b094-769628794c59]
2022-07-07 10:26:10.071 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Try 1 out of 3 failed when executing request (ModbusReadRequestBlueprint [slaveId=1, functionCode=READ_MULTIPLE_REGISTERS, start=32069, length=19, 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 34e09ba7-184a-458b-8ac9-5a2dff3e98ba]

Is there a way to tune the modbus setting in OpenHab to avoid the warning ( shall I move to version 3.3 stable)? My current set up is as follows:

UID: modbus:tcp:4801b83789
label: Modbus TCP Slave SUN2000
thingTypeUID: modbus:tcp
configuration:
  rtuEncoded: false
  timeBetweenTransactionsMillis: 1500
  connectMaxTries: 1
  reconnectAfterMillis: 0
  port: 502
  timeBetweenReconnectMillis: 0
  host: 192.168.x.x
  connectTimeoutMillis: 10000
  id: 1
  enableDiscovery: false
UID: modbus:poller:4801b83789:e626774474
label: Modbus SUN2000 Poll105
thingTypeUID: modbus:poller
configuration:
  start: 32069
  length: 19
  refresh: 30000
  maxTries: 3
  cacheMillis: 50
  type: holding
bridgeUID: modbus:tcp:4801b83789

Thank you for any replay

@RafalO I believe you need a afterConnectionDelayMillis option for that thing. Look few posts up:

This was ultimately what I had to add to stabilize dongle behavior. I’d advise disabling retry on poler as well. With 30s poll cycle you better wait for another round, otherwise you risk stressing dongle too much. :wink:

2 Likes

Thank you for indicating. So I need to move to version 3.3 to have afterConnectionDelayMillis option avaiable. Then testing.

I can confirm that after upgrading to v3.3.0 and setting afterConnectionDelayMillis=2000 I do not have warnigs in the log :smiley:

Hello,

I am trying to connect the Huawei Sun2000 8KTL with openhab 3.3 using Modubus TCP
I followed these instructions:

The inverter is displayed under devices with all items. However, no values are displayed. I installed the Thing Modbus TCP Slave and set the local IP 192.168.1.184 of the Huawei WLAN dongle.
I also restarted openhab and the inverters. Without a result.
Does anyone have any idea where to start troubleshooting?
Thanks.

log:set debug org.openhab.binding.modbus

2022-09-09 13:18:16.664 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to UNINITIALIZED
2022-09-09 13:18:16.695 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from UNINITIALIZED to UNINITIALIZED (DISABLED)
2022-09-09 13:18:17.695 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from UNINITIALIZED (DISABLED) to INITIALIZING
2022-09-09 13:18:17.703 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from INITIALIZING to ONLINE
2022-09-09 13:18:41.352 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to OFFLINE
2022-09-09 13:18:41.356 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from OFFLINE to ONLINE
2022-09-09 13:20:03.775 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to UNINITIALIZED
2022-09-09 13:20:03.788 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from UNINITIALIZED to UNINITIALIZED (HANDLER_MISSING_ERROR)
2022-09-09 13:25:18.918 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to OFFLINE
2022-09-09 13:25:18.921 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from OFFLINE to ONLINE
2022-09-09 13:28:08.928 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to OFFLINE
2022-09-09 13:28:08.935 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from OFFLINE to ONLINE
2022-09-09 13:18:16.664 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to UNINITIALIZED
2022-09-09 13:18:16.695 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from UNINITIALIZED to UNINITIALIZED (DISABLED)
2022-09-09 13:18:17.695 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from UNINITIALIZED (DISABLED) to INITIALIZING
2022-09-09 13:18:17.703 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from INITIALIZING to ONLINE
2022-09-09 13:18:41.352 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to OFFLINE
2022-09-09 13:18:41.356 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from OFFLINE to ONLINE
2022-09-09 13:20:03.775 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to UNINITIALIZED
2022-09-09 13:20:03.788 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from UNINITIALIZED to UNINITIALIZED (HANDLER_MISSING_ERROR)
2022-09-09 13:25:18.918 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to OFFLINE
2022-09-09 13:25:18.921 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from OFFLINE to ONLINE
2022-09-09 13:28:08.928 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to OFFLINE
2022-09-09 13:28:08.935 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from OFFLINE to ONLINE
2022-09-09 13:18:16.664 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to UNINITIALIZED
2022-09-09 13:18:16.695 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from UNINITIALIZED to UNINITIALIZED (DISABLED)
2022-09-09 13:18:17.695 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from UNINITIALIZED (DISABLED) to INITIALIZING
2022-09-09 13:18:17.703 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from INITIALIZING to ONLINE
2022-09-09 13:18:41.352 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to OFFLINE
2022-09-09 13:18:41.356 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from OFFLINE to ONLINE
2022-09-09 13:20:03.775 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to UNINITIALIZED
2022-09-09 13:20:03.788 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from UNINITIALIZED to UNINITIALIZED (HANDLER_MISSING_ERROR)
2022-09-09 13:25:18.918 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to OFFLINE
2022-09-09 13:25:18.921 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from OFFLINE to ONLINE
2022-09-09 13:28:08.928 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from ONLINE to OFFLINE
2022-09-09 13:28:08.935 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'modbus:tcp:e10e331a0e' changed from OFFLINE to ONLINE

Hello,

Unfortunately, the log does not provide more information. I am sure the IP of Huawei WiFi Dongle is correct. An item looks like this.

The Modbus TCP interface like this:

Status is online.

Please help me :slight_smile:

You seem to have looked in the events.log
There is an openhab.log as well

I got a message

I opened openhabLog Viewer (Frontail) via browser openhabip:9001
aren’t the data from /var/log/openhab/openhab.log /var/log/openhab/events.log displayed here?

Yes, I think you should see openhab.log here, and that would include messages, good or bad, from the Modbus binding.
Before you can look at your inverter problem you will need to fix the logging.
Can you see any non-event log messages at all, from openHAB core or other bindings?

Thank you for your help!
I opened /var/log/openhab/openhab.log via putty and i could only find this line about modus:
2022-09-12 11:03:01.586 [INFO ] [rt.modbus.internal.ModbusManagerImpl] - Modbus manager activated

Here is the my logfile:
openhab.log (227.6 KB)

You seem tto be having trouble with KNX IP connection, but I don’t think that is connected.

How is your Modbus poller Thing configured?

I only changed the IP under Things\modbus tcp Slave

UID: modbus:tcp:e10e331a0e
label: Modbus TCP Slave
thingTypeUID: modbus:tcp
configuration:
  rtuEncoded: false
  connectMaxTries: 1
  reconnectAfterMillis: 0
  timeBetweenTransactionsMillis: 60
  port: 502
  timeBetweenReconnectMillis: 0
  connectTimeoutMillis: 10000
  host: 192.168.1.184
  afterConnectionDelayMillis: 0
  id: 1
  enableDiscovery: false

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.