Solis Modbus Integration for Home Assistant

Description
The Solis Modbus Integration for Home Assistant is a streamlined solution to connect your Solis inverter with Home Assistant. This integration was inspired by fboundy’s ha_solis_modbus. However, it enhances the native Modbus integration in Home Assistant by consolidating multiple register queries into single calls, eliminating unnecessary overhead.
Documentation
https://solis-modbus.readthedocs.io/
Solis cloud
You will lose access, unless you use a waveshare device. You will still have the option to disable the modbus, when updates are required. https://github.com/Pho3niX90/solis_modbus/discussions/154
Installation
To install the Solis Modbus Integration, follow these steps:
Open your Home Assistant instance.
Navigate to the “HACS”.
Click the 3 dots menu
Click on “Custom Repositories”
Fill in the repository “https://github.com/Pho3niX90/solis_modbus”, and category “Integration”
Now search for “Solis Modbus”
Click on Download
Total Sensors
Whilst the solis inverters do provide total sensors for today, yesterday, month and year. I highly suggest to create a utility meter in HA, as a time difference between HA and Solis might have the values reset before midnight, causing issues in charts.
Manual Installation
Copy the “solis_modbus” folder into your “custom_components” folder
Setup
Navigate to Settings -> Devices & Services
Click on “+ Add Integration”
Search for “Solis Modbus”
Add in the IP of your inverter in the first box, and port in the second.
Connection Type
: S2 is the default option, only select waveshare if you are using a waveshare device, and some sensors are higher than normal, see here https://solis-modbus.readthedocs.io/en/latest/sensors.html#waveshare
JK BMS
Get the card here : https://github.com/Pho3niX90/jk-bms-card
Solar card setup:
type: custom:sunsynk-power-flow-card
view_layout:
grid-area: flow
cardstyle: lite
large_font: true
show_solar: true
panel_mode: true
card_height: 415px
inverter:
model: solis
modern: false
colour: '#959595'
autarky: 'no'
solar:
mppts: 2
show_daily: false
colour: '#F4C430'
animation_speed: 9
max_power: 9600
pv1_name: West
pv2_name: North
battery:
energy: 14280
shutdown_soc: 20
show_daily: true
colour: pink
animation_speed: 6
max_power: 6000
load:
show_aux: false
show_daily: true
animation_speed: 8
max_power: 6000
additional_loads: 2
load2_name: Geyser
load2_icon: mdi:heating-coil
load1_name: Pool
load1_icon: mdi:pool
grid:
show_daily_buy: true
no_grid_colour: red
animation_speed: 8
max_power: 6000
invert_grid: true
entities:
dc_transformer_temp_90: sensor.solis_temperature
day_battery_charge_70: sensor.solis_today_battery_charge_energy
day_battery_discharge_71: sensor.solis_today_battery_discharge_energy
day_load_energy_84: sensor.solis_today_energy_consumption
day_grid_import_76: sensor.solis_today_energy_imported_from_grid
day_grid_export_77: sensor.solis_today_energy_fed_into_grid
day_pv_energy_108: sensor.solis_pv_today_energy_generation
inverter_voltage_154: sensor.solis_a_phase_voltage
load_frequency_192: sensor.solis_grid_frequency
inverter_current_164: sensor.solis_a_phase_current
inverter_power_175: sensor.solis_backup_load_power
grid_power_169: sensor.solis_ac_grid_port_power
battery_voltage_183: sensor.solis_battery_voltage
battery_soc_184: sensor.solis_battery_soc
battery_power_190: sensor.solis_battery_power
battery_current_191: sensor.solis_battery_current
essential_power: sensor.solis_backup_load_power
grid_ct_power_172: sensor.solis_meter_total_active_power
pv1_voltage_109: sensor.solis_dc_voltage_1
pv1_current_110: sensor.solis_dc_current_1
pv1_power_186: sensor.solis_dc_power_1
pv2_power_187: sensor.solis_dc_power_2
pv_total: sensor.solis_total_dc_output
pv2_voltage_111: sensor.solis_dc_voltage_2
pv2_current_112: sensor.solis_dc_voltage_2
grid_voltage: sensor.solis_a_phase_voltage
battery_current_direction: sensor.solis_battery_current_direction
inverter_status_59: sensor.solis_current_status
remaining_solar: sensor.solcast_pv_forecast_forecast_remaining_today
Settings Card Example
type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: entities
entities:
- entity: number.solis_time_charging_charge_current
name: Charge Current
state_color: true
- type: horizontal-stack
cards:
- type: entities
entities:
- entity: number.solis_time_charging_discharge_current
name: Discharge Current
state_color: true
- type: entities
entities:
- entity: switch.solis_time_of_use_mode
type: custom:multiple-entity-row
name: Charge Slot 1
toggle: true
state_header: TOU
state_color: true
icon: mdi:timer
entities:
- entity: time.solis_time_charging_charge_start_slot_1
name: Charge From
- entity: time.solis_time_charging_charge_end_slot_1
name: Charge To
- entity: switch.solis_time_of_use_mode
type: custom:multiple-entity-row
name: Discharge Slot 1
toggle: true
state_header: TOU
state_color: true
icon: mdi:timer
entities:
- entity: time.solis_time_charging_discharge_start_slot_1
name: Charge From
- entity: time.solis_time_charging_discharge_end_slot_1
name: Charge To
- entity: switch.solis_time_of_use_mode
type: custom:multiple-entity-row
name: Charge Slot 2
toggle: true
state_header: TOU
state_color: true
icon: mdi:timer
entities:
- entity: time.solis_time_charging_charge_start_slot_2
name: Charge From
- entity: time.solis_time_charging_charge_end_slot_2
name: Charge To
- entity: switch.solis_time_of_use_mode
type: custom:multiple-entity-row
name: Discharge Slot 2
toggle: true
state_header: TOU
state_color: true
icon: mdi:timer
entities:
- entity: time.solis_time_charging_discharge_start_slot_2
name: Charge From
- entity: time.solis_time_charging_discharge_end_slot_2
name: Charge To
- entity: switch.solis_time_of_use_mode
type: custom:multiple-entity-row
name: Charge Slot 3
toggle: true
state_header: TOU
state_color: true
icon: mdi:timer
entities:
- entity: time.solis_time_charging_charge_start_slot_3
name: Charge From
- entity: time.solis_time_charging_charge_end_slot_3
name: Charge To
- entity: switch.solis_time_of_use_mode
type: custom:multiple-entity-row
name: Discharge Slot 3
toggle: true
state_header: TOU
state_color: true
icon: mdi:timer
entities:
- entity: time.solis_time_charging_discharge_start_slot_3
name: Charge From
- entity: time.solis_time_charging_discharge_end_slot_3
name: Charge To
state_color: true
view_layout:
grid-area: a
Card inspiration from https://github.com/slipx06/Sunsynk-Home-Assistant-Dash
Tested
Inverters Tested Solis and equivalent Axitec, Zonneplan inverters
S6-EH3P
S6-EH3P20K-H (https://github.com/Pho3niX90/solis_modbus/issues/93)
S6-EH3P15K-H
S6-EH3P(12-20)K-H
S6-EH1P6K-L-PRO
S6-EH1P6K-L-PLUS
S6-EH3P10K-H-ZP (https://github.com/Pho3niX90/solis_modbus/issues/191)
S6-EH3P10K-H-EU (https://github.com/Pho3niX90/solis_modbus/issues/202)
S6-GR1P
S6-GR1P4K (https://github.com/Pho3niX90/solis_modbus/issues/84)
S5-EH1
S5-EH1(3-6)K-L (https://github.com/Pho3niX90/solis_modbus/issues/89)
S5-EH1P5K-L (https://github.com/Pho3niX90/solis_modbus/issues/94)
S5-EH1P6K-L (https://github.com/Pho3niX90/solis_modbus/issues/94#issuecomment-2656512651)
S5-GC
S5-GC30K (https://github.com/Pho3niX90/solis_modbus/issues/173)
S5-GC60K (https://github.com/Pho3niX90/solis_modbus/issues/180#issuecomment-2887414843)
RAI-*
RAI-3K-48ES-5G (https://github.com/Pho3niX90/solis_modbus/issues/174)
RHI-*
RHI-3K-48ES-5G (https://github.com/Pho3niX90/solis_modbus/issues/97#issuecomment-2639807764)
3P(3-20)K-4G
3P6K-4G (https://github.com/Pho3niX90/solis_modbus/issues/210)
1P(2.5-6)K-4G
https://github.com/Pho3niX90/solis_modbus/issues/230
Wifi Dongles Tested
S2_WL_ST
Waveshare