Hi,
I have been setting up a configuration where I should read information from my Solis inverter by using its RS485 connector.
I’m using a ESP32 38 pin developer board. And a TTL-RS485 converter: https://nl.aliexpress.com/item/32853794532.html#nav-specification
You can find the register map “RS485_MODBUS RTU Hybrid Inverter Protocol” of my Solis inverter here.
But I don’t see any information from my Solis inverter in the HA ESPhome log.
I think my ESP32 with RS485 converter doesn’t work well.
Here’s my wiring:
(Note that TX and RX inbetween are crossed.)
And here’s my yaml code:
esphome:
name: meterkast
friendly_name: meterkast
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
baud_rate: 0
level: VERBOSE
# Enable Home Assistant API
api:
encryption:
key: "UTTPgM3Yrv0BinFBh/KFIQeqUt19xxxxxxxxy4="
ota:
- platform: esphome
password: "17200cbb9881dxxxxxxxxxxxx"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Meterkast Fallback Hotspot"
password: "QAxxxxxxxxxxxxx"
captive_portal:
uart:
id: uart_1
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 9600
parity: NONE
stop_bits: 1
data_bits: 8
debug:
direction: BOTH
modbus:
id: modbus1
uart_id: uart_1
send_wait_time: 320ms
## role: server
modbus_controller:
id: solis_inverter
address: 0x01
modbus_id: modbus1
setup_priority: -10
command_throttle: 320ms
sensor:
- platform: modbus_controller
modbus_controller_id: solis_inverter
id: ac_watt_instant
name: "Active power"
address: 3078
unit_of_measurement: "W"
register_type: read
value_type: S_WORD
accuracy_decimals: 0
- platform: modbus_controller
modbus_controller_id: solis_inverter
id: inverter_tempterature
name: "Inverter Temperature"
address: 33093
unit_of_measurement: "°C"
register_type: read
value_type: U_WORD
accuracy_decimals: 2
And this is my log:
[21:16:02.273][V][modbus_controller:313]: Updating modbus component
[21:16:02.276][V][modbus_controller:279]: Range : C06 Size: 1 (4) skip: 0
[21:16:02.276][V][modbus_controller:279]: Range : 8145 Size: 1 (4) skip: 0
[21:16:02.279][V][modbus_controller:043]: Sending next modbus command to device 1 register 0xC06 count 1
[21:16:02.292][V][modbus:244]: Modbus write: 01.04.0C.06.00.01.D2.9B (8)
[21:16:02.295][V][modbus_controller:651]: Command sent 4 0xC06 1 send_count: 1
[21:16:02.394][D][uart_debug:114]: >>> 01:04:0C:06:00:01:D2:9B
[21:16:02.618][V][modbus:043]: Stop waiting for response from 1
[21:16:02.619][V][modbus_controller:043]: Sending next modbus command to device 1 register 0xC06 count 1
[21:16:02.630][V][modbus:244]: Modbus write: 01.04.0C.06.00.01.D2.9B (8)
[21:16:02.632][V][modbus_controller:651]: Command sent 4 0xC06 1 send_count: 2
[21:16:02.727][D][uart_debug:114]: >>> 01:04:0C:06:00:01:D2:9B
[21:16:02.957][V][modbus:043]: Stop waiting for response from 1
[21:16:02.960][V][modbus_controller:043]: Sending next modbus command to device 1 register 0xC06 count 1
[21:16:02.970][V][modbus:244]: Modbus write: 01.04.0C.06.00.01.D2.9B (8)
[21:16:02.974][V][modbus_controller:651]: Command sent 4 0xC06 1 send_count: 3
[21:16:03.068][D][uart_debug:114]: >>> 01:04:0C:06:00:01:D2:9B
[21:16:03.294][V][modbus:043]: Stop waiting for response from 1
[21:16:03.298][V][modbus_controller:043]: Sending next modbus command to device 1 register 0xC06 count 1
[21:16:03.309][V][modbus:244]: Modbus write: 01.04.0C.06.00.01.D2.9B (8)
[21:16:03.316][V][modbus_controller:651]: Command sent 4 0xC06 1 send_count: 4
[21:16:03.405][D][uart_debug:114]: >>> 01:04:0C:06:00:01:D2:9B
[21:16:03.636][V][modbus:043]: Stop waiting for response from 1
[21:16:03.638][V][modbus_controller:043]: Sending next modbus command to device 1 register 0xC06 count 1
[21:16:03.648][V][modbus:244]: Modbus write: 01.04.0C.06.00.01.D2.9B (8)
[21:16:03.650][V][modbus_controller:651]: Command sent 4 0xC06 1 send_count: 5
[21:16:03.745][D][uart_debug:114]: >>> 01:04:0C:06:00:01:D2:9B
[21:16:03.974][V][modbus:043]: Stop waiting for response from 1
[21:16:03.977][W][modbus_controller:027]: Modbus device=1 set offline
[21:16:03.979][D][modbus_controller:039]: Modbus command to device=1 register=0xC06 no response received - removed from send queue
[21:16:03.993][V][modbus_controller:043]: Sending next modbus command to device 1 register 0x8145 count 1
[21:16:04.008][V][modbus:244]: Modbus write: 01.04.81.45.00.01.08.23 (8)
[21:16:04.008][V][modbus_controller:651]: Command sent 4 0x8145 1 send_count: 1
[21:16:04.100][D][uart_debug:114]: >>> 01:04:81:45:00:01:08:23
[21:16:04.330][V][modbus:043]: Stop waiting for response from 1
[21:16:04.332][V][modbus_controller:043]: Sending next modbus command to device 1 register 0x8145 count 1
[21:16:04.348][V][modbus:244]: Modbus write: 01.04.81.45.00.01.08.23 (8)
[21:16:04.348][V][modbus_controller:651]: Command sent 4 0x8145 1 send_count: 2
[21:16:04.442][D][uart_debug:114]: >>> 01:04:81:45:00:01:08:23
[21:16:04.671][V][modbus:043]: Stop waiting for response from 1
[21:16:04.673][V][modbus_controller:043]: Sending next modbus command to device 1 register 0x8145 count 1
[21:16:04.684][V][modbus:244]: Modbus write: 01.04.81.45.00.01.08.23 (8)
[21:16:04.686][V][modbus_controller:651]: Command sent 4 0x8145 1 send_count: 3
[21:16:04.781][D][uart_debug:114]: >>> 01:04:81:45:00:01:08:23
[21:16:05.010][V][modbus:043]: Stop waiting for response from 1
[21:16:05.014][V][modbus_controller:043]: Sending next modbus command to device 1 register 0x8145 count 1
[21:16:05.023][V][modbus:244]: Modbus write: 01.04.81.45.00.01.08.23 (8)
[21:16:05.029][V][modbus_controller:651]: Command sent 4 0x8145 1 send_count: 4
[21:16:05.119][D][uart_debug:114]: >>> 01:04:81:45:00:01:08:23
[21:16:05.349][V][modbus:043]: Stop waiting for response from 1
[21:16:05.351][V][modbus_controller:043]: Sending next modbus command to device 1 register 0x8145 count 1
[21:16:05.365][V][modbus:244]: Modbus write: 01.04.81.45.00.01.08.23 (8)
[21:16:05.367][V][modbus_controller:651]: Command sent 4 0x8145 1 send_count: 5
[21:16:05.466][D][uart_debug:114]: >>> 01:04:81:45:00:01:08:23
[21:16:05.695][V][modbus:043]: Stop waiting for response from 1
[21:16:05.696][D][modbus_controller:039]: Modbus command to device=1 register=0x8145 no response received - removed from send queue
I also checked the voltage on the serial side: A+ ( 2,56V) and B- (0,37V) to ground.
I have no idea why this won’t work. Is my yaml code not good perhaps?
Is there any way to check if my RS485 serial communication works without using my Solis converter?

