Solis Modbus Esinv Modbus Register 33140: Battery state of health (SoH)
Technical documentation for Modbus register 33140 on Solis Modbus Esinv. Data type: U WORD. Includes Python and YAML configuration examples.
Technical Definition
The register Battery state of health (SoH) at address 33140 is used to monitor battery state of health (soh) on the Solis Modbus Esinv.
- Protocol: Modbus RTU
- Data Type: U WORD
- Unit: %
- Access: Read Only
How to Read (Python pymodbus)
Use this code snippet to read this specific value via RS485:
from pymodbus.client.sync import ModbusSerialClient
client = ModbusSerialClient(method='rtu', port='/dev/ttyUSB0', baudrate=9600)
client.connect()
# Read Battery state of health (SoH) (Address: 33140)
# Note: Check if your device uses 0-based or 1-based addressing
result = client.read_input_registers(address=33140, count=2, unit=1)
if not result.isError():
print(f"Raw Value: {result.registers}")
else:
print("Error reading register")
client.close()
Integration (Home Assistant)
Paste this into your configuration.yaml:
- platform: modbus_controller
name: "Battery state of health (SoH)"
address: 33140
value_type: U_WORD
unit_of_measurement: "%"
Connection Diagram
Here is the standard RS485 wiring for this configuration:
graph TD
PLC[Host Controller / Home Assistant]
Device[Solis Modbus Esinv]
PLC -- "A+ (D+)" --> Device
PLC -- "B- (D-)" --> Device
PLC -- GND --> Device
💡 Engineer's Insight
Analysis: Battery State of Health (SoH). Represents the battery's current condition relative to its original capacity, expressed as a percentage (0-100%).
Troubleshooting: Zero value could signal severe degradation, internal damage, or a critical failure requiring battery replacement.