31. August 2025 12:00 · Home Assistant
Kurzfassung: Dieses Blueprint prüft täglich zu deiner Wunschzeit alle Entitäten mit
device_class: battery
(sowohlsensor
mit%
als auchbinary_sensor
), sammelt alle, die unter deinem Schwellwert liegen bzw. „an“ sind – und führt dann deine frei konfigurierbaren Aktionen aus (Push, Telegram, E‑Mail, …).
📥 Ein‑Klick‑Import
💡 Tipp: Falls der Import‑Dialog meckert, nutze die RAW‑URL (ersetzt
blob/main
durchraw/main
).
🧩 Blueprint‑Beschreibung
blueprint:
name: Erkennung & Benachrichtigung bei niedrigem Batteriestand für alle Batterie-Sensoren
description: Überprüft regelmäßig alle Sensoren mit der Geräteklasse 'battery' …
domain: automation
🔧 Eingaben / Optionen
- Schwellenwert für Batteriewarnung (
threshold
) Slider 5–100 %, Schrittweite 5 %, Standard 20 %. Alles < threshold gilt als „niedrig“. - Zeitpunkt der Überprüfung (
time
) Uhrzeit, zu der geprüft wird (Standard 10:00). - Wochentage der Überprüfung (
day
) Liste der Wochentage (ISO‑Wochentag 1–7). Wichtig: Mindestens einen Tag wählen – ist die Liste leer, läuft die Automation nie. - Ausgeschlossene Sensoren (
exclude
) Entitäten (z. B. Smartphone‑Batterie) die ignoriert werden sollen. Mehrfachauswahl möglich. - Aktionen (
actions
) Beliebige Aktion(en), die ausgeführt werden, wenn mindestens ein Sensor als niedrig erkannt wurde. Du kannst im Nachrichtentext{{sensors}}
verwenden – das wird durch eine Zeilenliste der betroffenen Sensor‑Namen ersetzt.
🧠 Funktionsweise (vereinfacht)
- Sucht in
states.sensor
alle Battery‑Sensoren mit Einheit%
und nimmt jene mit0 ≤ Wert < threshold
auf. - Sucht zusätzlich in
states.binary_sensor
nach Battery‑Sensoren mit Zustandon
und nimmt diese auf. - Baut daraus die Variable
sensors
als Zeilenliste (ein Name pro Zeile). - Trigger: täglich zur gewählten Uhrzeit.
- Bedingung: es gibt mindestens einen Eintrag in
sensors
und der heutige Wochentag ist inday
enthalten. - Aktion: führt exakt die in
actions
konfigurierten Schritte aus.
🚀 Schnelleinstieg
- Importieren per Badge oben.
- Instanz anlegen: Zeit, Wochentage, Schwellenwert wählen.
- Entitäten ausschließen (optional), z. B. Smartphone‑Batterie.
- Aktion(en) definieren, z. B. Mobile Push + Persistente Notification.
- Speichern – fertig.
📨 Praxis‑Beispiele für Aktionen
1) Mobile App Push
- service: notify.mobile_app_DEIN_TELEFON
data:
title: "🔋 Batterie‑Alarm"
message: |
Folgende Batterien sind niedrig (Schwellenwert {{ threshold }}%):
{{ sensors }}
2) Persistente Benachrichtigung (für's Log)
- service: persistent_notification.create
data:
title: "🔋 Batterie‑Alarm"
message: |
<b>{{ now().strftime('%d.%m.%Y %H:%M') }}</b><br>
Die folgenden Batterien sind niedrig (≤ {{ threshold }}% bzw. binär *an*):<br>
{{ sensors | replace('
', '<br>') }}
3) Telegram
- service: notify.telegram
data:
message: |
🔋 *Batterie‑Alarm*
_Schwelle:_ {{ threshold }}%
{{ sensors }}
parse_mode: markdown
Du kannst Aktionen natürlich kombinieren (Push und Telegram und Log), oder stattdessen eine Szene / ein Script triggern.
🧪 Test & Fehlersuche
- Schnelltest: Setze den Schwellenwert testweise z. B. auf 95 % und lege die nächste Uhrzeit gleich fest.
- Keine Treffer? Prüfe, ob deine Battery‑Sensoren die Einheit
%
haben. Ohne Prozent‑Einheit werden sie absichtlich übersprungen. - Binäre Battery‑Sensoren: Werden als „niedrig“ gewertet, wenn ihr Zustand
on
ist. - Nichts passiert? Hast du mindestens einen Wochentag ausgewählt? Ist die Uhrzeit schon vorbei, wird erst am nächsten gewählten Tag ausgelöst.
- Smartphone nervt? Einfach in
exclude
aufnehmen.
❓ FAQ
Warum nur Sensoren mit Prozent‑Einheit? Um falsche Alarme zu vermeiden. Manche Integrationen liefern Spannungswerte – die sind nicht vergleichbar.
Kann ich mehrere Instanzen anlegen? Ja, z. B. eine für „täglich 08:00“ (Push) und eine für „sonntags 18:00“ (E‑Mail‑Reminder).
Lässt sich die Liste sortieren?
Die sensors
‑Liste ist bereits stabil formatiert (eine Zeile je Gerät). Sortierung kann bei Bedarf in einer angehängten Template‑Aktion erfolgen.
🧾 Vollständiges Blueprint (Referenz)
Du verwendest am besten den Import‑Button oben; hier zur Nachschlagezwecken die Rohfassung (identisch zur Version aus dem Link):
blueprint:
name: Erkennung & Benachrichtigung bei niedrigem Batteriestand für alle Batterie-Sensoren
description: >
Überprüft regelmäßig alle Sensoren mit der Geräteklasse 'battery', ob sie
einen bestimmten Schwellenwert unterschreiten, und führt dann eine Aktion aus.
domain: automation
input:
threshold:
name: Schwellenwert für Batteriewarnung
description: Batterie-Sensoren unterhalb dieses Wertes werden als schwach angesehen
(ebenso wie binäre Batterie-Sensoren mit dem Wert 'on').
default: 20
selector:
number:
min: 5.0
max: 100.0
unit_of_measurement: '%'
mode: slider
step: 5.0
time:
name: Zeitpunkt der Überprüfung
description: Die Überprüfung wird zur konfigurierten Zeit durchgeführt.
default: '10:00:00'
selector:
time: {}
day:
name: Wochentage der Überprüfung
description: >
Wähle die Wochentage aus, an denen die Überprüfung durchgeführt werden soll.
Mehrere Tage können gleichzeitig ausgewählt werden.
default: []
selector:
select:
options:
- label: Montag
value: "1"
- label: Dienstag
value: "2"
- label: Mittwoch
value: "3"
- label: Donnerstag
value: "4"
- label: Freitag
value: "5"
- label: Samstag
value: "6"
- label: Sonntag
value: "7"
multiple: true
mode: list
exclude:
name: Ausgeschlossene Sensoren
description: Batterie-Sensoren (z. B. Smartphone), die von der Erkennung ausgeschlossen werden sollen.
Nur Entitäten werden unterstützt, Geräte müssen einzeln ausgewählt werden!
default: {entity_id: []}
selector:
target:
entity:
device_class: battery
actions:
name: Aktionen
description: Benachrichtigungen oder ähnliche Aktionen, die ausgeführt werden sollen.
{{sensors}} wird durch die Namen der Sensoren mit niedrigem Batteriestand ersetzt.
selector:
action: {}
variables:
day: !input 'day'
threshold: !input 'threshold'
exclude: !input 'exclude'
sensors: >-
{% set result = namespace(sensors=[]) %}
{% for state in states.sensor
| selectattr('attributes.device_class', '==', 'battery')
| selectattr('attributes.unit_of_measurement', 'defined')
| selectattr('attributes.unit_of_measurement', '==', '%') %}
{% if 0 <= state.state | int(-1) < threshold | int and not state.entity_id in exclude.entity_id %}
{% set result.sensors = result.sensors + [state.name ~ ' (' ~ state.state ~ ' %)'] %}
{% endif %}
{% endfor %}
{% for state in states.binary_sensor
| selectattr('attributes.device_class', '==', 'battery')
| selectattr('state', '==', 'on') %}
{% if not state.entity_id in exclude.entity_id %}
{% set result.sensors = result.sensors + [state.name] %}
{% endif %}
{% endfor %}
{{ result.sensors | join('
') }}
trigger:
- platform: time
at: !input 'time'
condition:
- "{{ sensors != '' and (now().isoweekday() | string) in day }}"
action:
- choose: []
default: !input 'actions'
mode: single
Viel Spaß – und nie wieder überraschend leere Batterien! 🔋🎯