Skip to content

Deye SG05LP3: Connection via RS485 Converter #841

Description

@l00k

Description

My inverter: DEYE SUN-20K-SG05LP3-EU-SM2

I was using this integration via WiFi logger (LSW3 / LSW3_32U_5406_1.0B) - mostly good, but with connectivity issues.
So I decided to migrate to wired connection. I bought Waveshare RS485 converter and connected to Modbus port.
Here is converter configuration:

Image

Integration protocol set to Modbus TCP.
After multiple tries of connecting to inverter I've successfuly added my inverter, but only with battery packs set to -1. During intialization detecting batteries fails and set it to 0.
If I specify real value = 5 in advanced options - initialization fails always.

If I do the same procedure with WiFi logger, but with Transparency mode and protocol set to Modbus TCP - batteries are detected properly.

Also notice strange error about battery capacity in logs.

Reproduction Steps

Inverter configuration:
Slave, Modbus SN: 01, Baud rate 9600

Maybe it is channel conflict? (BMS maybe?)

As mentioned in description: connecting via RS485 converter. With specified battery packs (fails entire initialization) or without (just doesn't identify batteries)

Log

Connection via RS485 converter:

2025-10-26 21:38:04.306  async_setup_entry: Coordinator.init -> async_config_entry_first_refresh
2025-10-26 21:38:04.308  DiscoveryProtocol: Send to 192.168.1.83
2025-10-26 21:38:04.814  Scheduling 1 query request: [{'code': 3, 'start': 0, 'end': 22, 'count': 23}] #0
2025-10-26 21:38:04.814  Request 03 ❘ 0x03 ~ 0000 ❘ 0x0000: {'count': 23}
2025-10-26 21:38:04.814  SENT: 73 bc 00 00 00 06 01 03 00 00 00 17
2025-10-26 21:38:04.818  Successful connection!
2025-10-26 21:38:04.911  RECV: 73 bc 00 00 00 31 01 03 2e 00 05 00 01 01 04 32 35 30 32 32 31 36 33 37 38 00 00 00 00 00 00 18 09 d2 07 00 00 21 07 11 51 00 00 10 01 c0 4d 00 00 0d 40 00 03 02 03
2025-10-26 21:38:04.911  DATA: [5, 1, 260, 12853, 12338, 12849, 13875, 14136, 0, 0, 0, 6153, 53767, 0, 8455, 4433, 0, 4097, 49229, 0, 3392, 3, 515]
2025-10-26 21:38:04.912  Returning 1 new value
2025-10-26 21:38:04.912  Scheduling 1 query request: [{'code': 3, 'start': 10002, 'end': 10002, 'count': 1}] #0
2025-10-26 21:38:04.912  Request 03 ❘ 0x03 ~ 10002 ❘ 0x2712: {'count': 1}
2025-10-26 21:38:04.916  SENT: 6a 1d 00 00 00 06 01 03 27 12 00 01
2025-10-26 21:38:18.918  Connection closed. Will try to restart the connection
2025-10-26 21:38:18.921  Successful reconnection! Data expected. Will retry the last request
2025-10-26 21:38:32.920  Connection closed. Will try to restart the connection
2025-10-26 21:38:32.924  Successful reconnection! Data expected. Will retry the last request
2025-10-26 21:38:34.914  DiscoveryProtocol: Send to 192.168.1.83
2025-10-26 21:38:35.417  Closing connection
2025-10-26 21:38:35.418  Unable to read Number of Battery packs. Continuing with the configured value
Traceback (most recent call last):
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 320, in execute
Traceback (most recent call last):
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 320, in execute
    return await self.get_response(code, address, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/common.py", line 28, in wrapper
    return await f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 311, in get_response
    return await self._get_response(code, address, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 304, in _parse_adu_from_tcp_response
    res = await self._send_receive_frame(req)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/common.py", line 44, in wrapper
    return await f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 46, in wrapper
    return await f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 54, in wrapper
    r = await f(*args, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 259, in _send_receive_frame
    return await asyncio.wait_for(self._data_queue.get(), self.timeout * 3 - 1)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/tasks.py", line 507, in wait_for
    return await fut
           ^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/queues.py", line 186, in get
    await getter
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/config/custom_components/solarman/device.py", line 90, in get
    result = await self.execute_bulk(requests, scheduled)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/common.py", line 28, in wrapper
    return await f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
Traceback (most recent call last):
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 320, in execute
    return await self.get_response(code, address, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/common.py", line 28, in wrapper
    return await f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 311, in get_response
    return await self._get_response(code, address, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 304, in _parse_adu_from_tcp_response
    res = await self._send_receive_frame(req)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/common.py", line 44, in wrapper
    return await f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 46, in wrapper
    return await f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 54, in wrapper
    r = await f(*args, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 259, in _send_receive_frame
    return await asyncio.wait_for(self._data_queue.get(), self.timeout * 3 - 1)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/tasks.py", line 507, in wait_for
    return await fut
           ^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/queues.py", line 186, in get
    await getter
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/config/custom_components/solarman/device.py", line 90, in get
    result = await self.execute_bulk(requests, scheduled)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/common.py", line 28, in wrapper
    return await f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
    return await self.get_response(code, address, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/common.py", line 28, in wrapper
    return await f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 311, in get_response
    return await self._get_response(code, address, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 304, in _parse_adu_from_tcp_response
    res = await self._send_receive_frame(req)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/common.py", line 44, in wrapper
    return await f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 46, in wrapper
    return await f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 54, in wrapper
    r = await f(*args, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 259, in _send_receive_frame
    return await asyncio.wait_for(self._data_queue.get(), self.timeout * 3 - 1)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/tasks.py", line 507, in wait_for
    return await fut
           ^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/queues.py", line 186, in get
    await getter
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/config/custom_components/solarman/device.py", line 90, in get
    result = await self.execute_bulk(requests, scheduled)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/common.py", line 28, in wrapper
    return await f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/device.py", line 77, in execute_bulk
    responses[(code, address)] = await self.execute(code, address, count = count)
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/device.py", line 67, in execute
    return await self.modbus.execute(code, address, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 54, in wrapper
    r = await f(*args, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/device.py", line 77, in execute_bulk
    responses[(code, address)] = await self.execute(code, address, count = count)
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/device.py", line 67, in execute
    return await self.modbus.execute(code, address, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 54, in wrapper
    r = await f(*args, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 318, in execute
    async with asyncio.timeout(self.timeout * 6):
               ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/timeouts.py", line 116, in __aexit__
    raise TimeoutError from exc_val
TimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/config/custom_components/solarman/common.py", line 139, in lookup_profile
    if device_type in (*AUTODETECTION_DEYE_4P3[0], *AUTODETECTION_DEYE_1P3[0]) and (response := await request(requests = create_request(*AUTODETECTION_BATTERY_REQUEST_DEYE))) and (p := get_addr_value(response, *AUTODETECTION_BATTERY_NUMBER_DEYE)) is not None:
                                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/device.py", line 96, in get
    if self.profile.parser:
       ^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'parser'
2025-10-26 21:38:36.487  deye_p3.yaml w/ defaults for update_interval: 60, code: 3, min_span: 25, max_size: 125, digits: 6, parameters: {'mod': 0, 'mppt': 2, 'l': 3, 'pack': -1}
2025-10-26 21:38:36.511  Scheduling 5 query requests: [{'code': 3, 'start': 0, 'end': 124, 'count': 125}, {'code': 3, 'start': 125, 'end': 237, 'count': 113}, {'code': 3, 'start': 340, 'end': 341, 'count': 2}, {'code': 3, 'start': 500, 'end': 558, 'count': 59}, {'code': 3, 'start': 586, 'end': 708, 'count': 123}] #0
2025-10-26 21:38:36.511  Request 03 ❘ 0x03 ~ 0000 ❘ 0x0000: {'count': 125}
2025-10-26 21:38:36.512  SENT: 04 6f 00 00 00 06 01 03 00 00 00 7d
2025-10-26 21:38:36.517  Successful connection!
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 318, in execute
    async with asyncio.timeout(self.timeout * 6):
               ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/timeouts.py", line 116, in __aexit__
    raise TimeoutError from exc_val
TimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/config/custom_components/solarman/common.py", line 139, in lookup_profile
    if device_type in (*AUTODETECTION_DEYE_4P3[0], *AUTODETECTION_DEYE_1P3[0]) and (response := await request(requests = create_request(*AUTODETECTION_BATTERY_REQUEST_DEYE))) and (p := get_addr_value(response, *AUTODETECTION_BATTERY_NUMBER_DEYE)) is not None:
                                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/device.py", line 96, in get
    if self.profile.parser:
       ^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'parser'
  File "/config/custom_components/solarman/device.py", line 77, in execute_bulk
    responses[(code, address)] = await self.execute(code, address, count = count)
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/device.py", line 67, in execute
    return await self.modbus.execute(code, address, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 54, in wrapper
    r = await f(*args, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/pysolarman/__init__.py", line 318, in execute
    async with asyncio.timeout(self.timeout * 6):
               ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/asyncio/timeouts.py", line 116, in __aexit__
    raise TimeoutError from exc_val
TimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/config/custom_components/solarman/common.py", line 139, in lookup_profile
    if device_type in (*AUTODETECTION_DEYE_4P3[0], *AUTODETECTION_DEYE_1P3[0]) and (response := await request(requests = create_request(*AUTODETECTION_BATTERY_REQUEST_DEYE))) and (p := get_addr_value(response, *AUTODETECTION_BATTERY_NUMBER_DEYE)) is not None:
                                                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/solarman/device.py", line 96, in get
    if self.profile.parser:
       ^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'parser'
2025-10-26 21:38:41.230  RECV: 04 6f 00 00 00 fd 01 03 fa 00 05 00 01 01 04 32 35 30 32 32 31 36 33 37 38 00 00 00 00 00 00 18 09 d2 07 00 00 21 07 11 51 00 00 10 01 c0 4d 00 00 0d 40 00 03 02 03 00 09 00 07 00 00 00 00 00 00 00 05 00 83 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff 19 0a 1a 15 26 18 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 60 00 01 00 64 02 58 ff ff 00 00 04 4c 00 01 00 00 ff ff ff ff ff ff 00 00 00 01 ff ff ff ff ff ff ff ff 00 00 ff ff 00 00 ff ff ff ff ff ff 00 00 00 01 16 80 16 80 15 90 4e 20 11 94 00 14 00 5a 00 00 00 05 01 2c 01 5e ff ff 00 01 00 01 00 0c 03 de 00 0a 00 28 00 14 11 f8 14 50 12 8e 00 f0 00 00 13 24 00 1e
2025-10-26 21:38:41.231  DATA: [5, 1, 260, 12853, 12338, 12849, 13875, 14136, 0, 0, 0, 6153, 53767, 0, 8455, 4433, 0, 4097, 49229, 0, 3392, 3, 515, 9, 7, 0, 0, 0, 5, 131, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 65535, 6410, 6677, 9752, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 96, 1, 100, 600, 65535, 0, 1100, 1, 0, 65535, 65535, 65535, 0, 1, 65535, 65535, 65535, 65535, 0, 65535, 0, 65535, 65535, 65535, 0, 1, 5760, 5760, 5520, 20000, 4500, 20, 90, 0, 5, 300, 350, 65535, 1, 1, 12, 990, 10, 40, 20, 4600, 5200, 4750, 240, 0, 4900, 30]
2025-10-26 21:38:41.231  Request 03 ❘ 0x03 ~ 0125 ❘ 0x007D: {'count': 113}
2025-10-26 21:38:41.231  SENT: 26 8f 00 00 00 06 01 03 00 7d 00 71
2025-10-26 21:38:41.633  RECV: 26 8f 00 00 00 e5 01 03 e2 00 28 13 24 00 1e 00 c8 00 00 00 01 15 7c 00 00 00 00 13 ec 00 5f 15 18 00 64 00 01 01 f4 00 01 00 01 00 01 4e 20 00 00 00 00 00 ff 00 01 00 00 02 58 05 78 05 dc 06 a4 08 98 23 28 23 28 23 28 23 28 23 28 23 28 13 24 13 24 13 24 13 24 13 24 13 24 00 32 00 19 00 55 00 19 00 19 00 32 00 01 00 00 00 00 00 00 00 00 00 01 2a 38 ff ff 00 3c 00 01 00 19 00 00 00 01 0a 55 07 a3 14 50 12 8e 00 00 1f 40 23 28 00 64 03 e8 00 00 00 00 9c 40 00 00 4e 20 00 00 03 20 00 00 00 23 00 03 01 b8 00 00 00 37 00 03 a2 0e 00 00 15 90 11 30 03 e8 03 e8 00 39 14 6e ff d0 04 7e 03 fc 03 fc 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 00 0a ef 00 00 ff ff 07 d0 ff ff 0c 1c ff ff 00 00 00 00 00 00
2025-10-26 21:38:41.634  DATA: [40, 4900, 30, 200, 0, 1, 5500, 0, 0, 5100, 95, 5400, 100, 1, 500, 1, 1, 1, 20000, 0, 0, 255, 1, 0, 600, 1400, 1500, 1700, 2200, 9000, 9000, 9000, 9000, 9000, 9000, 4900, 4900, 4900, 4900, 4900, 4900, 50, 25, 85, 25, 25, 50, 1, 0, 0, 0, 0, 1, 10808, 65535, 60, 1, 25, 0, 1, 2645, 1955, 5200, 4750, 0, 8000, 9000, 100, 1000, 0, 0, 40000, 0, 20000, 0, 800, 0, 35, 3, 440, 0, 55, 3, 41486, 0, 5520, 4400, 1000, 1000, 57, 5230, 65488, 1150, 1020, 1020, 0, 0, 0, 12, 0, 0, 0, 0, 2799, 0, 65535, 2000, 65535, 3100, 65535, 0, 0, 0]
2025-10-26 21:38:41.634  Request 03 ❘ 0x03 ~ 0340 ❘ 0x0154: {'count': 2}
2025-10-26 21:38:41.634  SENT: 5d 5f 00 00 00 06 01 03 01 54 00 02
2025-10-26 21:38:41.800  RECV: 5d 5f 00 00 00 07 01 03 04 4e 20 00 00
2025-10-26 21:38:41.801  DATA: [20000, 0]
2025-10-26 21:38:41.801  Request 03 ❘ 0x03 ~ 0500 ❘ 0x01F4: {'count': 59}
2025-10-26 21:38:41.801  SENT: 93 da 00 00 00 06 01 03 01 f4 00 3b
2025-10-26 21:38:42.089  RECV: 93 da 00 00 00 79 01 03 76 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 03 00 00 01 20 00 ee 19 b6 00 00 19 c7 00 00 00 ce 00 00 29 76 00 00 00 0d 00 00 02 45 3e 71 00 00 01 ba 00 00 00 00 00 00 00 00 17 3e 00 00 00 00 00 00 00 00 00 00 04 e2 05 dd 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 01 08 00 00 01 00 05 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-26 21:38:42.089  DATA: [2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 3, 0, 288, 238, 6582, 0, 6599, 0, 206, 0, 10614, 0, 13, 0, 581, 15985, 0, 442, 0, 0, 0, 0, 5950, 0, 0, 0, 0, 0, 1250, 1501, 0, 0, 1, 0, 0, 0, 0, 1, 2048, 1, 5, 0, 0, 0, 0, 0, 0]
2025-10-26 21:38:42.090  Request 03 ❘ 0x03 ~ 0586 ❘ 0x024A: {'count': 123}
2025-10-26 21:38:42.090  SENT: 2a 54 00 00 00 06 01 03 02 4a 00 7b
2025-10-26 21:38:42.512  RECV: 2a 54 00 00 00 f9 01 03 f6 04 7e 14 7e 00 39 00 00 0a 18 09 a3 47 bd 00 00 09 a6 00 00 00 00 00 00 09 8c 09 90 09 90 00 00 00 00 00 00 00 03 00 16 00 00 00 19 00 00 13 88 01 85 02 03 00 6a 00 14 00 0e 00 0c 00 00 00 02 00 00 00 02 00 00 00 00 00 03 00 16 00 00 00 19 00 00 09 90 09 91 09 80 01 54 01 cc 00 b4 03 2f 04 86 01 d5 09 8a 09 8a 13 88 00 00 03 32 04 9c 01 d5 09 a3 09 9d 09 8f 09 8f 00 00 00 00 00 00 03 32 04 9c 01 d5 09 a3 09 a3 13 88 00 00 00 00 00 00 00 00 00 00 00 0a 00 02 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e1 00 00 00 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-26 21:38:42.513  DATA: [1150, 5246, 57, 0, 2584, 2467, 18365, 0, 2470, 0, 0, 0, 2444, 2448, 2448, 0, 0, 0, 3, 22, 0, 25, 0, 5000, 389, 515, 106, 20, 14, 12, 0, 2, 0, 2, 0, 0, 3, 22, 0, 25, 0, 2448, 2449, 2432, 340, 460, 180, 815, 1158, 469, 2442, 2442, 5000, 0, 818, 1180, 469, 2467, 2461, 2447, 2447, 0, 0, 0, 818, 1180, 469, 2467, 2467, 5000, 0, 0, 0, 0, 0, 10, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
2025-10-26 21:38:42.514  self_check_time_number: 65535 is outside of range: {'min': 0, 'max': 1000, 'default': 0}
2025-10-26 21:38:42.514  battery_capacity_number: 20000 is outside of range: {'min': 0, 'max': 2000}
2025-10-26 21:38:42.516  off_grid_switch: 65535 is outside of range: {'min': 0, 'max': 1}
2025-10-26 21:38:42.519  generator_energy_sensor validation failed, triggered by state: 0.0 with conditions: {'min': 0.1}
2025-10-26 21:38:42.519  battery_corrected_capacity_sensor: 18365 is outside of range: {'min': 0, 'max': 3000}
2025-10-26 21:38:42.522  Returning 216 new values
2025-10-26 21:38:42.522  Finished fetching Inverter data in 6.013 seconds (success: True)
2025-10-26 21:38:42.522  {'identifiers': {('solarman', '01K8H3TZFBTJAKWT6F55HDNMAG'), ('solarman', '0')}, 'connections': set(), 'configuration_url': 'http://192.168.1.83/config_hide.html', 'serial_number': '0', 'manufacturer': 'Deye', 'model': 'SG0*LP3', 'name': 'Inverter'}
2025-10-26 21:38:42.522  async_setup_entry: async_migrate_entries
2025-10-26 21:38:42.523  async_setup_entry: hass.config_entries.async_forward_entry_setups: [<EntityPlatforms.SENSOR: 'sensor'>, <EntityPlatforms.BINARY_SENSOR: 'binary_sensor'>, <EntityPlatforms.NUMBER: 'number'>, <EntityPlatforms.SWITCH: 'switch'>, <EntityPlatforms.BUTTON: 'button'>, <EntityPlatforms.SELECT: 'select'>, <EntityPlatforms.DATETIME: 'datetime'>, <EntityPlatforms.TIME: 'time'>]

(...discovery entities etc. - due github limit I had to remove it...)

2025-10-26 21:38:47.171  Scheduling 1 query request: [{'code': 3, 'start': 586, 'end': 708, 'count': 123}] #5
2025-10-26 21:38:47.172  Request 03 ❘ 0x03 ~ 0586 ❘ 0x024A: {'count': 123}
2025-10-26 21:38:47.172  SENT: 31 ac 00 00 00 06 01 03 02 4a 00 7b
2025-10-26 21:38:47.468  RECV: 31 ac 00 00 00 f9 01 03 f6 04 7e 14 7e 00 39 00 00 09 ff 09 84 47 bd 00 00 09 87 00 00 00 00 00 00 09 8d 09 93 09 91 00 00 00 00 00 00 00 02 00 07 00 01 00 0a 00 00 13 8c 01 7f 02 02 00 69 00 14 00 0e 00 0c 00 00 00 02 00 00 00 02 00 00 00 00 00 02 00 07 00 01 00 0a 00 00 09 93 09 98 09 87 01 40 01 ea 00 aa 03 18 04 8a 01 d3 09 75 09 75 13 8c 00 00 03 1a 04 91 01 d4 09 7f 09 9b 09 92 09 8f 00 00 00 00 00 00 03 1a 04 91 01 d4 09 7f 09 7f 13 8c 00 00 00 00 00 00 00 00 00 00 00 0a 00 02 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e1 00 00 00 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-26 21:38:47.468  DATA: [1150, 5246, 57, 0, 2559, 2436, 18365, 0, 2439, 0, 0, 0, 2445, 2451, 2449, 0, 0, 0, 2, 7, 1, 10, 0, 5004, 383, 514, 105, 20, 14, 12, 0, 2, 0, 2, 0, 0, 2, 7, 1, 10, 0, 2451, 2456, 2439, 320, 490, 170, 792, 1162, 467, 2421, 2421, 5004, 0, 794, 1169, 468, 2431, 2459, 2450, 2447, 0, 0, 0, 794, 1169, 468, 2431, 2431, 5004, 0, 0, 0, 0, 0, 10, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
2025-10-26 21:38:47.469  battery_corrected_capacity_sensor: 18365 is outside of range: {'min': 0, 'max': 3000}
2025-10-26 21:38:47.469  Returning 67 new values
2025-10-26 21:38:47.470  Finished fetching Inverter data in 0.301 seconds (success: True)
2025-10-26 21:38:52.172  Scheduling 1 query request: [{'code': 3, 'start': 586, 'end': 708, 'count': 123}] #10
2025-10-26 21:38:52.172  Request 03 ❘ 0x03 ~ 0586 ❘ 0x024A: {'count': 123}
2025-10-26 21:38:52.173  SENT: 34 22 00 00 00 06 01 03 02 4a 00 7b
2025-10-26 21:38:52.476  RECV: 34 22 00 00 00 f9 01 03 f6 04 7e 14 7e 00 39 00 00 0a 0d 09 bf 47 bd 00 00 09 c3 00 00 00 00 00 00 09 8d 09 97 09 8f 00 00 00 00 00 00 00 1b 00 24 00 1a 00 59 00 00 13 88 01 83 02 23 00 6d 00 14 00 0e 00 0c 00 00 00 03 00 00 00 03 00 00 00 00 00 1b 00 24 00 1a 00 59 00 00 09 92 09 96 09 86 01 54 01 cc 00 d2 03 15 04 ce 01 ed 09 d0 09 d0 13 88 00 00 03 30 04 f2 02 07 0a 29 09 96 09 88 09 89 00 00 00 00 00 00 03 30 04 f2 02 07 0a 29 0a 29 13 88 00 00 00 00 00 00 00 00 00 00 00 0a 00 02 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0 00 00 00 9b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2025-10-26 21:38:52.477  DATA: [1150, 5246, 57, 0, 2573, 2495, 18365, 0, 2499, 0, 0, 0, 2445, 2455, 2447, 0, 0, 0, 27, 36, 26, 89, 0, 5000, 387, 547, 109, 20, 14, 12, 0, 3, 0, 3, 0, 0, 27, 36, 26, 89, 0, 2450, 2454, 2438, 340, 460, 210, 789, 1230, 493, 2512, 2512, 5000, 0, 816, 1266, 519, 2601, 2454, 2440, 2441, 0, 0, 0, 816, 1266, 519, 2601, 2601, 5000, 0, 0, 0, 0, 0, 10, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
2025-10-26 21:38:52.478  battery_corrected_capacity_sensor: 18365 is outside of range: {'min': 0, 'max': 3000}

Version

25.08.16

Home Assistant Core Version

2025.10.4

Home Assistant Operating System Version

16.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingduplicateThis issue or pull request already exists

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions