Zum Inhalt

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