Akku Gesamt SoC
Fasst mehrere Batteriespeicher zu einem nach Kapazität gewichteten Ladestand zusammen. Zeigt das namespace-Pattern für Schleifen in Jinja.
Entitäten:sensor.akku_gesamt_soc
Was brauchst du dafür?
Geräte
- Sensor
Was musst du anpassen?
| Platzhalter | Ersetze mit |
|---|---|
| DEIN_SPEICHER_A_SOC | Ladestand deines ersten Speichers in % (z.B. sensor.speicher_soc) |
| DEIN_SPEICHER_B_SOC | Ladestand deines zweiten Speichers in % |
Akku Gesamt SoC
# Entity-IDs sind anonymisiert. Ersetze sie durch deine eigenen.
# Beispiel: light.dein_wohnzimmer_licht -> light.wohnzimmer_deckenlampe
# Template Sensor: Gesamtladestand mehrerer Speicher
# Fasst mehrere Batteriespeicher zu einem Ladestand zusammen.
#
# Wichtig: Der Mittelwert wird nach Kapazität GEWICHTET. Ein einfacher
# Durchschnitt aus drei Prozentwerten wäre falsch, weil ein 12-kWh-Speicher
# mit 20 Prozent deutlich mehr Energie hält als ein 5-kWh-Speicher mit
# 80 Prozent.
#
# Trag in "parts" deine Speicher ein: Entity-ID und Kapazität in kWh.
# Die Liste darf beliebig lang sein, das Template kommt damit klar.
# Speicher, die gerade unavailable sind, fallen per is_number() raus,
# statt die Rechnung mit einer 0 zu verfälschen.
template:
- sensor:
- name: "Akku Gesamt SoC"
unique_id: akku_gesamt_soc
unit_of_measurement: "%"
device_class: battery
state_class: measurement
icon: mdi:battery-high
availability: >
{{ has_value('sensor.DEIN_SPEICHER_A_SOC')
or has_value('sensor.DEIN_SPEICHER_B_SOC') }}
state: >
{% set parts = [
(states('sensor.DEIN_SPEICHER_A_SOC'), 10.0),
(states('sensor.DEIN_SPEICHER_B_SOC'), 5.0)] %}
{% set ns = namespace(energie=0.0, kapazität=0.0) %}
{% for stand, kwh in parts %}
{% if is_number(stand) %}
{% set ns.energie = ns.energie + (stand | float) * kwh %}
{% set ns.kapazität = ns.kapazität + kwh %}
{% endif %}
{% endfor %}
{% if ns.kapazität > 0 %}
{{ (ns.energie / ns.kapazität) | round(1) }}
{% endif %}
