New Python plugin: Domoticz SolarEdge_ModbusTCP
Moderator: leecollings
-
AddieJanssen
- Posts: 43
- Joined: Sunday 27 September 2020 16:17
- Target OS: -
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
4. The solaredge_modbus library has been archived and needs attention.
Currently working on replacing this library.
2. The detection of meters and batteries in the meters branch may not work for all inverters.
I introduced the scanner to figure this out. Based on the feedback so far, I have a pretty good understanding on how SolarEdge implemented the Sunspec and how batteries are handled by the different software versions of SolarEdge.
I am planning to release an update of the scanner that will be based on the replacement of the solaredge_modbus library.
Hope to get this out in the next 2 weeks.
Once that is done and we don't see issues with it, I will replace the solaredge_modbus library of the plugin.
Currently working on replacing this library.
2. The detection of meters and batteries in the meters branch may not work for all inverters.
I introduced the scanner to figure this out. Based on the feedback so far, I have a pretty good understanding on how SolarEdge implemented the Sunspec and how batteries are handled by the different software versions of SolarEdge.
I am planning to release an update of the scanner that will be based on the replacement of the solaredge_modbus library.
Hope to get this out in the next 2 weeks.
Once that is done and we don't see issues with it, I will replace the solaredge_modbus library of the plugin.
-
hjzwiers
- Posts: 318
- Joined: Friday 12 January 2018 8:26
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
So basically you say start testing when the new branch is out. I wonder because i have
General: SolarEdge ModbusTCP - Inverter - Storage Control Mode with
0 Disabled
10 Maximize Self Consumption
20 Time of Use
30 Backup Only
40 Remote Control
General: SolarEdge ModbusTCP - Inverter - Remote Control Mode
0 Off
10 Charge from excess PV power only
20 Charge from PV first
30 Charge from PV and AC
40 Maximize export
50 Discharge to match load
60 unused
70 Maximize self consumption
General: SolarEdge ModbusTCP - Inverter - Storage AC Charge Policy
0 Disabled
10 Always Allowed
20 Fixed Energy Limit
30 Percent of Production
Together with all the solaredge functions (Meter1 - Total Imported Energy (Active) , Meter1 - Total Exported Energy (Active), Battery1 - State of Energy, To(+) / From(-)_Battery, Solar_Total and all the others), and some of them i've had to shorten the name ... the names are used in several functions so i dont know how much work the transfer will be .....
General: SolarEdge ModbusTCP - Inverter - Storage Control Mode with
0 Disabled
10 Maximize Self Consumption
20 Time of Use
30 Backup Only
40 Remote Control
General: SolarEdge ModbusTCP - Inverter - Remote Control Mode
0 Off
10 Charge from excess PV power only
20 Charge from PV first
30 Charge from PV and AC
40 Maximize export
50 Discharge to match load
60 unused
70 Maximize self consumption
General: SolarEdge ModbusTCP - Inverter - Storage AC Charge Policy
0 Disabled
10 Always Allowed
20 Fixed Energy Limit
30 Percent of Production
Together with all the solaredge functions (Meter1 - Total Imported Energy (Active) , Meter1 - Total Exported Energy (Active), Battery1 - State of Energy, To(+) / From(-)_Battery, Solar_Total and all the others), and some of them i've had to shorten the name ... the names are used in several functions so i dont know how much work the transfer will be .....
-
AddieJanssen
- Posts: 43
- Joined: Sunday 27 September 2020 16:17
- Target OS: -
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
Sorry, but I don't understand your message...
-
hjzwiers
- Posts: 318
- Joined: Friday 12 January 2018 8:26
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
Sorry i formulated the question the way i did.
I have the inputs that i wrote and there are several outputs to the plugin, i have renamed a number of them and i reused them in a number of scripts.
I was wondering how much work it would be to transfer to your new format.
I have the inputs that i wrote and there are several outputs to the plugin, i have renamed a number of them and i reused them in a number of scripts.
I was wondering how much work it would be to transfer to your new format.
-
AddieJanssen
- Posts: 43
- Joined: Sunday 27 September 2020 16:17
- Target OS: -
- Domoticz version:
- Contact:
SolarEdge Scanner
Hi all,
Although the flu has been slowing me down over the last week, I have been able to do a lot of reading up and investigating.
I think I now have (famous last words...) a pretty good method to scan for all the stuff that is attached to an inverter.
I have updated (and MOVED) the scanner which is using the new methods that need testing.
The scanner, by default, can now dump all registers it has read to the output; it does so by default, but that can be stopped on the command line.
That output enables me to simulate an inverter and test my software against it, without having access to such an inverter!
If you do not want to share that output on a public forum: please share it in a private message with me!
I really need a lot of these dumps to make sure that the software works as expected.
So, although you may have already done this before, would you be so kind to run the latest scanner and share the output with me?
You can find the scanner and instructions how to use it on GitHub: https://github.com/addiejanssen/solaredge-scanner
Thanks again!
Although the flu has been slowing me down over the last week, I have been able to do a lot of reading up and investigating.
I think I now have (famous last words...) a pretty good method to scan for all the stuff that is attached to an inverter.
I have updated (and MOVED) the scanner which is using the new methods that need testing.
The scanner, by default, can now dump all registers it has read to the output; it does so by default, but that can be stopped on the command line.
That output enables me to simulate an inverter and test my software against it, without having access to such an inverter!
If you do not want to share that output on a public forum: please share it in a private message with me!
I really need a lot of these dumps to make sure that the software works as expected.
So, although you may have already done this before, would you be so kind to run the latest scanner and share the output with me?
You can find the scanner and instructions how to use it on GitHub: https://github.com/addiejanssen/solaredge-scanner
Thanks again!
-
hjzwiers
- Posts: 318
- Joined: Friday 12 January 2018 8:26
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
deleted post
Last edited by hjzwiers on Sunday 04 October 2026 14:09, edited 1 time in total.
- imautohuttraeger
- Posts: 397
- Joined: Saturday 14 March 2020 13:40
- Target OS: Raspberry Pi / ODroid
- Domoticz version: latest
- Location: Germany
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
Be assured I will let the scanner run. But most likely I don't have access to my home before Monday.
Stop, look and listen.
-
hjzwiers
- Posts: 318
- Joined: Friday 12 January 2018 8:26
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
deleted post
Last edited by hjzwiers on Sunday 04 October 2026 14:09, edited 1 time in total.
-
hjzwiers
- Posts: 318
- Joined: Friday 12 January 2018 8:26
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
deleted post
Last edited by hjzwiers on Sunday 04 October 2026 14:11, edited 1 time in total.
-
hjzwiers
- Posts: 318
- Joined: Friday 12 January 2018 8:26
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
And a final version of scanner2.py if you want i can send it
Code: Select all
hjz@debian:/opt/stacks/domoticz/config/plugins$ sudo docker exec -it domoticz python3 /opt/domoticz/userdata/plugins/scanner2.py 192.168.2.186 1502
Connecting to server
Connected to server
Looking for SunSpec identifier at address [40000 (0x9c40)] for device [1]
SunSpec identifier registers: [21365, 28243]
SunSpec identifier: [SunS]
The inverter is providing a SunSpec Map
Reading Block at address [40002 (0x9c42)] for device [1]
Block id = [1]
Block length = [65]
Block type = [Common - All SunSpec compliant devices must include this as the first model]
Manufacturer: [SolarEdge ]
Model: [SE10K-RWB48BFN4]
Options: []
Version: [0004.0025.0013]
Device Address: [1]
Registers = [1, 65, 21359, 27745, 29253, 25703, 25888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21317, 12592, 19245, 21079, 16948, 14402, 17998, 13312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12336, 12340, 11824, 12338, 13614, 12336, 12595, 0, 14146, 12341, 12854, 17473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
Reading Block at address [40069 (0x9c85)] for device [1]
Block id = [103]
Block length = [50]
Block type = [Inverter (Three Phase) - Include this model for three phase inverter monitoring]
Registers = [103, 50, 245, 81, 83, 80, 65534, 4001, 4018, 4014, 2309, 2316, 2321, 65535, 5277, 65535, 4998, 65534, 5691, 65535, 44238, 65534, 56264, 65534, 748, 31152, 0, 6532, 65532, 8200, 65535, 5357, 65535, 32768, 4319, 32768, 32768, 65534, 4, 0, 65535, 65535, 65535, 65535, 0, 0, 65535, 65535, 65535, 65535, 0, 0]
Reading Block at address [40121 (0x9cb9)] for device [1]
Block id = [1]
Block length = [65]
Block type = [Common - All SunSpec compliant devices must include this as the first model]
Manufacturer: [SolarEdge]
Model: [MTR-240-3PC1-D-A-MW]
Options: [Export+Import]
Version: [1.0.104]
Device Address: [65535]
Registers = [1, 65, 21359, 27745, 29253, 25703, 25856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19796, 21037, 12852, 12333, 13136, 17201, 11588, 11585, 11597, 22272, 0, 0, 0, 0, 0, 0, 17784, 28783, 29300, 11081, 28016, 28530, 29696, 0, 12590, 12334, 12592, 13312, 0, 0, 0, 0, 13876, 12337, 25908, 25700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65535]
Reading Block at address [40188 (0x9cfc)] for device [1]
Block id = [203]
Block length = [105]
Block type = [wye-connect three phase (abcn) meter]
Registers = [203, 105, 23909, 8943, 6496, 8469, 65532, 2305, 2305, 2309, 2316, 0, 3992, 4008, 4005, 65535, 4999, 65534, 4422, 13026, 11206, 45726, 65533, 4041, 1694, 1109, 1670, 65535, 61495, 64035, 64433, 64100, 65535, 64760, 61446, 63357, 3939, 65534, 11064, 38896, 9732, 27948, 6421, 35294, 3620, 43430, 28698, 38272, 5820, 11505, 10545, 53630, 21042, 40988, 65534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32768, 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, 0, 0, 32768, 0, 0]
Reading Block at address [40295 (0x9d67)] for device [1]
Block id = [701]
Block length = [153]
Block type = [DER AC Measurement - DER AC measurement model.]
Registers = [701, 153, 2, 1, 65535, 1, 0, 0, 65535, 65535, 51, 56, 65515, 92, 32768, 4004, 2312, 0, 49986, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 32768, 32768, 32768, 32768, 32768, 32768, 32768, 32768, 32768, 65535, 65535, 65535, 2312, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 32768, 32768, 32768, 65535, 65535, 65535, 2312, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 32768, 32768, 32768, 65535, 65535, 65535, 2320, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0, 65535, 65533, 1, 65534, 1, 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, 0, 0, 0, 0, 0, 0]
Reading Block at address [40450 (0x9e02)] for device [1]
Block id = [702]
Block length = [50]
Block type = [DER Capacity - DER capacity model.]
Registers = [702, 50, 10600, 8480, 80, 8480, 80, 10600, 6360, 6360, 65535, 65535, 65535, 65535, 2300, 2530, 2024, 65535, 65535, 65535, 0, 1, 2, 65535, 63487, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0, 65534, 0, 0, 65535, 0, 0]
Reading Block at address [40502 (0x9e36)] for device [1]
Block id = [703]
Block length = [17]
Block type = [Enter Service - Enter service model.]
Registers = [703, 17, 1, 11000, 9000, 0, 50100, 0, 49900, 0, 60, 0, 0, 0, 300, 65535, 65535, 65534, 65533]
Reading Block at address [40521 (0x9e49)] for device [1]
Block id = [704]
Block length = [65]
Block type = [DER AC Controls - DER AC controls model.]
Registers = [704, 65, 0, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0, 0, 65535, 65535, 32768, 0, 65535, 32768, 65535, 65535, 65535, 65535, 65535, 0, 0, 65535, 0, 0, 32768, 0, 0, 32768, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65533, 65534, 0, 65534, 0, 65534, 1000, 0, 65535, 65535, 65535, 65535, 65535, 65535]
Reading Block at address [40588 (0x9e8c)] for device [1]
Block id = [705]
Block length = [57]
Block type = [DER Volt-Var - DER Volt-Var model.]
Registers = [705, 57, 0, 0, 1, 6, 2, 65535, 65535, 65535, 65535, 65535, 65534, 65534, 65533, 4, 0, 0, 100, 0, 0, 441, 0, 10500, 1, 5000, 1452, 9783, 1452, 9783, 1452, 10217, 64084, 10217, 64084, 12000, 64084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [40647 (0x9ec7)] for device [1]
Block id = [706]
Block length = [47]
Block type = [DER Volt-Watt - DER Volt-Watt model.]
Registers = [706, 47, 0, 0, 1, 6, 2, 65535, 65535, 65535, 65535, 65535, 65534, 0, 65533, 6, 0, 0, 10500, 1, 1000, 100, 10000, 100, 10700, 100, 11000, 100, 11200, 100, 12000, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [40696 (0x9ef8)] for device [1]
Block id = [707]
Block length = [105]
Block type = [DER Trip LV - DER low voltage trip model.]
Registers = [707, 105, 1, 0, 1, 5, 2, 65534, 65533, 1, 2, 7000, 0, 200, 8000, 0, 1950, 0, 8, 55712, 0, 8, 55712, 0, 8, 55712, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [40803 (0x9f63)] for device [1]
Block id = [708]
Block length = [105]
Block type = [DER Trip HV - DER high voltage trip model.]
Registers = [708, 105, 1, 0, 1, 5, 2, 65534, 65533, 1, 5, 11500, 0, 80, 11000, 0, 2000, 17391, 8, 55712, 17391, 8, 55712, 17391, 9, 10176, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [40910 (0x9fce)] for device [1]
Block id = [709]
Block length = [135]
Block type = [DER Trip LF - DER low frequency trip model.]
Registers = [709, 135, 1, 0, 1, 5, 2, 65534, 65533, 1, 1, 0, 4750, 0, 1900, 0, 2000, 8, 55712, 0, 2000, 8, 55712, 0, 2000, 8, 55712, 0, 2000, 8, 55712, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [41047 (0xa057)] for device [1]
Block id = [710]
Block length = [135]
Block type = [DER Trip HF - DER high frequency trip model.]
Registers = [710, 135, 1, 0, 1, 5, 2, 65534, 65533, 1, 5, 0, 5150, 0, 1900, 0, 10000, 8, 55712, 0, 10000, 8, 55712, 0, 10000, 8, 55712, 0, 10000, 8, 55712, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [41184 (0xa0e0)] for device [1]
Block id = [711]
Block length = [32]
Block type = [DER Frequency Droop - DER Frequency Droop model.]
Registers = [711, 32, 0, 0, 1, 2, 65535, 65535, 65535, 65535, 65535, 65533, 65533, 65533, 0, 30000, 0, 30000, 0, 0, 0, 10500, 32768, 1, 0, 0, 0, 0, 0, 0, 0, 0, 32768, 0]
Reading Block at address [41218 (0xa102)] for device [1]
Block id = [712]
Block length = [44]
Block type = [DER Watt-Var - DER Watt-Var model.]
Registers = [712, 44, 0, 0, 1, 6, 2, 65535, 65535, 65535, 65535, 65535, 65534, 65534, 2, 0, 65535, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10000, 0, 0, 0, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [41264 (0xa130)] for device [1]
Block id = [713]
Block length = [7]
Block type = [DER Storage Capacity - DER storage capacity.]
Registers = [713, 7, 65535, 65535, 7444, 65535, 65535, 65534, 65534]
Reading Block at address [41273 (0xa139)] for device [1]
Block id = [65535]
Block length = [0]
Block type = [The End of the block list has been reached]
End of SunSpec MAP
No battery models were found in the SunSpec model list
SolarEdge-specific battery scan:
SolarEdge battery probe at [57600 (0xe100)] for device [1]
Manufacturer [SolarEdge]
Model [Home Battery 48V - 5 modules]
Firmware Version [48V DCDC 3.5.13]
Serial Number [7B0526DA]
Device id [112]
Individual SolarEdge battery registers:
0xe100 (57600) Manufacturer = [SolarEdge] raw=[21359, 27745, 29253, 25703, 25856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
0xe110 (57616) Model = [Home Battery 48V - 5 modules] raw=[18543, 28005, 8258, 24948, 29797, 29305, 8244, 14422, 8237, 8245, 8301, 28516, 30060, 25971, 0, 0]
0xe120 (57632) Firmware Version = [48V DCDC 3.5.13] raw=[13368, 22048, 17475, 17475, 8243, 11829, 11825, 13056, 0, 0, 0, 0, 0, 0, 0, 0]
0xe130 (57648) Serial Number = [7B0526DA] raw=[14146, 12341, 12854, 17473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
0xe140 (57664) Device Address = [112] raw=[112]
0xe141 (57665) SunSpec Device ID = [0] raw=[0]
0xe186 (57734) Status = [262144] raw=[4, 0]
0xe188 (57736) Internal Status = [196608] raw=[3, 0]
Raw identification registers 0xe100-0xe141:
0xe100 (57600) [ 0] = 21359 (0x536f)
0xe101 (57601) [ 1] = 27745 (0x6c61)
0xe102 (57602) [ 2] = 29253 (0x7245)
0xe103 (57603) [ 3] = 25703 (0x6467)
0xe104 (57604) [ 4] = 25856 (0x6500)
0xe105 (57605) [ 5] = 0 (0x0000)
0xe106 (57606) [ 6] = 0 (0x0000)
0xe107 (57607) [ 7] = 0 (0x0000)
0xe108 (57608) [ 8] = 0 (0x0000)
0xe109 (57609) [ 9] = 0 (0x0000)
0xe10a (57610) [ 10] = 0 (0x0000)
0xe10b (57611) [ 11] = 0 (0x0000)
0xe10c (57612) [ 12] = 0 (0x0000)
0xe10d (57613) [ 13] = 0 (0x0000)
0xe10e (57614) [ 14] = 0 (0x0000)
0xe10f (57615) [ 15] = 0 (0x0000)
0xe110 (57616) [ 16] = 18543 (0x486f)
0xe111 (57617) [ 17] = 28005 (0x6d65)
0xe112 (57618) [ 18] = 8258 (0x2042)
0xe113 (57619) [ 19] = 24948 (0x6174)
0xe114 (57620) [ 20] = 29797 (0x7465)
0xe115 (57621) [ 21] = 29305 (0x7279)
0xe116 (57622) [ 22] = 8244 (0x2034)
0xe117 (57623) [ 23] = 14422 (0x3856)
0xe118 (57624) [ 24] = 8237 (0x202d)
0xe119 (57625) [ 25] = 8245 (0x2035)
0xe11a (57626) [ 26] = 8301 (0x206d)
0xe11b (57627) [ 27] = 28516 (0x6f64)
0xe11c (57628) [ 28] = 30060 (0x756c)
0xe11d (57629) [ 29] = 25971 (0x6573)
0xe11e (57630) [ 30] = 0 (0x0000)
0xe11f (57631) [ 31] = 0 (0x0000)
0xe120 (57632) [ 32] = 13368 (0x3438)
0xe121 (57633) [ 33] = 22048 (0x5620)
0xe122 (57634) [ 34] = 17475 (0x4443)
0xe123 (57635) [ 35] = 17475 (0x4443)
0xe124 (57636) [ 36] = 8243 (0x2033)
0xe125 (57637) [ 37] = 11829 (0x2e35)
0xe126 (57638) [ 38] = 11825 (0x2e31)
0xe127 (57639) [ 39] = 13056 (0x3300)
0xe128 (57640) [ 40] = 0 (0x0000)
0xe129 (57641) [ 41] = 0 (0x0000)
0xe12a (57642) [ 42] = 0 (0x0000)
0xe12b (57643) [ 43] = 0 (0x0000)
0xe12c (57644) [ 44] = 0 (0x0000)
0xe12d (57645) [ 45] = 0 (0x0000)
0xe12e (57646) [ 46] = 0 (0x0000)
0xe12f (57647) [ 47] = 0 (0x0000)
0xe130 (57648) [ 48] = 14146 (0x3742)
0xe131 (57649) [ 49] = 12341 (0x3035)
0xe132 (57650) [ 50] = 12854 (0x3236)
0xe133 (57651) [ 51] = 17473 (0x4441)
0xe134 (57652) [ 52] = 0 (0x0000)
0xe135 (57653) [ 53] = 0 (0x0000)
0xe136 (57654) [ 54] = 0 (0x0000)
0xe137 (57655) [ 55] = 0 (0x0000)
0xe138 (57656) [ 56] = 0 (0x0000)
0xe139 (57657) [ 57] = 0 (0x0000)
0xe13a (57658) [ 58] = 0 (0x0000)
0xe13b (57659) [ 59] = 0 (0x0000)
0xe13c (57660) [ 60] = 0 (0x0000)
0xe13d (57661) [ 61] = 0 (0x0000)
0xe13e (57662) [ 62] = 0 (0x0000)
0xe13f (57663) [ 63] = 0 (0x0000)
0xe140 (57664) [ 64] = 112 (0x0070)
0xe141 (57665) [ 65] = 0 (0x0000)
Disconnected from server
Last edited by hjzwiers on Sunday 04 October 2026 14:10, edited 1 time in total.
-
hjzwiers
- Posts: 318
- Joined: Friday 12 January 2018 8:26
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
deleted post
Last edited by hjzwiers on Sunday 04 October 2026 14:11, edited 1 time in total.
-
hjzwiers
- Posts: 318
- Joined: Friday 12 January 2018 8:26
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
Continuosly scanning the ports .....
hjz@debian:/opt/stacks/domoticz/config/plugins$ sudo docker exec -it domoticz python3 /opt/domoticz/userdata/plugins/scanner6.py 192.168.2.186 1502
==========================================================================================
SolarEdge Battery Diagnostic Scanner 6
LIVE Battery 1 monitor
==========================================================================================
Host : 192.168.2.186
Port : 1502
Device ID : 1
Interval : 10 seconds
Registers:
0xE174 Instantaneous Power
0xE184 State of Energy (SOE)
0xE186 Status
0xE188 Internal Status
Physical direction is determined from power:
> +50 W = CHARGING
< -50 W = DISCHARGING
otherwise = IDLE
Press Ctrl-C to stop.
==========================================================================================
2026-10-04 00:33:20 | #0001 | SOE 72.22% | Power -622.0 W | Actual DISCHARGING | Status 4 CHARGING | Internal 3 DISCHARGING
2026-10-04 00:33:31 | #0002 | SOE 72.22% | Power -641.0 W | Actual DISCHARGING | Status 4 CHARGING | Internal 3 DISCHARGING
2026-10-04 00:33:42 | #0003 | SOE 72.22% | Power -596.0 W | Actual DISCHARGING | Status 4 CHARGING | Internal 3 DISCHARGING
hjz@debian:/opt/stacks/domoticz/config/plugins$ sudo docker exec -it domoticz python3 /opt/domoticz/userdata/plugins/scanner6.py 192.168.2.186 1502
==========================================================================================
SolarEdge Battery Diagnostic Scanner 6
LIVE Battery 1 monitor
==========================================================================================
Host : 192.168.2.186
Port : 1502
Device ID : 1
Interval : 10 seconds
Registers:
0xE174 Instantaneous Power
0xE184 State of Energy (SOE)
0xE186 Status
0xE188 Internal Status
Physical direction is determined from power:
> +50 W = CHARGING
< -50 W = DISCHARGING
otherwise = IDLE
Press Ctrl-C to stop.
==========================================================================================
2026-10-04 00:33:20 | #0001 | SOE 72.22% | Power -622.0 W | Actual DISCHARGING | Status 4 CHARGING | Internal 3 DISCHARGING
2026-10-04 00:33:31 | #0002 | SOE 72.22% | Power -641.0 W | Actual DISCHARGING | Status 4 CHARGING | Internal 3 DISCHARGING
2026-10-04 00:33:42 | #0003 | SOE 72.22% | Power -596.0 W | Actual DISCHARGING | Status 4 CHARGING | Internal 3 DISCHARGING
- imautohuttraeger
- Posts: 397
- Joined: Saturday 14 March 2020 13:40
- Target OS: Raspberry Pi / ODroid
- Domoticz version: latest
- Location: Germany
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
Here are my results:
Code: Select all
Connecting to server
Connected to server
Looking for SunSpec identifier at address [40000 (0x9c40)] for device [1]
The inverter is providing a SunSpec Map
Reading Block at address [40002 (0x9c42)] for device [1]
Block id = [1]
Block length = [65]
Block type = [Common - All SunSpec compliant devices must include this as the first model]
Manufacturer: [SolarEdge ]
Model: [SE10K-RWB48BFN4]
Options: []
Version: [0004.0025.0011]
Device Address: [1]
Registers = [1, 65, 21359, 27745, 29253, 25703, 25888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21317, 12592, 19245, 21079, 16948, 14402, 17998, 13312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12336, 12340, 11824, 12338, 13614, 12336, 12593, 0, 14146, 12343, 12598, 17463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
Reading Block at address [40069 (0x9c85)] for device [1]
Block id = [103]
Block length = [50]
Block type = [Inverter (Three Phase) - Include this model for three phase inverter monitoring]
Registers = [103, 50, 3090, 1027, 1031, 1031, 65534, 4096, 4118, 4118, 2367, 2377, 2374, 65535, 7333, 0, 4999, 65534, 7340, 0, 62219, 65535, 55547, 65534, 290, 27344, 0, 9079, 65533, 8200, 65535, 7445, 0, 32768, 4695, 32768, 32768, 65534, 4, 0, 65535, 65535, 65535, 65535, 0, 0, 65535, 65535, 65535, 65535, 0, 0]
Reading Block at address [40121 (0x9cb9)] for device [1]
Block id = [1]
Block length = [65]
Block type = [Common - All SunSpec compliant devices must include this as the first model]
Manufacturer: [SolarEdge]
Model: [MTR-240-3PC1-D-A-MW]
Options: [Export+Import]
Version: [1.0.62]
Device Address: [2]
Registers = [1, 65, 21359, 27745, 29253, 25703, 25856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19796, 21037, 12852, 12333, 13136, 17201, 11588, 11585, 11597, 22272, 0, 0, 0, 0, 0, 0, 17784, 28783, 29300, 11081, 28016, 28530, 29696, 0, 12590, 12334, 13874, 0, 0, 0, 0, 0, 13875, 12851, 14647, 25904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2]
Reading Block at address [40188 (0x9cfc)] for device [1]
Block id = [203]
Block length = [105]
Block type = [wye-connect three phase (abcn) meter]
Registers = [203, 105, 27046, 10100, 8474, 8471, 65533, 2358, 2358, 2360, 2365, 0, 4078, 4092, 4099, 65535, 4999, 65534, 6344, 2396, 1981, 1965, 0, 6344,
2397, 1981, 1966, 0, 61242, 61787, 745, 64246, 65534, 55653, 55627, 55657, 55676, 65534, 21408, 15812, 9440, 22110, 7075, 52050, 6461, 42004, 5565, 34460, 1946,
31456, 2181, 47009, 3006, 56346, 65534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32768, 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, 0, 0, 32768, 0, 0]
Reading Block at address [40295 (0x9d67)] for device [1]
Block id = [701]
Block length = [153]
Block type = [DER AC Measurement - DER AC measurement model.]
Registers = [701, 153, 2, 1, 65535, 1, 0, 0, 65535, 65535, 726, 727, 65500, 100, 32768, 4076, 2353, 0, 49993, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 32768, 32768, 32768, 32768, 32768, 32768, 32768, 32768, 32768, 65535, 65535, 65535, 2353, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 32768, 32768, 32768, 65535, 65535, 65535, 2381, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 32768, 32768, 32768, 65535, 65535, 65535, 2380, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0, 65535, 65533, 1, 65534, 1, 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, 0, 0, 0, 0, 0, 0]
Reading Block at address [40450 (0x9e02)] for device [1]
Block id = [702]
Block length = [50]
Block type = [DER Capacity - DER capacity model.]
Registers = [702, 50, 10000, 8000, 80, 8000, 80, 10000, 6000, 6000, 65535, 65535, 65535, 65535, 2300, 2530, 2024, 65535, 65535, 65535, 0, 1, 2, 65535, 63487, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0, 65534, 0, 0, 65535, 0, 0]
Reading Block at address [40502 (0x9e36)] for device [1]
Block id = [703]
Block length = [17]
Block type = [Enter Service - Enter service model.]
Registers = [703, 17, 1, 11000, 8500, 0, 50100, 0, 47500, 0, 60, 0, 0, 0, 600, 65535, 65535, 65534, 65533]
Reading Block at address [40521 (0x9e49)] for device [1]
Block id = [704]
Block length = [65]
Block type = [DER AC Controls - DER AC controls model.]
Registers = [704, 65, 1, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
0, 0, 65535, 65535, 32768, 0, 65535, 32768, 65535, 65535, 65535, 65535, 65535, 0, 0, 65535, 0, 0, 32768, 0, 0, 32768, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65533, 65534, 0, 65534, 0, 65534, 1000, 0, 65535, 65535, 65535, 65535, 65535, 65535]
Reading Block at address [40588 (0x9e8c)] for device [1]
Block id = [705]
Block length = [57]
Block type = [DER Volt-Var - DER Volt-Var model.]
Registers = [705, 57, 0, 0, 1, 6, 2, 65535, 65535, 65535, 65535, 65535, 65534, 65534, 65533, 6, 0, 0, 100, 0, 0, 441, 0, 11670, 1, 5000, 4360, 9300, 4360, 9700, 0, 10300, 0, 10700, 61176, 12000, 61176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [40647 (0x9ec7)] for device [1]
Block id = [706]
Block length = [47]
Block type = [DER Volt-Watt - DER Volt-Watt model.]
Registers = [706, 47, 0, 0, 1, 6, 2, 65535, 65535, 65535, 65535, 65535, 65534, 0, 65533, 6, 0, 0, 11670, 1, 1000, 100, 10000, 100, 10700, 100, 11000, 100, 11500, 100, 12500, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [40696 (0x9ef8)] for device [1]
Block id = [707]
Block length = [105]
Block type = [DER Trip LV - DER low voltage trip model.]
Registers = [707, 105, 1, 0, 1, 5, 2, 65534, 65533, 1, 2, 4500, 0, 300, 8000, 0, 3000, 0, 8, 55712, 0, 8, 55712, 0, 8, 55712, 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, 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, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [40803 (0x9f63)] for device [1]
Block id = [708]
Block length = [105]
Block type = [DER Trip HV - DER high voltage trip model.]
Registers = [708, 105, 1, 0, 1, 5, 2, 65534, 65533, 1, 5, 12500, 0, 100, 17391, 8, 55712, 17391, 8, 55712, 17391, 8, 55712, 11000, 9, 10176, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [40910 (0x9fce)] for device [1]
Block id = [709]
Block length = [135]
Block type = [DER Trip LF - DER low frequency trip model.]
Registers = [709, 135, 1, 0, 1, 5, 2, 65534, 65533, 1, 1, 0, 4750, 0, 100, 0, 2000, 8, 55712, 0, 2000, 8, 55712, 0, 2000, 8, 55712, 0, 2000, 8, 55712, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [41047 (0xa057)] for device [1]
Block id = [710]
Block length = [135]
Block type = [DER Trip HF - DER high frequency trip model.]
Registers = [710, 135, 1, 0, 1, 5, 2, 65534, 65533, 1, 5, 0, 5150, 0, 100, 0, 10000, 8, 55712, 0, 10000, 8, 55712, 0, 10000, 8, 55712, 0, 10000, 8, 55712, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [41184 (0xa0e0)] for device [1]
Block id = [711]
Block length = [32]
Block type = [DER Frequency Droop - DER Frequency Droop model.]
Registers = [711, 32, 0, 0, 1, 2, 65535, 65535, 65535, 65535, 65535, 65533, 65533, 65533, 0, 200, 0, 200, 50, 50, 0, 11670, 32768, 1, 0, 0, 0, 0, 0, 0, 0, 0, 32768, 0]
Reading Block at address [41218 (0xa102)] for device [1]
Block id = [712]
Block length = [44]
Block type = [DER Watt-Var - DER Watt-Var model.]
Registers = [712, 44, 0, 0, 1, 6, 2, 65535, 65535, 65535, 65535, 65535, 65534, 65534, 6, 0, 65535, 1, 0, 0, 5000, 0, 6000, 0, 8000, 0, 9000, 0, 10000, 0,
0, 0, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [41264 (0xa130)] for device [1]
Block id = [713]
Block length = [7]
Block type = [DER Storage Capacity - DER storage capacity.]
Registers = [713, 7, 65535, 65535, 10000, 65535, 65535, 65534, 65534]
Reading Block at address [41273 (0xa139)] for device [1]
Block id = [65535]
Block length = [0]
Block type = [The End of the block list has been reached]
End of SunSpec MAP
Looking for Battery at address [57600 (0xe100)] for device [1]
Manufacturer [SolarEdge]
Model [SolarEdge Home Battery 48V - 3 ]
Firmware Version [48V DCDC 3.5.13]
Device id [112]
No response received after 3 retries, continue with next request
Received ModbusException(Modbus Error: [Input/Output] No response received after 3 retries, continue with next request) from library
Registers [None]
Looking for Battery at address [57856 (0xe200)] for device [1]
No battery found at this address
Disconnected from server
Stop, look and listen.
-
hjzwiers
- Posts: 318
- Joined: Friday 12 January 2018 8:26
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
I was triggered by the respons from imautohuttraeger because he has the same inverter
I ran the old file and AI sees i ran it with the connection 168 instead of 186 ... sorry for the confusion.
I ran the old file and AI sees i ran it with the connection 168 instead of 186 ... sorry for the confusion.
Code: Select all
hjz@debian:/opt/stacks/domoticz/config/plugins$ sudo docker exec -it domoticz python3 /opt/domoticz/userdata/plugins/scanner.py 192.168.2.186 1502
Connecting to server
Connected to server
Looking for SunSpec identifier at address [40000 (0x9c40)] for device [1]
The inverter is providing a SunSpec Map
Reading Block at address [40002 (0x9c42)] for device [1]
Block id = [1]
Block length = [65]
Block type = [Common - All SunSpec compliant devices must include this as the first model]
Manufacturer: [SolarEdge ]
Model: [SE10K-RWB48BFN4]
Options: []
Version: [0004.0025.0013]
Device Address: [1]
Registers = [1, 65, 21359, 27745, 29253, 25703, 25888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21317, 12592, 19245, 21079, 16948, 14402, 17998, 13312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12336, 12340, 11824, 12338, 13614, 12336, 12595, 0, 14146, 12341, 12854, 17473, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
Reading Block at address [40069 (0x9c85)] for device [1]
Block id = [103]
Block length = [50]
Block type = [Inverter (Three Phase) - Include this model for three phase inverter monitoring]
Registers = [103, 50, 1922, 644, 637, 640, 65534, 4065, 4077, 4045, 2310, 2376, 2348, 65535, 4489, 0, 5001, 65534, 4498, 0, 38464, 65534, 55555, 65534, 748, 41360, 0, 5555, 65533, 8204, 65535, 4558, 0, 32768, 4463, 32768, 32768, 65534, 4, 0, 65535, 65535, 65535, 65535, 0, 0, 65535, 65535, 65535, 65535, 0, 0]
Reading Block at address [40121 (0x9cb9)] for device [1]
Block id = [1]
Block length = [65]
Block type = [Common - All SunSpec compliant devices must include this as the first model]
Manufacturer: [SolarEdge]
Model: [MTR-240-3PC1-D-A-MW]
Options: [Export+Import]
Version: [1.0.104]
Device Address: [65535]
Registers = [1, 65, 21359, 27745, 29253, 25703, 25856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19796, 21037, 12852, 12333, 13136, 17201, 11588, 11585, 11597, 22272, 0, 0, 0, 0, 0, 0, 17784, 28783, 29300, 11081, 28016, 28530, 29696, 0, 12590, 12334, 12592, 13312, 0, 0, 0, 0, 13876, 12337, 25908, 25700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65535]
Reading Block at address [40188 (0x9cfc)] for device [1]
Block id = [203]
Block length = [105]
Block type = [wye-connect three phase (abcn) meter]
Registers = [203, 105, 3715, 1241, 1023, 1450, 65533, 2302, 2302, 2357, 2328, 0, 4039, 4048, 4017, 65535, 4999, 65534, 15393, 52343, 21270, 7316, 65533, 6852, 2431, 2054, 2952, 65535, 58686, 63410, 63493, 62856, 65535, 65340, 61547, 65086, 3849, 65534, 11064, 47796, 9734, 64076, 6422, 39758, 3622, 17183, 28698, 48272, 5820, 45430, 10548, 61822, 21044, 14416, 65534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32768, 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, 0, 0, 32768, 0, 0]
Reading Block at address [40295 (0x9d67)] for device [1]
Block id = [701]
Block length = [153]
Block type = [DER AC Measurement - DER AC measurement model.]
Registers = [701, 153, 2, 1, 65535, 1, 0, 0, 65535, 65535, 449, 450, 65508, 100, 32768, 3999, 2309, 0, 50018, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 32768, 32768, 32768, 32768, 32768, 32768, 32768, 32768, 32768, 65535, 65535, 65535, 2309, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 32768, 32768, 32768, 65535, 65535, 65535, 2375, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 32768, 32768, 32768, 65535, 65535, 65535, 2346, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0, 65535, 65533, 1, 65534, 1, 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, 0, 0, 0, 0, 0, 0]
Reading Block at address [40450 (0x9e02)] for device [1]
Block id = [702]
Block length = [50]
Block type = [DER Capacity - DER capacity model.]
Registers = [702, 50, 10600, 8480, 80, 8480, 80, 10600, 6360, 6360, 65535, 65535, 65535, 65535, 2300, 2530, 2024, 65535, 65535, 65535, 0, 1, 2, 65535, 63487, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0, 65534, 0, 0, 65535, 0, 0]
Reading Block at address [40502 (0x9e36)] for device [1]
Block id = [703]
Block length = [17]
Block type = [Enter Service - Enter service model.]
Registers = [703, 17, 1, 11000, 9000, 0, 50100, 0, 49900, 0, 60, 0, 0, 0, 300, 65535, 65535, 65534, 65533]
Reading Block at address [40521 (0x9e49)] for device [1]
Block id = [704]
Block length = [65]
Block type = [DER AC Controls - DER AC controls model.]
Registers = [704, 65, 0, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 0, 0, 65535, 65535, 32768, 0, 65535, 32768, 65535, 65535, 65535, 65535, 65535, 0, 0, 65535, 0, 0, 32768, 0, 0, 32768, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65533, 65534, 0, 65534, 0, 65534, 1000, 0, 65535, 65535, 65535, 65535, 65535, 65535]
Reading Block at address [40588 (0x9e8c)] for device [1]
Block id = [705]
Block length = [57]
Block type = [DER Volt-Var - DER Volt-Var model.]
Registers = [705, 57, 0, 0, 1, 6, 2, 65535, 65535, 65535, 65535, 65535, 65534, 65534, 65533, 4, 0, 0, 100, 0, 0, 441, 0, 10500, 1, 5000, 1452, 9783, 1452, 9783, 1452, 10217, 64084, 10217, 64084, 12000, 64084, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [40647 (0x9ec7)] for device [1]
Block id = [706]
Block length = [47]
Block type = [DER Volt-Watt - DER Volt-Watt model.]
Registers = [706, 47, 0, 0, 1, 6, 2, 65535, 65535, 65535, 65535, 65535, 65534, 0, 65533, 6, 0, 0, 10500, 1, 1000, 100, 10000, 100, 10700, 100, 11000, 100, 11200, 100, 12000, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [40696 (0x9ef8)] for device [1]
Block id = [707]
Block length = [105]
Block type = [DER Trip LV - DER low voltage trip model.]
Registers = [707, 105, 1, 0, 1, 5, 2, 65534, 65533, 1, 2, 7000, 0, 200, 8000, 0, 1950, 0, 8, 55712, 0, 8, 55712, 0, 8, 55712, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [40803 (0x9f63)] for device [1]
Block id = [708]
Block length = [105]
Block type = [DER Trip HV - DER high voltage trip model.]
Registers = [708, 105, 1, 0, 1, 5, 2, 65534, 65533, 1, 5, 11500, 0, 80, 11000, 0, 2000, 17391, 8, 55712, 17391, 8, 55712, 17391, 9, 10176, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [40910 (0x9fce)] for device [1]
Block id = [709]
Block length = [135]
Block type = [DER Trip LF - DER low frequency trip model.]
Registers = [709, 135, 1, 0, 1, 5, 2, 65534, 65533, 1, 1, 0, 4750, 0, 1900, 0, 2000, 8, 55712, 0, 2000, 8, 55712, 0, 2000, 8, 55712, 0, 2000, 8, 55712, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [41047 (0xa057)] for device [1]
Block id = [710]
Block length = [135]
Block type = [DER Trip HF - DER high frequency trip model.]
Registers = [710, 135, 1, 0, 1, 5, 2, 65534, 65533, 1, 5, 0, 5150, 0, 1900, 0, 10000, 8, 55712, 0, 10000, 8, 55712, 0, 10000, 8, 55712, 0, 10000, 8, 55712, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [41184 (0xa0e0)] for device [1]
Block id = [711]
Block length = [32]
Block type = [DER Frequency Droop - DER Frequency Droop model.]
Registers = [711, 32, 0, 0, 1, 2, 65535, 65535, 65535, 65535, 65535, 65533, 65533, 65533, 0, 30000, 0, 30000, 0, 0, 0, 10500, 32768, 1, 0, 0, 0, 0, 0, 0, 0, 0, 32768, 0]
Reading Block at address [41218 (0xa102)] for device [1]
Block id = [712]
Block length = [44]
Block type = [DER Watt-Var - DER Watt-Var model.]
Registers = [712, 44, 0, 0, 1, 6, 2, 65535, 65535, 65535, 65535, 65535, 65534, 65534, 2, 0, 65535, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10000, 0, 0, 0, 65535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Reading Block at address [41264 (0xa130)] for device [1]
Block id = [713]
Block length = [7]
Block type = [DER Storage Capacity - DER storage capacity.]
Registers = [713, 7, 65535, 65535, 7111, 65535, 65535, 65534, 65534]
Reading Block at address [41273 (0xa139)] for device [1]
Block id = [65535]
Block length = [0]
Block type = [The End of the block list has been reached]
End of SunSpec MAP
Looking for Battery at address [57600 (0xe100)] for device [1]
Manufacturer [SolarEdge]
Model [Home Battery 48V - 5 modules]
Firmware Version [48V DCDC 3.5.13]
Device id [112]
No response received after 3 retries, continue with next request
Received ModbusException(Modbus Error: [Input/Output] No response received after 3 retries, continue with next request) from library
Registers [None]
Looking for Battery at address [57856 (0xe200)] for device [1]
No battery found at this address
Disconnected from server- imautohuttraeger
- Posts: 397
- Joined: Saturday 14 March 2020 13:40
- Target OS: Raspberry Pi / ODroid
- Domoticz version: latest
- Location: Germany
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
Actually, that sort of things usually happen to me an not to other people.hjzwiers wrote: Sunday 04 October 2026 13:20 i ran it with the connection 168 instead of 186 ... sorry for the confusion.
Stop, look and listen.
-
hjzwiers
- Posts: 318
- Joined: Friday 12 January 2018 8:26
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
I made an version with AI to detect all the variables:
Code: Select all
hjz@debian:/opt/stacks/domoticz/config/plugins$ sudo docker exec -it domoticz python3 /opt/domoticz/userdata/plugins/scanner11.py 192.168.2.186 1502
==============================================================================
Scanner11 - SolarEdge decoded inverter/meter/battery report
==============================================================================
Target: 192.168.2.186:1502 Modbus ID: 1
Time: 2026-10-04T14:29:12
READ ONLY - no Modbus writes
==============================================================================
Connected
==============================================================================
BATTERY - SOLAREDGE PROPRIETARY MAP
==============================================================================
Manufacturer SolarEdge
Model Home Battery 48V - 5 modules
Firmware 48V DCDC 3.5.13
Serial 7B0526DA
Modbus ID 112
raw Modbus ID : 0070
SunSpec DID 0
raw SunSpec DID : 0000
Battery measurements:
Rated energy 23000.000 Wh
raw Rated energy : B000 46B3
Max charge continuous 5000.000 W
raw Max charge continuous : 4000 459C
Max discharge continuous 5000.000 W
raw Max discharge continuous : 4000 459C
Max charge peak 5000.000 W
raw Max charge peak : 4000 459C
Max discharge peak 5000.000 W
raw Max discharge peak : 4000 459C
Average temperature 25.400 C
raw Average temperature : 3333 41CB
Max temperature 0.000 C
raw Max temperature : 0000 0000
Instantaneous voltage 819.967 V
raw Instantaneous voltage : FDDE 444C
Instantaneous current -6.030 A
raw Instantaneous current : F8E4 C0C0
Instantaneous power 4939.000 W
raw Instantaneous power : 5800 459A
Max energy 23000.000 Wh
raw Max energy : B000 46B3
Available energy 22118.400 Wh
raw Available energy : CCCD 46AC
SOH 96.000 %
raw SOH : 0000 42C0
SOE 84.444 %
raw SOE : E38E 42A8
Total exported energy 4532 Wh
raw Total exported energy : 11B4 0000 0000 0000
Total imported energy 10304 Wh
raw Total imported energy : 2840 0000 0000 0000
Status 3 (DISCHARGING)
raw Status : 0003 0000
Internal status 3 (DISCHARGING)
raw Internal status : 0003 0000
Event log 0000 0000 0000 0000 0000 0000 0000 0000
Internal event log 0000 0000 0000 0000 0000 0000 0000 0000
==============================================================================
SUNSPEC INVERTER
==============================================================================
Model 1 - Common inverter information
Manufacturer SolarEdge
Model SE10K-RWB48BFN4
Version
Serial (outside read)
raw first 67 registers : 5375 6E53 0001 0041 536F 6C61 7245 6467 6520 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5345 3130 4B2D 5257 4234 3842 464E 3400 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3030 3034 2E30 3032 352E 3030 3133 0000 3742 3035 3236 4441 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
Model 103 - Three-phase inverter
raw model 103 : 0067 0032 013B 0069 0069 0068 FFFE 0FE7 0FF5 0FD3 090F 0944 0935 FFFF 1C19 FFFF 1386 FFFE 1CE9 FFFF BC07 FFFE DA09 FFFE 02EC AC04 0000 22C3 FFFC 200E FFFF 1C87 FFFF 8000 11CA 8000 8000 FFFE 0004 0000 FFFF FFFF FFFF FFFF 0000 0000 FFFF FFFF FFFF FFFF
DID 103
Model length 50
AC Current A 315
AC Current B 105
AC Current C 105
AC Current scale factor 104
AC Voltage AB 65534
AC Voltage BC 4071
AC Voltage CA 4085
AC Voltage scale factor 4051
AC Voltage AN 2319
AC Voltage BN 2372
AC Voltage CN 2357
AC Voltage LL scale factor 65535
AC Voltage LN scale factor 7193
AC Power 65535
AC Power scale factor 4998
Frequency 65534
Frequency scale factor 7401
Power Factor 65535
Power Factor scale factor 48135
Reactive Power 65534
Reactive Power scale factor 55817
Apparent Power 65534
Apparent Power scale factor 748
Energy Today 44036
Energy Today scale factor 0
Energy Total 8899
Energy Total scale factor 65532
DC Current 8206
DC Current scale factor 65535
DC Voltage 7303
DC Voltage scale factor 65535
DC Power 32768
DC Power scale factor 4554
Temperature 32768
Temperature scale factor 32768
Raw Model 103 registers:
40069 0x9C85: 0067 0032 013B 0069 0069 0068 FFFE 0FE7
40077 0x9C8D: 0FF5 0FD3 090F 0944 0935 FFFF 1C19 FFFF
40085 0x9C95: 1386 FFFE 1CE9 FFFF BC07 FFFE DA09 FFFE
40093 0x9C9D: 02EC AC04 0000 22C3 FFFC 200E FFFF 1C87
40101 0x9CA5: FFFF 8000 11CA 8000 8000 FFFE 0004 0000
40109 0x9CAD: FFFF FFFF FFFF FFFF 0000 0000 FFFF FFFF
40117 0x9CB5: FFFF FFFF
==============================================================================
SUNSPEC METER
==============================================================================
Manufacturer SolarEdge
Model MTR-240-3PC1-D-A-MW
Options Export+Import
Version
Serial
raw meter common : 0001 0041 536F 6C61 7245 6467 6500 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4D54 522D 3234 302D 3350 4331 2D44 2D41 2D4D 5700 0000 0000 0000 0000 0000 0000 4578 706F 7274 2B49 6D70 6F72 7400 0000 312E 302E 3130 3400 0000 0000 0000 0000 3634 3031 6534 6464 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
Model 203 - Three-phase meter
DID 203
Model length 105
Raw Model 203 registers:
40188 0x9CFC: 00CB 0069 0BF6 0422 02AE 0524 FFFD 0902
40196 0x9D04: 0902 0939 092E 0000 0FD5 0FE4 0FC3 FFFF
40204 0x9D0C: 1387 FFFE B94F 17BC BF08 E28A FFFD 73C3
40212 0x9D14: 5783 3017 6EBC FFFE 8C74 DAB7 D3DE DDE0
40220 0x9D1C: FFFE FB78 DF13 F1F0 2166 FFFE 2B38 C2E8
40228 0x9D24: 2607 3DE0 1916 B322 0E26 4338 701A C780
40236 0x9D2C: 16BC B176 2934 F278 5234 94E4 FFFE 0000
40244 0x9D34: 0000 0000 0000 0000 0000 0000 0000 0000
40252 0x9D3C: 0000 0000 0000 0000 0000 0000 0000 8000
40260 0x9D44: 0000 0000 0000 0000 0000 0000 0000 0000
40268 0x9D4C: 0000 0000 0000 0000 0000 0000 0000 0000
40276 0x9D54: 0000 0000 0000 0000 0000 0000 0000 0000
40284 0x9D5C: 0000 0000 0000 0000 0000 0000 0000 0000
40292 0x9D64: 8000
==============================================================================
SUNSPEC MODELS 701+
==============================================================================
40300 0x9D6C: 0001 0000 0000 FFFF FFFF 0047 0049 FFEF
40308 0x9D74: 0061 8000 0FB1 090F 0000 C356 FFFF FFFF
40316 0x9D7C: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
40324 0x9D84: FFFF FFFF FFFF FFFF FFFF FFFF 8000 8000
40332 0x9D8C: 8000 8000 8000 8000 8000 8000 8000 FFFF
40340 0x9D94: FFFF FFFF 090F FFFF FFFF FFFF FFFF FFFF
40348 0x9D9C: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
40356 0x9DA4: FFFF FFFF FFFF 8000 8000 8000 FFFF FFFF
40364 0x9DAC: FFFF 0946 FFFF FFFF FFFF FFFF FFFF FFFF
40372 0x9DB4: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
40380 0x9DBC: FFFF FFFF 8000 8000 8000 FFFF FFFF FFFF
40388 0x9DC4: 0939 FFFF FFFF FFFF FFFF FFFF FFFF FFFF
40396 0x9DCC: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF
40404 0x9DD4: FFFF FFFF FFFF FFFF 0000 FFFF FFFD 0001
40412 0x9DDC: FFFE 0001 0001 0000 0000 0000 0000 0000
40420 0x9DE4: 0000 0000 0000 0000 0000
==============================================================================
SCAN COMPLETE
==============================================================================
-
hjzwiers
- Posts: 318
- Joined: Friday 12 January 2018 8:26
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
It proves im still human lol
imautohuttraeger wrote: Sunday 04 October 2026 14:19Actually, that sort of things usually happen to me an not to other people.hjzwiers wrote: Sunday 04 October 2026 13:20 i ran it with the connection 168 instead of 186 ... sorry for the confusion.![]()
-
hskip
- Posts: 3
- Joined: Monday 19 October 2015 21:28
- Target OS: Raspberry Pi / ODroid
- Domoticz version:
- Contact:
Re: New Python plugin: Domoticz SolarEdge_ModbusTCP
Here is the result of scanning my SolarEdge SE3000; hopefully, it provides the desired information.
(venv) hans@RPIpilot:~/scanner $ python scanner.py 192.168.178.77 502
Connecting to server
Connected to server
Looking for SunSpec identifier at address [40000 (0x9c40)] for device [1]
The inverter is providing a SunSpec Map
Reading Block at address [40002 (0x9c42)] for device [1]
ERROR: request ask for transaction_id=2 but got id=1, Skipping.
Block id = [1]
Block length = [65]
Block type = [Common - All SunSpec compliant devices must include this as the first model]
Manufacturer: [SolarEdge ]
Model: [SE3000]
Options: []
Version: [0003.2537]
Device Address: [1]
Registers = [1, 65, 21359, 27745, 29253, 25703, 25888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21317, 13104, 12336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12336, 12339, 11826, 13619, 14080, 0, 0, 0, 14150, 12601, 12354, 17207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
Reading Block at address [40069 (0x9c85)] for device [1]
Block id = [101]
Block length = [50]
Block type = [Inverter (Single Phase) - Include this model for single phase inverter monitoring]
Registers = [101, 50, 26562, 26562, 65535, 65535, 65531, 2327, 65535, 65535, 65535, 65535, 65535, 65535, 10000, 65533, 49966, 65533, 6132, 65534, 6050, 65534, 56167, 65534, 639, 27240, 0, 28956, 65530, 3506, 65535, 10152, 65533, 32768, 2541, 32768, 32768, 65534, 4, 0, 65535, 65535, 65535, 65535, 0, 0, 65535, 65535, 65535, 65535, 0, 0]
Reading Block at address [40121 (0x9cb9)] for device [1]
Block id = [65535]
Block length = [0]
Block type = [The End of the block list has been reached]
End of SunSpec MAP
Looking for Battery at address [57600 (0xe100)] for device [1]
No battery found at this address
Looking for Battery at address [57856 (0xe200)] for device [1]
Received ModbusException(Modbus Error: [Connection] ModbusTcpClient 192.168.178.77:502: Connection unexpectedly closed 0.000 seconds into read of unbounded read bytes without response from device before it closed connection) from library
Traceback (most recent call last):
File "/home/hans/scanner/scanner.py", line 389, in <module>
process_battery(client=client, device_id=args.device_id, address=57856, dump=args.do_not_dump_registers)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/hans/scanner/scanner.py", line 331, in process_battery
if battery_device_id == 255 or registers[0] == 0:
~~~~~~~~~^^^
IndexError: list index out of range
(venv) hans@RPIpilot:~/scanner $ python3 scanner.py 192.168.178.77 502
Connecting to server
Connected to server
Looking for SunSpec identifier at address [40000 (0x9c40)] for device [1]
The inverter is providing a SunSpec Map
Reading Block at address [40002 (0x9c42)] for device [1]
Block id = [1]
Block length = [65]
Block type = [Common - All SunSpec compliant devices must include this as the first model]
Manufacturer: [SolarEdge ]
Model: [SE3000]
Options: []
Version: [0003.2537]
Device Address: [1]
Registers = [1, 65, 21359, 27745, 29253, 25703, 25888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21317, 13104, 12336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12336, 12339, 11826, 13619, 14080, 0, 0, 0, 14150, 12601, 12354, 17207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
Reading Block at address [40069 (0x9c85)] for device [1]
Block id = [101]
Block length = [50]
Block type = [Inverter (Single Phase) - Include this model for single phase inverter monitoring]
Registers = [101, 50, 28125, 28125, 65535, 65535, 65531, 2335, 65535, 65535, 65535, 65535, 65535, 65535, 18000, 65533, 49968, 65533, 6504, 65534, 6250, 65534, 64663, 65534, 639, 27240, 0, 5191, 65531, 3520, 65535, 18274, 65533, 32768, 2526, 32768, 32768, 65534, 4, 0, 65535, 65535, 65535, 65535, 0, 0, 65535, 65535, 65535, 65535, 0, 0]
Reading Block at address [40121 (0x9cb9)] for device [1]
Block id = [65535]
Block length = [0]
Block type = [The End of the block list has been reached]
End of SunSpec MAP
Looking for Battery at address [57600 (0xe100)] for device [1]
No battery found at this address
Looking for Battery at address [57856 (0xe200)] for device [1]
Received ModbusException(Modbus Error: [Connection] ModbusTcpClient 192.168.178.77:502: Connection unexpectedly closed 0.000 seconds into read of unbounded read bytes without response from device before it closed connection) from library
Traceback (most recent call last):
File "/home/hans/scanner/scanner.py", line 389, in <module>
process_battery(client=client, device_id=args.device_id, address=57856, dump=args.do_not_dump_registers)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/hans/scanner/scanner.py", line 331, in process_battery
if battery_device_id == 255 or registers[0] == 0:
~~~~~~~~~^^^
IndexError: list index out of range
(venv) hans@RPIpilot:~/scanner $ python scanner.py 192.168.178.77 502
Connecting to server
Connected to server
Looking for SunSpec identifier at address [40000 (0x9c40)] for device [1]
The inverter is providing a SunSpec Map
Reading Block at address [40002 (0x9c42)] for device [1]
ERROR: request ask for transaction_id=2 but got id=1, Skipping.
Block id = [1]
Block length = [65]
Block type = [Common - All SunSpec compliant devices must include this as the first model]
Manufacturer: [SolarEdge ]
Model: [SE3000]
Options: []
Version: [0003.2537]
Device Address: [1]
Registers = [1, 65, 21359, 27745, 29253, 25703, 25888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21317, 13104, 12336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12336, 12339, 11826, 13619, 14080, 0, 0, 0, 14150, 12601, 12354, 17207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
Reading Block at address [40069 (0x9c85)] for device [1]
Block id = [101]
Block length = [50]
Block type = [Inverter (Single Phase) - Include this model for single phase inverter monitoring]
Registers = [101, 50, 26562, 26562, 65535, 65535, 65531, 2327, 65535, 65535, 65535, 65535, 65535, 65535, 10000, 65533, 49966, 65533, 6132, 65534, 6050, 65534, 56167, 65534, 639, 27240, 0, 28956, 65530, 3506, 65535, 10152, 65533, 32768, 2541, 32768, 32768, 65534, 4, 0, 65535, 65535, 65535, 65535, 0, 0, 65535, 65535, 65535, 65535, 0, 0]
Reading Block at address [40121 (0x9cb9)] for device [1]
Block id = [65535]
Block length = [0]
Block type = [The End of the block list has been reached]
End of SunSpec MAP
Looking for Battery at address [57600 (0xe100)] for device [1]
No battery found at this address
Looking for Battery at address [57856 (0xe200)] for device [1]
Received ModbusException(Modbus Error: [Connection] ModbusTcpClient 192.168.178.77:502: Connection unexpectedly closed 0.000 seconds into read of unbounded read bytes without response from device before it closed connection) from library
Traceback (most recent call last):
File "/home/hans/scanner/scanner.py", line 389, in <module>
process_battery(client=client, device_id=args.device_id, address=57856, dump=args.do_not_dump_registers)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/hans/scanner/scanner.py", line 331, in process_battery
if battery_device_id == 255 or registers[0] == 0:
~~~~~~~~~^^^
IndexError: list index out of range
(venv) hans@RPIpilot:~/scanner $ python3 scanner.py 192.168.178.77 502
Connecting to server
Connected to server
Looking for SunSpec identifier at address [40000 (0x9c40)] for device [1]
The inverter is providing a SunSpec Map
Reading Block at address [40002 (0x9c42)] for device [1]
Block id = [1]
Block length = [65]
Block type = [Common - All SunSpec compliant devices must include this as the first model]
Manufacturer: [SolarEdge ]
Model: [SE3000]
Options: []
Version: [0003.2537]
Device Address: [1]
Registers = [1, 65, 21359, 27745, 29253, 25703, 25888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21317, 13104, 12336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12336, 12339, 11826, 13619, 14080, 0, 0, 0, 14150, 12601, 12354, 17207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
Reading Block at address [40069 (0x9c85)] for device [1]
Block id = [101]
Block length = [50]
Block type = [Inverter (Single Phase) - Include this model for single phase inverter monitoring]
Registers = [101, 50, 28125, 28125, 65535, 65535, 65531, 2335, 65535, 65535, 65535, 65535, 65535, 65535, 18000, 65533, 49968, 65533, 6504, 65534, 6250, 65534, 64663, 65534, 639, 27240, 0, 5191, 65531, 3520, 65535, 18274, 65533, 32768, 2526, 32768, 32768, 65534, 4, 0, 65535, 65535, 65535, 65535, 0, 0, 65535, 65535, 65535, 65535, 0, 0]
Reading Block at address [40121 (0x9cb9)] for device [1]
Block id = [65535]
Block length = [0]
Block type = [The End of the block list has been reached]
End of SunSpec MAP
Looking for Battery at address [57600 (0xe100)] for device [1]
No battery found at this address
Looking for Battery at address [57856 (0xe200)] for device [1]
Received ModbusException(Modbus Error: [Connection] ModbusTcpClient 192.168.178.77:502: Connection unexpectedly closed 0.000 seconds into read of unbounded read bytes without response from device before it closed connection) from library
Traceback (most recent call last):
File "/home/hans/scanner/scanner.py", line 389, in <module>
process_battery(client=client, device_id=args.device_id, address=57856, dump=args.do_not_dump_registers)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/hans/scanner/scanner.py", line 331, in process_battery
if battery_device_id == 255 or registers[0] == 0:
~~~~~~~~~^^^
IndexError: list index out of range