Hallo in die Runde,
ich lasse mich zu jedem mir wichtigen Ereignis per anhaltender Nachricht benachrichtigen, alle Nachrichten haben einen Zeitstempel, gleichzeitig werden neu eingegangene Benachrichtigungen per Automation auch an meine Mobilgeräte verteilt. Ich finde die Übersicht über die anhaltenden Benachrichtigungen in HA gut, so kann man auch später nochmal schneller was nachvollziehen, ohne umständlich anderswo im HA wühlen zu müssen. Leider werden die anhaltenden Benachrichtigungen ja aber mit jedem HA Neustart gelöscht, also gibt es eine Möglichkeit, das zu verhindern und/oder das vielleicht nur Nachrichten älter als x Tage automatisch gelöscht werden?
Hier ist ein Bsp. wie ich das mache:
alias: Batterie unter 10% Benachrichtigung
description: >
Benachrichtigt, wenn einer der Prozent-Batteriesensoren unter 10% fällt oder
ein Binary-Batteriesensor den Status ‘low’ hat – auch nach einem Neustart von
Home Assistant.
triggers:
* entity_id:
* sensor.bad_schalter_batterie
* sensor.bewegung_bad_oben_batterie
* sensor.bewegung_vorsaal_oben_batterie
* sensor.bewegung_vorsaal_unten_batterie
* sensor.briefkasten_batterie
* sensor.carport_bewegungsmelder_batterie
* sensor.eingang_bewegungsmelder_batterie
* sensor.kuche_taster_batterie
* sensor.office_taster_batterie
* sensor.paket_batterie
* sensor.schlafzimmer_taster_batterie
* sensor.hausture_batterie
* sensor.wohnungsture_batterie
* sensor.buddy_tracker_batterie
* sensor.partybox_batterie
* sensor.roborock_flexi_pro_batterie
* sensor.husqvarna_automower_batterie
* sensor.garden_sensor_batterie
* sensor.water_control_battery_level
* sensor.heizung_bad_batterie
* sensor.aarlo_battery_level_buddy
* sensor.aarlo_battery_level_kamera_buddy
* sensor.aarlo_battery_level_kamera_carport
* sensor.aarlo_battery_level_kamera_eingang
* sensor.aarlo_battery_level_kamera_garten
* sensor.aarlo_battery_level_klingel
* sensor.io_chris_batterie
* sensor.io_sindy_batterie
* sensor.lounge_taster_batterie
below: 10
trigger: numeric_state
* value_template: “{{ is_state(‘binary_sensor.balkonture_sensor_battery’, ‘low’) }}”
id: balkonture_sensor
trigger: template
* value_template: “{{ is_state(‘binary_sensor.getranke_sensor_battery’, ‘low’) }}”
id: getranke_sensor
trigger: template
* value_template: “{{ is_state(‘binary_sensor.kuchenfenster_sensor_battery’, ‘low’) }}”
id: kuchenfenster_sensor
trigger: template
* value_template: “{{ is_state(‘binary_sensor.lagerfenster_sensor_battery’, ‘low’) }}”
id: lagerfenster_sensor
trigger: template
* value_template: “{{ is_state(‘binary_sensor.loungfenster_sensor_battery’, ‘low’) }}”
id: loungfenster_sensor
trigger: template
* value_template: “{{ is_state(‘binary_sensor.dach_rauchmelder_batterie’, ‘low’) }}”
id: dach_rauchmelder
trigger: template
* value_template: “{{ is_state(‘binary_sensor.rauchmelder_vorsaal_oben_batterie’, ‘low’) }}”
id: rauchmelder_vorsaal_oben
trigger: template
* value_template: “{{ is_state(‘binary_sensor.rauchmelder_flur_batterie’, ‘low’) }}”
id: rauchmelder_flur
trigger: template
* value_template: “{{ is_state(‘binary_sensor.tur_sensor_battery’, ‘low’) }}”
id: tur_sensor
trigger: template
* event: start
trigger: homeassistant
conditions: [ ]
actions:
* choose:
* conditions:
* condition: template
value_template: “{{ trigger.platform == ‘homeassistant’ }}”
sequence:
* repeat:
for_each:
- sensor.bad_schalter_batterie
- sensor.bewegung_bad_oben_batterie
- sensor.bewegung_vorsaal_oben_batterie
- sensor.bewegung_vorsaal_unten_batterie
- sensor.briefkasten_batterie
- sensor.carport_bewegungsmelder_batterie
- sensor.eingang_bewegungsmelder_batterie
- sensor.kuche_taster_batterie
- sensor.office_taster_batterie
- sensor.paket_batterie
- sensor.schlafzimmer_taster_batterie
- sensor.hausture_batterie
- sensor.wohnungsture_batterie
- sensor.buddy_tracker_batterie
- sensor.partybox_batterie
- sensor.roborock_flexi_pro_batterie
- sensor.husqvarna_automower_batterie
- sensor.garden_sensor_batterie
- sensor.water_control_battery_level
- sensor.heizung_bad_batterie
- sensor.aarlo_battery_level_buddy
- sensor.aarlo_battery_level_kamera_buddy
- sensor.aarlo_battery_level_kamera_carport
- sensor.aarlo_battery_level_kamera_eingang
- sensor.aarlo_battery_level_kamera_garten
- sensor.aarlo_battery_level_klingel
- sensor.io_chris_batterie
- sensor.io_sindy_batterie
- sensor.lounge_taster_batterie
sequence:
- condition: template
value_template: “{{ states(repeat.item)|float(100) < 10 }}”
- data:
title: Batteriewarnung (nach Neustart)
message: >
Die Batterie von {{
state_attr(repeat.item,‘friendly_name’) or repeat.item }}
ist niedrig ({{ states(repeat.item) }}%).
action: persistent_notification.create
* repeat:
for_each:
- binary_sensor.balkonture_sensor_battery
- binary_sensor.getranke_sensor_battery
- binary_sensor.kuchenfenster_sensor_battery
- binary_sensor.lagerfenster_sensor_battery
- binary_sensor.loungfenster_sensor_battery
- binary_sensor.dach_rauchmelder_batterie
- binary_sensor.rauchmelder_vorsaal_oben_batterie
- binary_sensor.rauchmelder_flur_batterie
- binary_sensor.tur_sensor_battery
sequence:
- condition: template
value_template: “{{ is_state(repeat.item, ‘low’) }}”
- data:
title: Batteriewarnung (nach Neustart)
message: >
Die Batterie von {{
state_attr(repeat.item,‘friendly_name’) or repeat.item }}
ist low.
action: persistent_notification.create
* conditions:
* condition: template
value_template: “{{ trigger.platform == ‘numeric_state’ }}”
sequence:
* data:
title: Batteriewarnung
message: >
Die Batterie von {{ trigger.to_state.name }} ist niedrig ({{
trigger.to_state.state }}%).
action: persistent_notification.create
* conditions:
* condition: template
value_template: “{{ trigger.platform == ‘template’ and trigger.id is defined }}”
sequence:
* data:
title: Batteriewarnung
message: >
{% set binary_map = {
‘balkonture_sensor’: ‘binary_sensor.balkonture_sensor_battery’,
‘getranke_sensor’: ‘binary_sensor.getranke_sensor_battery’,
‘kuchenfenster_sensor’: ‘binary_sensor.kuchenfenster_sensor_battery’,
‘lagerfenster_sensor’: ‘binary_sensor.lagerfenster_sensor_battery’,
‘loungfenster_sensor’: ‘binary_sensor.loungfenster_sensor_battery’,
‘dach_rauchmelder’: ‘binary_sensor.dach_rauchmelder_batterie’,
‘rauchmelder_vorsaal_oben’: ‘binary_sensor.rauchmelder_vorsaal_oben_batterie’,
‘rauchmelder_flur’: ‘binary_sensor.rauchmelder_flur_batterie’,
‘tur_sensor’: ‘binary_sensor.tur_sensor_battery’
} %}
Die Batterie von {{ state_attr(binary_map\[trigger.id\],
“friendly_name”) or binary_map\[trigger.id\] }} ist low.
action: persistent_notification.create
mode: parallel
by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶 )
mostie
27. Januar 2026 um 19:36
3
Die Benachrichtigungen sind per Design nur bis zum Restart vorhanden. Es gibt mehrere Ansätze das zu ändern. Bei den (mir bekannten) Ansätzen geht es immer darum jede Nachricht irgendwo zu speichern und beim Hochfahren wieder einzulesen und erneut zu erzeugen.
Ansatz 1: Die Nachrichten in MQTT zu speichern. MQTT-Integration nutzt du schon in deine Z2M Setup. Ansatz funktioniert scheinbar wie im englischsprachigen Thread
Ansatz 2: Ich nutze Node-Red und das speichert beim Erstellen der Nachricht diese auch ein ein Textfile, technisch heißt das in Node-Red Context. Auch dieses wird beim Hochfahren von Homeassistant wieder eingelesen und die Notificaitons erneut erstellt.
Ansatz 3: Beispiel von GF-Admin wobei ich mir das nicht näher angesehen habe.
Unabhängig davon wie du das zwischenspeicherst, die Events auf welche du reagieren musst ist von Typ domain “persistent_notification”.
1 „Gefällt mir“
Vielen Dank, habs jetzt mal nur schnell überflogen, beschäftigte mich dann morgen mal damit.