modbus:
- name: SMA
type: tcp
host: YOUR_INVERTER_IP_HERE
port: 502
sensors:
- name: SMA_Power_AC
state_class: measurement
unit_of_measurement: W
slave: 3
address: 30775
count: 2
data_type: uint32
scan_interval: 60
- name: PV_Daily_Yield
unit_of_measurement: kWh
state_class: measurement
slave: 3
address: 30517
scan_interval: 60
scale: 0.001
precision: 3
count: 4
data_type: int64
- name: PV_Total_Production
unit_of_measurement: MWh
state_class: measurement
slave: 3
address: 30513
scan_interval: 60
scale: 0.000001
precision: 3
count: 4
data_type: int64
- name: Grid Voltage
unit_of_measurement: V
slave: 3
address: 30783
scan_interval: 60
count: 2
scale: 0.01
precision: 2
data_type: int32
- name: Grid frequency
unit_of_measurement: Hz
slave: 3
address: 30803
scan_interval: 60
count: 2
scale: 0.01
precision: 2
data_type: uint32
- name: SMA_temp
unit_of_measurement: °C
slave: 3
address: 30953
scan_interval: 60
count: 2
scale: 0.1
precision: 1
data_type: int32
- name: SMA_status
slave: 3
address: 30201
scan_interval: 60
count: 2
data_type: int32
- name: SMA_grid
slave: 3
address: 30217
scan_interval: 60
count: 2
data_type: uint32
- name: Insulation
slave: 3
address: 30225
scan_interval: 60
count: 2
scale: 0.001
unit_of_measurement: kOhms
data_type: int32
- name: SMA_Residual_current
slave: 3
address: 31247
scan_interval: 60
count: 2
scale: 1
unit_of_measurement: mA
data_type: int32
- name: Apparent Power
unit_of_measurement: VA
slave: 3
address: 30813
scan_interval: 60
scale: 1
precision: 0
count: 2
data_type: int32
- name: Reactive Power
unit_of_measurement: VAr
slave: 3
address: 30805
scan_interval: 60
scale: 1
precision: 0
count: 2
data_type: int32
sensor:
- platform: template
sensors:
modbus_sma_pv_power:
friendly_name: 'Power Output'
value_template: >-
{% if states('sensor.sma_power_ac')|float < 0 or states('sensor.sma_power_ac')|float > 10000 %}
0
{% else %}
{{ states('sensor.sma_power_ac') }}
{% endif %}
unit_of_measurement: "W"
icon_template: mdi:flash-circle
modbus_sma_pv_power_kw:
friendly_name: 'Power Output kW'
value_template: >-
{% if states('sensor.sma_power_ac')|float < 0 or states('sensor.sma_power_ac')|float > 10000 %}
0
{% else %}
{{ states('sensor.sma_power_ac')|float / 1000 }}
{% endif %}
unit_of_measurement: "kW"
icon_template: mdi:flash-circle
modbus_sma_pv_apparent_power:
friendly_name: 'Apparent Power'
value_template: >-
{% if states('sensor.apparent_power')|float < 0 or states('sensor.apparent_power')|float > 10000 %}
0
{% else %}
{{ states('sensor.apparent_power') }}
{% endif %}
unit_of_measurement: "VA"
icon_template: mdi:flash-circle
modbus_sma_pv_reactive_power:
friendly_name: 'Reactive Power'
value_template: >-
{% if states('sensor.reactive_power')|float < 0 or states('sensor.reactive_power')|float > 10000 %}
0
{% else %}
{{ states('sensor.reactive_power') }}
{% endif %}
unit_of_measurement: "VAr"
icon_template: mdi:flash-circle
modbus_sma_pv_residual:
friendly_name: 'Residual Current'
value_template: >-
{% if states('sensor.sma_residual_current')|float < 0 or states('sensor.sma_residual_current')|float > 10000 %}
0
{% else %}
{{ states('sensor.sma_residual_current') }}
{% endif %}
unit_of_measurement: "mA"
icon_template: mdi:flash-circle
modbus_sma_temperature:
friendly_name: 'Inverter Temp'
value_template: >-
{% if states('sensor.sma_temp')|float < 0 or states('sensor.sma_temp')|float > 100 %}
0
{% else %}
{{ states('sensor.sma_temp') }}
{% endif %}
unit_of_measurement: "°C"
modbus_grid_frequency:
friendly_name: 'Grid Frequency'
value_template: >-
{% if states('sensor.grid_frequency')|float < 30 or states('sensor.grid_frequency')|float > 100 %}
Not Measured
{% else %}
{{ states('sensor.grid_frequency') }}
{% endif %}
unit_of_measurement: "Hz"
modbus_grid_voltage:
friendly_name: 'Grid Voltage'
value_template: >-
{% if states('sensor.grid_voltage')|float < 180 or states('sensor.grid_voltage')|float > 300 %}
Not Measured
{% else %}
{{ states('sensor.grid_voltage') }}
{% endif %}
unit_of_measurement: "V"
modbus_inverter_status:
friendly_name: 'Inverter Status'
value_template: >-
{% if is_state('sensor.sma_status', '307' ) %}
OK
{% elif is_state('sensor.sma_status', '303' ) %}
Off
{% elif is_state('sensor.sma_status', '455' ) %}
Warning
{% elif is_state('sensor.sma_status', '35' ) %}
Fault
{% endif %}
modbus_grid_contactor:
friendly_name: 'Grid contactor'
value_template: >-
{% if is_state('sensor.sma_grid', '51' ) %}
Closed
{% else %}
Open
{% endif %}
- platform: integration
source: sensor.modbus_sma_pv_power_kw
name: Panneaux_Solaires
unit_time: h
round: 2
method: left
homeassistant:
customize: !include customize.yaml
And in the customize.yaml
sensor.Panneaux_Solaires:
state_class: total_increasing
device_class: energy
unit_of_measurement: kWh
last_reset: '2022-11-02T11:35:23.862268+00:00'
Once done in the Energy Panel configuration, you can choose the Panneaux_Solaires sensor
Settings - Dashoards - Energy
