Skip to content

Instantly share code, notes, and snippets.

@enolikingdev
Created November 10, 2025 17:11
Show Gist options
  • Select an option

  • Save enolikingdev/5ce2779a63cbb82bc9aa47562001c8f6 to your computer and use it in GitHub Desktop.

Select an option

Save enolikingdev/5ce2779a63cbb82bc9aa47562001c8f6 to your computer and use it in GitHub Desktop.
Solinteg hybrid inverter Home Assistant integration
modbus:
- name: solinteg
type: rtuovertcp
host: 192.168.1.200 # YOUR INVERTER FIXED IP HERE
port: 5743
delay: 0
message_wait_milliseconds: 30
timeout: 5
sensors:
- name: Solinteg Inverter SN
unique_id: solinteg_inverter_sn
slave: 252
address: 10000
input_type: holding
count: 10
data_type: string
scan_interval: 86400
- name: Solinteg Inverter Running Status #0:wait, wait for on-grid 1:check, self-check 2:On Grid 3:fault 4:flash, firmware update 5.Off Grid
unique_id: solinteg_inverter_running_status
slave: 252
address: 10105
input_type: holding
data_type: int16
scan_interval: 10
- name: Solinteg Phase A Power on Meter
unique_id: solinteg_phase_a_power_on_meter
slave: 252
address: 10994
input_type: holding
state_class: measurement
unit_of_measurement: kW
device_class: power
scale: 0.001
precision: 3
data_type: int32
scan_interval: 60
- name: Solinteg Phase B Power on Meter
unique_id: solinteg_phase_b_power_on_meter
slave: 252
address: 10996
input_type: holding
state_class: measurement
unit_of_measurement: kW
device_class: power
scale: 0.001
precision: 3
data_type: int32
scan_interval: 60
- name: Solinteg Phase C Power on Meter
unique_id: solinteg_phase_c_power_on_meter
slave: 252
address: 10998
input_type: holding
state_class: measurement
unit_of_measurement: kW
device_class: power
scale: 0.001
precision: 3
data_type: int32
scan_interval: 60
- name: Solinteg Total Power on Meter #Grid power
unique_id: solinteg_total_power_on_meter
slave: 252
address: 11000
input_type: holding
state_class: measurement
unit_of_measurement: kW
device_class: power
scale: 0.001
precision: 3
data_type: int32
scan_interval: 10
- name: Solinteg Grid Injection Energy on that day
unique_id: solinteg_grid_injection_energy_on_that_day
slave: 252
address: 31000
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing #measurement
device_class: energy
data_type: int16
scan_interval: 300
- name: Solinteg Grid Purchasing Energy on that day
unique_id: solinteg_grid_purchasing_energy_on_that_day
slave: 252
address: 31001
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing #measurement
device_class: energy
data_type: int16
scan_interval: 300
- name: Solinteg Backup Output Energy on that day
unique_id: solinteg_backup_output_energy_on_that_day
slave: 252
address: 31002
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing #measurement
device_class: energy
data_type: int16
scan_interval: 300
- name: Solinteg Battery Charge Energy on that day
unique_id: solinteg_battery_charge_energy_on_that_day
slave: 252
address: 31003
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing #measurement
device_class: energy
data_type: int16
scan_interval: 300
- name: Solinteg Battery Discharge Energy on that day
unique_id: solinteg_battery_discharge_energy_on_that_day
slave: 252
address: 31004
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing #measurement
device_class: energy
data_type: int16
scan_interval: 300
- name: Solinteg PV Generation Energy on that day #E-today from GUI
unique_id: solinteg_pv_generation_energy_on_that_day
slave: 252
address: 31005
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing #measurement
device_class: energy
data_type: int16
scan_interval: 300
- name: Solinteg Loading Energy on that day
unique_id: solinteg_loading_energy_on_that_day
slave: 252
address: 31006
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing #measurement
device_class: energy
data_type: int16
scan_interval: 300
- name: Solinteg Energy Purchased from Grid on that day
unique_id: solinteg_energy_purchased_from_grid_on_that_day
slave: 252
address: 31008
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing #measurement
device_class: energy
data_type: int16
scan_interval: 300
- name: Solinteg Total Energy injected to grid
unique_id: solinteg_total_energy_injected_to_grid
slave: 252
address: 31102
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
data_type: int32
scan_interval: 600
- name: Solinteg Total Energy Purchased from Grid from Meter
unique_id: solinteg_total_energy_purchased_from_grid_from_meter
slave: 252
address: 31104
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
data_type: int32
scan_interval: 600
- name: Solinteg Total Output Energy on backup port
unique_id: solinteg_total_output_energy_on_backup_port
slave: 252
address: 31106
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
data_type: int32
scan_interval: 3600
- name: Solinteg Total Energy Charged to Battery
unique_id: solinteg_total_energy_charged_to_battery
slave: 252
address: 31108
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
data_type: int32
scan_interval: 600
- name: Solinteg Total Energy Discharged from Battery
unique_id: solinteg_total_energy_discharged_from_battery
slave: 252
address: 31110
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
data_type: int32
scan_interval: 600
- name: Solinteg Total PV Generation
unique_id: solinteg_total_pv_generation
slave: 252
address: 31112
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
data_type: int32
scan_interval: 600
- name: Solinteg Total Loading Energy consumed at grid side
unique_id: solinteg_total_loading_energy_consumed_at_grid_side
slave: 252
address: 31114
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
data_type: int32
scan_interval: 3600
- name: Solinteg Total Energy Purchased from Grid at inverter side
unique_id: solinteg_total_energy_purchased_from_grid_at_inverter_side
slave: 252
address: 31118
scale: 0.1
precision: 1
input_type: holding
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
data_type: int32
scan_interval: 3600
- name: Solinteg Total Grid-Injection Energy on Meter
unique_id: solinteg_total_grid_injection_energy_on_meter
slave: 252
address: 11002
input_type: holding
state_class: total_increasing
unit_of_measurement: kWh
device_class: energy
scale: 0.01
precision: 2
data_type: int32
scan_interval: 3600
- name: Solinteg Total Purchasing Energy from Grid on Meter
unique_id: solinteg_total_purchasing_energy_from_grid_on_meter
slave: 252
address: 11004
input_type: holding
state_class: total_increasing
unit_of_measurement: kWh
device_class: energy
scale: 0.01
precision: 2
data_type: int32
scan_interval: 3600
- name: Solinteg Grid Lines A/B Voltage
unique_id: solinteg_grid_lines_a_b_voltage
slave: 252
address: 11006
input_type: holding
unit_of_measurement: V
state_class: measurement
device_class: voltage
scale: 0.1
precision: 1
data_type: int16
scan_interval: 60
- name: Solinteg Grid Lines B/C Voltage
unique_id: solinteg_grid_lines_b_c_voltage
slave: 252
address: 11007
input_type: holding
unit_of_measurement: V
state_class: measurement
device_class: voltage
scale: 0.1
precision: 1
data_type: int16
scan_interval: 60
- name: Solinteg Grid Lines C/A Voltage
unique_id: solinteg_grid_lines_c_a_voltage
slave: 252
address: 11008
input_type: holding
unit_of_measurement: V
state_class: measurement
device_class: voltage
scale: 0.1
precision: 1
data_type: int16
scan_interval: 60
- name: Solinteg Grid Phase A Voltage
unique_id: solinteg_grid_phase_a_voltage
slave: 252
address: 11009
input_type: holding
unit_of_measurement: V
state_class: measurement
device_class: voltage
scale: 0.1
precision: 1
data_type: int16
scan_interval: 60
- name: Solinteg Grid Phase B Voltage
unique_id: solinteg_grid_phase_b_voltage
slave: 252
address: 11011
input_type: holding
unit_of_measurement: V
state_class: measurement
device_class: voltage
scale: 0.1
precision: 1
data_type: int16
scan_interval: 60
- name: Solinteg Grid Phase C Voltage
unique_id: solinteg_grid_pase_c_voltage
slave: 252
address: 11013
input_type: holding
unit_of_measurement: V
state_class: measurement
device_class: voltage
scale: 0.1
precision: 1
data_type: int16
scan_interval: 60
- name: Solinteg Grid Phase A Current
unique_id: solinteg_grid_phase_a_current
slave: 252
address: 11010
input_type: holding
state_class: measurement
unit_of_measurement: A
device_class: current
scale: 0.1
precision: 1
data_type: int16
scan_interval: 60
- name: Solinteg Grid Phase B Current
unique_id: solinteg_grid_phase_b_current
slave: 252
address: 11012
input_type: holding
state_class: measurement
unit_of_measurement: A
device_class: current
scale: 0.1
precision: 1
data_type: int16
scan_interval: 60
- name: Solinteg Grid Phase C Current
unique_id: solinteg_grid_phase_c_current
slave: 252
address: 11014
input_type: holding
state_class: measurement
unit_of_measurement: A
device_class: current
scale: 0.1
precision: 1
data_type: int16
scan_interval: 60
- name: Solinteg P AC
unique_id: solinteg_p_ac
slave: 252
address: 11016
input_type: holding
state_class: measurement
unit_of_measurement: kW
device_class: power
scale: 0.001
precision: 3
data_type: int32
scan_interval: 10
- name: Solinteg Total PV Generation on that day
unique_id: solinteg_total_pv_generation_on_that_day
slave: 252
address: 11018
input_type: holding
state_class: total_increasing #measurement
device_class: energy
unit_of_measurement: kWh
scale: 0.1
precision: 1
data_type: int32
scan_interval: 1800
- name: Solinteg Total PV Generation from Installation
unique_id: solinteg_total_pv_generation_from_installation
slave: 252
address: 11020
input_type: holding
state_class: total_increasing #measurement
device_class: energy
unit_of_measurement: kWh
scale: 0.1
precision: 1
data_type: int32
scan_interval: 3600
- name: Solinteg PV Input Total Power #PV power, panel actual power
unique_id: solinteg_pv_input_total_power
slave: 252
address: 11028
input_type: holding
state_class: measurement
device_class: power
unit_of_measurement: kW
scale: 0.001
precision: 3
data_type: int32
scan_interval: 10
- name: Solinteg Temperature Sensor 1
unique_id: solinteg_temperature_sensor_1
slave: 252
address: 11032
input_type: holding
state_class: measurement
unit_of_measurement: °C
device_class: temperature
scale: 0.1
precision: 1
data_type: int16
scan_interval: 600
- name: Solinteg Temperature Sensor 2
unique_id: solinteg_temperature_sensor_2
slave: 252
address: 11033
input_type: holding
state_class: measurement
unit_of_measurement: °C
device_class: temperature
scale: 0.1
precision: 1
data_type: int16
scan_interval: 600
- name: Solinteg Temperature Sensor 3
unique_id: solinteg_temperature_sensor_3
slave: 252
address: 11034
input_type: holding
state_class: measurement
unit_of_measurement: °C
device_class: temperature
scale: 0.1
precision: 1
data_type: int16
scan_interval: 600
- name: Solinteg Temperature Sensor 4
unique_id: solinteg_temperature_sensor_4
slave: 252
address: 11035
input_type: holding
state_class: measurement
unit_of_measurement: °C
device_class: temperature
scale: 0.1
precision: 1
data_type: int16
scan_interval: 600
- name: Solinteg PV1 Voltage
unique_id: solinteg_pv1_voltage
slave: 252
address: 11038
input_type: holding
unit_of_measurement: V
state_class: measurement
device_class: voltage
scale: 0.1
precision: 1
data_type: int16
scan_interval: 300
- name: Solinteg PV2 Voltage
unique_id: solinteg_pv2_voltage
slave: 252
address: 11040
input_type: holding
unit_of_measurement: V
state_class: measurement
device_class: voltage
scale: 0.1
precision: 1
data_type: int16
scan_interval: 300
- name: Solinteg PV1 Current
unique_id: solinteg_pv1_current
slave: 252
address: 11039
input_type: holding
state_class: measurement
unit_of_measurement: A
device_class: current
scale: 0.1
precision: 1
data_type: int16
scan_interval: 300
- name: Solinteg PV2 Current
unique_id: solinteg_pv2_current
slave: 252
address: 11041
input_type: holding
state_class: measurement
unit_of_measurement: A
device_class: current
scale: 0.1
precision: 1
data_type: int16
scan_interval: 300
- name: Solinteg PV1 Input Power
unique_id: solinteg_pv1_input_power
slave: 252
address: 11062
input_type: holding
state_class: measurement
unit_of_measurement: kW
device_class: power
scale: 0.001
precision: 3
data_type: int32
scan_interval: 10
- name: Solinteg PV2 Input Power
unique_id: solinteg_pv2_input_power
slave: 252
address: 11064
input_type: holding
state_class: measurement
unit_of_measurement: kW
device_class: power
scale: 0.001
precision: 3
data_type: int32
scan_interval: 10
- name: Solinteg Total Backup P #load power
unique_id: solinteg_total_backup_p
slave: 252
address: 30230
input_type: holding
state_class: measurement
unit_of_measurement: kW
device_class: power
scale: 0.001
precision: 3
data_type: int32
scan_interval: 10
- name: Solinteg Battery V #DC Voltage
unique_id: solinteg_battery_v
slave: 252
address: 30254
input_type: holding
unit_of_measurement: V
state_class: measurement
device_class: voltage
scale: 0.1
precision: 1
data_type: int16
scan_interval: 300
- name: Solinteg Battery I #DC Current
unique_id: solinteg_battery_i
slave: 252
address: 30255
input_type: holding
state_class: measurement
unit_of_measurement: A
device_class: current
scale: 0.1
precision: 1
data_type: int16
scan_interval: 300
- name: Solinteg Battery P #Battery Power
unique_id: solinteg_battery_p
slave: 252
address: 30258
input_type: holding
state_class: measurement
unit_of_measurement: kW
device_class: power
scale: 0.001
precision: 3
data_type: int32
scan_interval: 10
- name: Solinteg Battery Mode #0:discharge;1:charge
unique_id: solinteg_battery_mode
slave: 252
address: 30256
input_type: holding
data_type: int16
scan_interval: 10
- name: Solinteg BMS Pack Temperature
unique_id: solinteg_bms_pack_temperature
slave: 252
address: 33003
input_type: holding
state_class: measurement
unit_of_measurement: °C
device_class: temperature
scale: 0.1
precision: 1
data_type: int16
scan_interval: 300
- name: Solinteg Battery SOC
unique_id: solinteg_battery_soc
slave: 252
address: 33000
input_type: holding
state_class: measurement
#unit_of_measurement: '%'
device_class: battery
scale: 0.01
precision: 2
data_type: int16
scan_interval: 60
- name: Solinteg Battery SOH
unique_id: solinteg_battery_soh
slave: 252
address: 33001
input_type: holding
state_class: measurement
#unit_of_measurement: '%'
device_class: battery
scale: 0.01
precision: 2
data_type: int16
scan_interval: 3600
#RW values
- name: Solinteg Hybrid Inverter Working Mode Setting #257=General mode; 258=Economic mode; 259=UPS mode; asi 512=Off grid mode
unique_id: solinteg_hybrid_inverter_working_mode_setting #RW
slave: 252
address: 50000
input_type: holding
data_type: int16
scan_interval: 60
- name: Solinteg Grid Injection Power Limit Switch #0:Off;1:ON
unique_id: solinteg_grid_injection_power_limit_switch #RW
slave: 252
address: 25100
input_type: holding
data_type: int16
scan_interval: 360
- name: Solinteg Grid Injection Power Limit Setting #[0.0%-100.0%]
unique_id: solinteg_grid_injection_power_limit_setting #RW
slave: 252
address: 25103
input_type: holding
scale: 0.1 #spec: 1000
precision: 1
data_type: int16
scan_interval: 360
- name: Solinteg Priority Power Output Setting #0:PV Output Priority ; 1:Battery Output Priority
unique_id: solinteg_priority_power_output_setting #RW
slave: 252
address: 50210
input_type: holding
data_type: int16
scan_interval: 360
- name: Solinteg On-grid Battery End SOC #[0.0%-100.0%]
unique_id: solinteg_on_grid_battery_end_soc #RW
slave: 252
address: 52503
input_type: holding
scale: 0.1 #spec: 1000
precision: 1
data_type: int16
scan_interval: 360
- name: Solinteg Off-grid Battery End SOC #[0.0%-100.0%]
unique_id: solinteg_off_grid_battery_end_soc #RW
slave: 252
address: 52505
input_type: holding
scale: 0.1 #spec: 1000
precision: 1
data_type: int16
scan_interval: 360
- name: Solinteg On-grid Battery SOC Protection Switch #0:Off;1:ON
unique_id: solinteg_on_grid_battery_soc_protection_switch #RW
slave: 252
address: 52502
input_type: holding
data_type: int16
scan_interval: 360
- name: Solinteg Off-grid Battery SOC Protection Switch #0:Off;1:ON
unique_id: solinteg_off_grid_battery_soc_protection_switch #RW
slave: 252
address: 52504
input_type: holding
data_type: int16
scan_interval: 360
sensor:
- platform: template
sensors:
solinteg_battery_mode_text:
friendly_name: Solinteg Battery Mode
value_template: >
{% if states('sensor.solinteg_battery_mode') == '0' %}
discharge
{% else %}
charge
{% endif %}
solinteg_hybrid_inverter_working_mode_setting_text:
friendly_name: Solinteg Hybrid Inverter Working Mode
value_template: >
{% if states('sensor.solinteg_hybrid_inverter_working_mode_setting') == '257' %}
General mode
{% elif states('sensor.solinteg_hybrid_inverter_working_mode_setting') == '258' %}
Economic mode
{% elif states('sensor.solinteg_hybrid_inverter_working_mode_setting') == '259' %}
UPS mode
{% elif states('sensor.solinteg_hybrid_inverter_working_mode_setting') == '512' %}
Offgrid mode
{% endif %}
solinteg_inverter_running_status_text:
friendly_name: Solinteg Inverter Running Status
value_template: >
{% if states('sensor.solinteg_inverter_running_status') == '0' %}
wait
{% elif states('sensor.solinteg_inverter_running_status') == '1' %}
check
{% elif states('sensor.solinteg_inverter_running_status') == '2' %}
On Grid
{% elif states('sensor.solinteg_inverter_running_status') == '3' %}
fault
{% elif states('sensor.solinteg_inverter_running_status') == '4' %}
flash
{% elif states('sensor.solinteg_inverter_running_status') == '5' %}
Off Grid
{% endif %}
@enolikingdev
Copy link
Author

Out of the box configuration for Solinteg hybrid inverters. Works with the basic Solinteg Wi-Fi module.

Original source: https://github.com/GiZMoSK1221/hass-addons/tree/main/wattsonic

Special thanks to Attilla Keller:
https://www.facebook.com/groups/HomeAssistant/posts/3872367566367918/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment