Good Morning from Australia, (I typed this up previously but it didn’t show so i thought i must have stuffed my post, so hopefully this doesn’t end up twice lol)
I was told there are a few users that have setup multiple inverters over modbus with HA, I have been playing throughout the last few weeks trying to get both inverters working at the same time on modbus.
Solax1 - 192.168.69.50 (Hybrid) (plugged into the LAN Port)
Solax2 - 192.168.69.52 (X1-Mini) (setup with a Wondershare RS485 to POE ETH)
If I install each inverter individually they work perfectly by themselves.
If I have Solax1 installed and working (I did a reboot), then I installed Solax2 both works, but as soon as I do a reboot only Solax2 works, all 144 entities for Solax1 become unavailable. Reverse this and the exact same things happened.
I have also tried changing the modbus address of Solax2 to 2 so it was different.
I enabled debug logs and did several reboots (with and without Solax2 installed to do a comparison) and even though it is detecting Solax1 and starting it doesn’t create the registers/sensors for Solax1 if Solax2 is defined, it only loads/creates the sensors for Solax2. So the module sees and reads both inverters but only loads/creates the sensors for the X1-Mini.
When Solax1 is installed by itself debug shows. (registers start at 0x0)
2023-05-21 14:04:24.851 INFO (MainThread) [custom_components.solax_modbus] trying to load plugin - plugin_name: solax
2023-05-21 14:04:24.856 INFO (MainThread) [custom_components.solax_modbus.plugin_solax] SolaX1: trying to determine inverter type
2023-05-21 14:04:24.857 INFO (MainThread) [custom_components.solax_modbus.plugin_solax] Read SolaX1 0x0 serial number before potential swap: H1Ixxserialxx
2023-05-21 14:04:24.858 INFO (MainThread) [homeassistant.setup] Setup of domain counter took 0.1 seconds
2023-05-21 14:04:24.859 INFO (MainThread) [homeassistant.setup] Setup of domain timer took 0.1 seconds
2023-05-21 14:04:24.864 INFO (MainThread) [homeassistant.setup] Setup of domain tag took 0.0 seconds
2023-05-21 14:04:24.864 INFO (MainThread) [homeassistant.setup] Setting up script
2023-05-21 14:04:24.866 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.solax_modbus
2023-05-21 14:04:24.869 INFO (MainThread) [custom_components.hubitat.hubitatmaker.hub] Created hub
2023-05-21 14:04:24.870 INFO (MainThread) [custom_components.hubitat.hubitatmaker.hub] Setting event update URL to http%3A%2F%2F192.168.69.8%3A44343
2023-05-21 14:04:24.872 INFO (SyncWorker_3) [homeassistant.loader] Loaded select from homeassistant.components.select
2023-05-21 14:04:24.872 INFO (SyncWorker_3) [homeassistant.loader] Loaded climate from homeassistant.components.climate
2023-05-21 14:04:24.873 INFO (MainThread) [custom_components.solax_modbus.sensor] adding register 0x0 seriesnumber to block with start 0x0
2023-05-21 14:04:24.873 INFO (MainThread) [custom_components.solax_modbus.sensor] Starting new block at 0x7d
2023-05-21 14:04:24.873 INFO (MainThread) [custom_components.solax_modbus.sensor] adding register 0x7d firmwareversion_invertermaster to block with start 0x7d
2023-05-21 14:04:24.873 INFO (MainThread) [custom_components.solax_modbus.sensor] adding register 0x81 firmwareversion_modbustcp_major to block with start 0x7d
2023-05-21 14:04:24.873 INFO (MainThread) [custom_components.solax_modbus.sensor] adding register 0x82 firmwareversion_modbustcp_minor to block with start 0x7d
But when Solax2 is installed (registers start at 0x400)
2023-05-21 13:59:12.608 INFO (MainThread) [custom_components.solax_modbus] trying to load plugin - plugin_name: solax
2023-05-21 13:59:12.613 INFO (MainThread) [custom_components.solax_modbus.plugin_solax] SolaX1: trying to determine inverter type
2023-05-21 13:59:12.614 INFO (MainThread) [custom_components.solax_modbus.plugin_solax] Read SolaX1 0x0 serial number before potential swap: H1Ixxserialxx
2023-05-21 13:59:12.614 INFO (MainThread) [custom_components.solax_modbus] trying to load plugin - plugin_name: solax
2023-05-21 13:59:12.614 INFO (MainThread) [custom_components.solax_modbus.plugin_solax] SolaX2: trying to determine inverter type
2023-05-21 13:59:17.620 WARNING (MainThread) [custom_components.solax_modbus.plugin_solax] SolaX2: reading serial number from address 0x0 failed; other address may succeed
2023-05-21 13:59:17.631 INFO (MainThread) [custom_components.solax_modbus.plugin_solax] Read SolaX2 0x0 serial number before potential swap: None
2023-05-21 13:59:22.639 INFO (MainThread) [custom_components.solax_modbus.plugin_solax] Read SolaX2 0x300 serial number before potential swap: XB32xxserialxx
2023-05-21 13:59:22.644 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.solax_modbus
2023-05-21 13:59:22.644 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.solax_modbus
2023-05-21 13:59:22.649 INFO (MainThread) [homeassistant.setup] Setting up select
2023-05-21 13:59:22.650 INFO (MainThread) [homeassistant.setup] Setup of domain select took 0.0 seconds
2023-05-21 13:59:22.650 INFO (MainThread) [custom_components.solax_modbus.sensor] computedRegs: {}
2023-05-21 13:59:22.650 INFO (MainThread) [custom_components.solax_modbus.sensor] adding register 0x400 pv_voltage_1 to block with start 0x400
2023-05-21 13:59:22.650 INFO (MainThread) [custom_components.solax_modbus.sensor] adding register 0x401 pv_voltage_2 to block with start 0x400
2023-05-21 13:59:22.650 INFO (MainThread) [custom_components.solax_modbus.sensor] adding register 0x402 pv_current_1 to block with start 0x400
2023-05-21 13:59:22.650 INFO (MainThread) [custom_components.solax_modbus.sensor] adding register 0x403 pv_current_2 to block with start 0x400
I am playing the idea (if this won’t work) of running up a second hass.io vm and have it talked to Solax2 and get the 2 vm’s to talk to each other so i can merge the data and control.
The other option is talking to SolaX2 using the wifi directly and not worry about modbus, I tried to use the Solax module in HA to talk to the wifi dongle but it sits spinning for forever, but i can access the data through a curl command.
curl -d “optType=ReadRealTimeData&pwd=SXD6xxserialxx” -X POST http://192.168.69.53
{“sn”:“SXD6xxserialxx”,“ver”:“3.001.03”,“type”:4,“Data”:[2558,130,3276,2639,3242,57,55,1522,1812,4997,2,15583,1,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,0,3915,0,0,0,0,0,0,0,0,0,0,0,0,0,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29724,16381,1,1,29820,16381,0,0,0,0,29728,16381,0,0,0,0,29752,16381,65535,65535,29752,16381,29752,16381,0,0,29772,16381,65535,65535,29772,16381,29772,16381,1,0,1,0,0,0,42240,42405,0,0,42405,42405,42241,42405,42405,42405,42405,42405,29900,16381,0,0,0,0,0,0,0,0,42240,42405,42240,42405,42405,42405,42405,42405,42405,42405,42405,42405,42405,42405,42240,42405,0,65280,0,0,29244,16381,1,0,42304,502,20876,16395,2,42405,29936,16381,6,0,3,0,27772,16383],“Information”:[5.000,4,“XB32xxserialxx”,8,2.22,0.00,1.40,0.00,0.00,1]}
I will just have to manually map all the sensors to the correct register, just a bit of a waste of the wondershare rs485.
So any help/suggestions would be very much appreciated