I have a Vevor EM5500-48 inverter with battery and I would like to get the status of the battery and all available information via Modbus. A modbus connection via Waveshare modbus is realised but I don’t know how to obtain data. Probably via Solax inverter but I don’t know how to coninue. I have received the modbus documentation via Vevor. Can somebody help?
MeatimeI have build the mobus.yaml and also verified with a separate app that my device is communicating. I can define entities but they all are ‘unavalable’.
The main part of modbus .yaml looks like:
- name: modbus_hub
type: tcp
host: 192.168.22.120
port: 502
sensors:
- name: Mains voltage effective value
slave: 1
address: 202 # <- Register address
input_type: input
data_type: int16 # or maybe int16
unit_of_measurement: "V"
scale: 0.1
scan_interval: 5
- name: Mains frequency
slave: 1
address: 203 # <- Register address
input_type: input
data_type: int16 # or maybe int16
unit_of_measurement: "Hz"
scale: 0.01
scan_interval: 5
Can somebody advicewhat to do? The logfile states ‘Pymodbus: modbus_hub: Error: device: 1 address: 202 → Modbus Error: [Input/Output] No response received after 3 retries, continue with next request’
Thanks in advance!
I figured it out. Seems that the registers are no input registers but holding registers!
Example:
- name: modbus_hub
type: tcp
host: 192.168.22.120
port: 502
sensors:
- name: "Mains voltage effective value"
slave: 1
address: 202 # <- Register address
input_type: holding
data_type: int16 # or maybe int16
unit_of_measurement: "V"
scale: 0.1
scan_interval: 5
- name: "Mains frequency"
slave: 1
address: 203 # <- Register address
input_type: holding
data_type: int16 # or maybe int16
unit_of_measurement: "Hz"
scale: 0.01
scan_interval: 5
- name: "Battery percentage"
slave: 1 # <- Device address
address: 229 # <- Register address
input_type: holding
data_type: int16 # or maybe int16
unit_of_measurement: "%"