YAML – Strom & Solar¶
Dokumentation: Energie
Package: Strom- und PV-Sensoren¶
Quelle in HA: /config/packages/strom.yaml
Enthält:
- sensor.strom_zahlerstand — Zählerstand mit Fallback auf letzten gültigen Wert
- sensor.strom_netzbezug_gesamt — Netzbezug mit Plausibilitätsfilter (−1.200–20.000 W)
- sensor.solarbank_pv_ost_energie — Tagesenergie PV-Module 1+2 (Ost), spike-geschützt
- sensor.solarbank_pv_west_energie — Tagesenergie PV-Module 3+4 (West), spike-geschützt
- input_boolean.solix_akkureserve_individuell — Schalter für die individuelle Anker-Solix-Akkureserve
- input_number.solix_akkureserve_soc_min — Untergrenze für den Solix-Akkureserve-Modus
template:
# Strom- und PV-Template-Sensoren.
# Dieses Package bündelt abgeleitete Stromwerte aus Smartmeter/SMR und Solix.
# Wasser/Gartenwasser bleiben getrennt, weil sie fachlich nicht zum Stromblock gehören.
- sensor:
- name: "Strom Zählerstand"
unique_id: zahlerstand
unit_of_measurement: "kWh"
state_class: total_increasing
device_class: energy
icon: mdi:meter-electric
state: >
{% set neuer = states('sensor.strom_smr_e_in') %}
{% set alt = states('sensor.zahlerstand') %}
{% if neuer | is_number %}
{{ neuer | float(0) }}
{% elif alt | is_number %}
{{ alt | float(0) }}
{% else %}
0
{% endif %}
- name: "Strom Netzbezug Gesamt"
unique_id: strom_netzbezug_gesamt
unit_of_measurement: "W"
device_class: power
state_class: measurement
state: >-
{% set p_in = states('sensor.strom_smr_p_in') | float(none) %}
{% if p_in is not none and -1200 <= p_in <= 20000 %}
{{ p_in }}
{% else %}
{{ this.state | float(0) }}
{% endif %}
availability: "{{ states('sensor.strom_smr_p_in') | is_number }}"
- name: "Solarbank 3 E2700 Pro PV Ost Energie"
unique_id: solarbank_pv_ost_energy
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
availability: >
{% set pv1 = states('sensor.system_home_tagliche_pv_1') %}
{% set pv2 = states('sensor.system_home_tagliche_pv_2') %}
{{ pv1 not in ['unknown','unavailable',''] and pv2 not in ['unknown','unavailable',''] }}
state: >
{% set new = states('sensor.system_home_tagliche_pv_1')|float(0)
+ states('sensor.system_home_tagliche_pv_2')|float(0) %}
{% set old = this.state|float(0) %}
{% set last = as_datetime(this.last_changed) if this.last_changed else now() %}
{% set reset = (last.date() != now().date()) %}
{{ new if reset else [new, old]|max }}
- name: "Solarbank 3 E2700 Pro PV West Energie"
unique_id: solarbank_pv_west_energy
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
availability: >
{% set pv3 = states('sensor.system_home_tagliche_pv_3') %}
{% set pv4 = states('sensor.system_home_tagliche_pv_4') %}
{{ pv3 not in ['unknown','unavailable',''] and pv4 not in ['unknown','unavailable',''] }}
state: >
{% set new = states('sensor.system_home_tagliche_pv_3')|float(0)
+ states('sensor.system_home_tagliche_pv_4')|float(0) %}
{% set old = this.state|float(0) %}
{% set last = as_datetime(this.last_changed) if this.last_changed else now() %}
{% set reset = (last.date() != now().date()) %}
{{ new if reset else [new, old]|max }}
input_boolean:
# Anker Solix: individuelle Akkureserve aktivieren.
solix_akkureserve_individuell:
name: Solix Individuelle Akkureserve aktiv
icon: mdi:battery-heart-variant
input_number:
# Solix-Untergrenze für den individuellen Akkureserve-Modus.
solix_akkureserve_soc_min:
name: Solix SOC Untergrenze
min: 10
max: 100
step: 5
unit_of_measurement: "%"
icon: mdi:battery-minus