Wait… what? How can I possible check that?
Hi @Mathieu7, disconnecting in HA doesn’t really say anything about the connection itself. It will also disconnect when there is an error, etc.
You’ll probably have to take a chance and possibly return it.
Just want to mention that I managed to get the David’s version of solarman stick logger working on my ESI series Sofar Hybrid Inverter.
Dear David,
Although I am not having my hands on my HA green yet, I am preparing to get my Deye SUN12 integrated in HA and of course your library seems the best match, especially as I do have an LSE-3 logger
As I have the current problem that the LSE is NOT delivering battery information (number of connected batteries, serial numbers etc.) into Deye cloud (which is just insane imho, because the LSW-3 is delivering this information to the cloudservice) I wanted to ask the following: does for your integration the LSE-3 (Ethernet logger) read and provide battery information for HA? Best, Seb
Hi guys,
Firstly thank you to @davidrapan for this great integration, i have been using it for long time perfectly with my SP3000 Inverter. But for the last few days it has stopped working and all sensors are not available. This morning i tried to delete the Inverter and then restarted HA and re installed the integration, but still not working. Is it anything to do with the clock time change on Sunday night…?
does for your integration the LSE-3 (Ethernet logger) read and provide battery information for HA?
Hi @lucullus, yes it should work w/ Ethernet Logger too.
Is it anything to do with the clock time change on Sunday night…?
Hi @angusc, I don’t think it’s related. First, try to make sure that the HA is still able to establish a connection to the inverter IP, for example using the ping command. And what does the debug log show?
Ping is good to the connector. But i notice the Solarman app is not getting data either. The connector is online but the Inverter shows off line.
And what does the debug log show?
Good evening David,
I installed a new machine with home assistant and your integration a couple of days ago. The version of home assistant is 2025.4.0 and the version of your integration is 25.03.18.
Every thirty minutes the Logger disconnects from the wifi and I have to turn off home assistant for a minute to reconnect the logger to the wifi. I tried not to turn off home assistant for an hour and it does not connect. the configuration is deye_hybryd.yaml
What could it be?
I set update_interval to 15 in the yaml file in all the values that were 5.
With the other integration of Stefhan it has worked since December 2024, but yours is much further ahead.
Hello, I’m excited to get this going ( I want to heat my pool when battery is charged…) but I’m having a bit of difficulty understanding what to do with an error on initialisation. I’d be very grateful for any suggestions.
I have. Sofar ME3000sp with WiFi stick. My serial number is 806789129, so I’m not sure if this means V4. I don’t know of any firmware upgrades…
Here is my error code and logs.
Failed setup, will retry: Modbus exception response: 0x05
This error originated from a custom integration.
Logger: homeassistant
Source: custom_components/solarman/discovery.py:31
integration: Solarman (documentation, issues)
First occurred: 13:34:11 (34 occurrences)
Last logged: 14:03:25
Error doing job: Exception in callback _SelectorDatagramTransport._read_ready() (None)
Traceback (most recent call last):
File “/usr/local/lib/python3.13/asyncio/events.py”, line 89, in _run
self._context.run(self._callback, *self._args)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/asyncio/selector_events.py”, line 1241, in _read_ready
self._protocol.datagram_received(data, addr)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File “/config/custom_components/solarman/discovery.py”, line 31, in datagram_received
serial = int(data[2])
ValueError: invalid literal for int() with base 10: ‘Solar-WiFi’
Hi @Francesco78, not sure, what does the debug log show?
2025-04-04 18:12:10.240 DEBUG (MainThread) [custom_components.solarman.device] [2929280545] Scheduling 2 query requests. ^1590
2025-04-04 18:12:10.240 DEBUG (MainThread) [custom_components.solarman.device] [2929280545] Querying 03 ❘ 0x03 ~ 0043 - 0113 ❘ 0x002B - 0x0071 #071 ...
2025-04-04 18:12:10.240 DEBUG (MainThread) [custom_components.solarman.pysolarman.pysolarman] [2929280545] SENT: a5 17 00 10 45 53 00 21 46 99 ae 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 03 00 2b 00 47 75 f0 4a 15
2025-04-04 18:12:10.463 DEBUG (MainThread) [custom_components.solarman.pysolarman.pysolarman] [2929280545] RECD: a5 a1 00 10 15 53 9e 21 46 99 ae 02 01 03 96 ae 00 94 01 00 00 d6 6e 41 67 01 03 8e 00 01 00 00 00 01 00 00 00 00 00 00 00 00 ea 60 00 00 00 00 19 64 00 01 00 00 00 0c 00 01 00 01 00 02 00 ca 00 fa 00 00 47 34 00 00 03 ac 01 ac 02 f0 42 54 00 00 00 46 00 20 26 bb 00 00 22 3a 00 00 00 03 00 88 0a 2f 13 81 00 00 14 06 00 00 00 00 00 44 3d 60 00 00 24 ac 00 00 00 00 05 af 05 76 00 00 00 01 07 d0 00 00 56 1e 00 00 33 56 00 00 0b 01 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 01 04 09 87 00 0a 09 67 00 09 00 00 ba a0 f7 15
2025-04-04 18:12:10.463 DEBUG (MainThread) [pymodbus.logging] Processing: 0x1 0x3 0x8e 0x0 0x1 0x0 0x0 0x0 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xea 0x60 0x0 0x0 0x0 0x0 0x19 0x64 0x0 0x1 0x0 0x0 0x0 0xc 0x0 0x1 0x0 0x1 0x0 0x2 0x0 0xca 0x0 0xfa 0x0 0x0 0x47 0x34 0x0 0x0 0x3 0xac 0x1 0xac 0x2 0xf0 0x42 0x54 0x0 0x0 0x0 0x46 0x0 0x20 0x26 0xbb 0x0 0x0 0x22 0x3a 0x0 0x0 0x0 0x3 0x0 0x88 0xa 0x2f 0x13 0x81 0x0 0x0 0x14 0x6 0x0 0x0 0x0 0x0 0x0 0x44 0x3d 0x60 0x0 0x0 0x24 0xac 0x0 0x0 0x0 0x0 0x5 0xaf 0x5 0x76 0x0 0x0 0x0 0x1 0x7 0xd0 0x0 0x0 0x56 0x1e 0x0 0x0 0x33 0x56 0x0 0x0 0xb 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x1 0x4 0x9 0x87 0x0 0xa 0x9 0x67 0x0 0x9 0x0 0x0 0xba 0xa0
2025-04-04 18:12:10.464 DEBUG (MainThread) [pymodbus.logging] decoded PDU function_code(3 sub -1) -> ReadHoldingRegistersResponse(dev_id=0, transaction_id=0, address=0, count=0, bits=[], registers=[1, 0, 1, 0, 0, 0, 0, 60000, 0, 0, 6500, 1, 0, 12, 1, 1, 2, 202, 250, 0, 18228, 0, 940, 428, 752, 16980, 0, 70, 32, 9915, 0, 8762, 0, 3, 136, 2607, 4993, 0, 5126, 0, 0, 68, 15712, 0, 9388, 0, 0, 1455, 1398, 0, 1, 2000, 0, 22046, 0, 13142, 0, 2817, 0, 0, 0, 0, 0, 0, 240, 260, 2439, 10, 2407, 9, 0], status=1)
2025-04-04 18:12:10.464 DEBUG (MainThread) [pymodbus.logging] Frame advanced, resetting header!!
2025-04-04 18:12:10.464 DEBUG (MainThread) [custom_components.solarman.device] [2929280545] Querying 03 ❘ 0x03 ~ 0043 - 0113 ❘ 0x002B - 0x0071 #071 succeeded
2025-04-04 18:12:10.464 DEBUG (MainThread) [custom_components.solarman.device] [2929280545] Querying 03 ❘ 0x03 ~ 0150 - 0196 ❘ 0x0096 - 0x00C4 #047 ...
2025-04-04 18:12:10.464 DEBUG (MainThread) [custom_components.solarman.pysolarman.pysolarman] [2929280545] SENT: a5 17 00 10 45 54 00 21 46 99 ae 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 03 00 96 00 2f e4 3a 57 15
2025-04-04 18:12:10.633 DEBUG (MainThread) [custom_components.solarman.pysolarman.pysolarman] [2929280545] RECD: a5 71 00 10 15 54 9f 21 46 99 ae 02 01 03 96 ae 00 94 01 00 00 d6 6e 41 67 01 03 5e 09 01 00 00 09 01 00 00 09 00 00 00 09 00 09 28 00 00 00 00 00 b0 00 00 01 91 00 00 00 b4 00 00 00 00 fe 9f 00 00 ff 97 ff 97 00 00 ff 97 01 77 00 00 01 77 01 0e 00 00 01 0e 00 16 00 00 00 6b 04 88 15 b7 00 64 00 16 00 f2 00 ea 00 00 00 00 ff e7 ff d3 13 84 13 84 00 01 00 10 00 00 2a f8 66 15
2025-04-04 18:12:10.634 DEBUG (MainThread) [pymodbus.logging] Processing: 0x1 0x3 0x5e 0x9 0x1 0x0 0x0 0x9 0x1 0x0 0x0 0x9 0x0 0x0 0x0 0x9 0x0 0x9 0x28 0x0 0x0 0x0 0x0 0x0 0xb0 0x0 0x0 0x1 0x91 0x0 0x0 0x0 0xb4 0x0 0x0 0x0 0x0 0xfe 0x9f 0x0 0x0 0xff 0x97 0xff 0x97 0x0 0x0 0xff 0x97 0x1 0x77 0x0 0x0 0x1 0x77 0x1 0xe 0x0 0x0 0x1 0xe 0x0 0x16 0x0 0x0 0x0 0x6b 0x4 0x88 0x15 0xb7 0x0 0x64 0x0 0x16 0x0 0xf2 0x0 0xea 0x0 0x0 0x0 0x0 0xff 0xe7 0xff 0xd3 0x13 0x84 0x13 0x84 0x0 0x1 0x0 0x10 0x0 0x0 0x2a 0xf8
2025-04-04 18:12:10.634 DEBUG (MainThread) [pymodbus.logging] decoded PDU function_code(3 sub -1) -> ReadHoldingRegistersResponse(dev_id=0, transaction_id=0, address=0, count=0, bits=[], registers=[2305, 0, 2305, 0, 2304, 0, 2304, 2344, 0, 0, 176, 0, 401, 0, 180, 0, 0, 65183, 0, 65431, 65431, 0, 65431, 375, 0, 375, 270, 0, 270, 22, 0, 107, 1160, 5559, 100, 22, 242, 234, 0, 0, 65511, 65491, 4996, 4996, 1, 16, 0], status=1)
2025-04-04 18:12:10.634 DEBUG (MainThread) [pymodbus.logging] Frame advanced, resetting header!!
2025-04-04 18:12:10.634 DEBUG (MainThread) [custom_components.solarman.device] [2929280545] Querying 03 ❘ 0x03 ~ 0150 - 0196 ❘ 0x0096 - 0x00C4 #047 succeeded
2025-04-04 18:12:10.635 DEBUG (MainThread) [custom_components.solarman.parser] Value: 0.0 of total_generation_sensor validation failed: {'min': 0.1}
2025-04-04 18:12:10.636 DEBUG (MainThread) [custom_components.solarman.device] [2929280545] Returning 58 new values. [Previous State: Connected (1)]
2025-04-04 18:12:10.636 DEBUG (MainThread) [custom_components.solarman.coordinator] Finished fetching Inverter data in 0.397 seconds (success: True)
2025-04-04 18:12:15.239 DEBUG (MainThread) [custom_components.solarman.device] [2929280545] Scheduling 2 query requests. ^1595
2025-04-04 18:12:15.239 DEBUG (MainThread) [custom_components.solarman.device] [2929280545] Querying 03 ❘ 0x03 ~ 0059 - 0113 ❘ 0x003B - 0x0071 #055 ...
2025-04-04 18:12:15.239 DEBUG (MainThread) [custom_components.solarman.pysolarman.pysolarman] [2929280545] SENT: a5 17 00 10 45 55 00 21 46 99 ae 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 03 00 3b 00 37 75 d1 2d 15
2025-04-04 18:12:15.430 DEBUG (MainThread) [custom_components.solarman.pysolarman.pysolarman] [2929280545] RECD: a5 81 00 10 15 55 a0 21 46 99 ae 02 01 08 96 ae 00 99 01 00 00 d6 6e 41 67 01 03 6e 00 02 00 ca 00 fa 00 00 47 34 00 00 03 ac 01 ac 02 f0 42 54 00 00 00 46 00 20 26 bb 00 00 22 3a 00 00 00 03 00 88 0a 2f 13 84 00 00 14 06 00 00 00 00 00 44 3d 60 00 00 24 ac 00 00 00 00 05 af 05 76 00 00 00 01 07 d0 00 00 56 1e 00 00 33 56 00 00 0b 01 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 01 04 09 87 00 0a 09 52 00 09 00 00 aa d2 fd 15
2025-04-04 18:12:15.430 DEBUG (MainThread) [pymodbus.logging] Processing: 0x1 0x3 0x6e 0x0 0x2 0x0 0xca 0x0 0xfa 0x0 0x0 0x47 0x34 0x0 0x0 0x3 0xac 0x1 0xac 0x2 0xf0 0x42 0x54 0x0 0x0 0x0 0x46 0x0 0x20 0x26 0xbb 0x0 0x0 0x22 0x3a 0x0 0x0 0x0 0x3 0x0 0x88 0xa 0x2f 0x13 0x84 0x0 0x0 0x14 0x6 0x0 0x0 0x0 0x0 0x0 0x44 0x3d 0x60 0x0 0x0 0x24 0xac 0x0 0x0 0x0 0x0 0x5 0xaf 0x5 0x76 0x0 0x0 0x0 0x1 0x7 0xd0 0x0 0x0 0x56 0x1e 0x0 0x0 0x33 0x56 0x0 0x0 0xb 0x1 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0xf0 0x1 0x4 0x9 0x87 0x0 0xa 0x9 0x52 0x0 0x9 0x0 0x0 0xaa 0xd2
2025-04-04 18:12:15.430 DEBUG (MainThread) [pymodbus.logging] decoded PDU function_code(3 sub -1) -> ReadHoldingRegistersResponse(dev_id=0, transaction_id=0, address=0, count=0, bits=[], registers=[2, 202, 250, 0, 18228, 0, 940, 428, 752, 16980, 0, 70, 32, 9915, 0, 8762, 0, 3, 136, 2607, 4996, 0, 5126, 0, 0, 68, 15712, 0, 9388, 0, 0, 1455, 1398, 0, 1, 2000, 0, 22046, 0, 13142, 0, 2817, 0, 0, 0, 0, 0, 0, 240, 260, 2439, 10, 2386, 9, 0], status=1)
2025-04-04 18:12:15.431 DEBUG (MainThread) [pymodbus.logging] Frame advanced, resetting header!!
Restart Home Assistant and start log debug for send link txt.
Hey,
first of all: thx to @David Rapan for your work! Installed like a charm on my HA green and everythign went well with the inverter SN. However, after 4 days I had not data from the Deye anymore in the Dashboard → error msg that the wrong SN is inserted and that the inserted (inverter) SN does not correspond with the SN the system gets. Then I had to change the SN from the inverter SN to the logger (LSW3) SN and since then it is working again.
Nonetheless I wonder how this change could happen? Any explanation for it? Best, S.
hi, i have a 20kw zcs hybrid inverter pair with 20kw/h weco battery. I was wondering if with this integration is possible to control the charde and discharge time based on electricity tariff, also if is possible to set the battery discharge %.
The zcs inverter should be a rebrand of sofar inverter and i am using a classic solarman wifi stick.
Thanks for the fantastic work!
Hi. In the integration there are only sensor entities, is it possible to make some activations via the remote control option?
I am trying to automate the prosses by disabling or enabling solar sell and or changing the system work mode from “zero export to CT’ and Selling first, is it possible
Of possible I would like to use all fictions in. Remote control