← zurück zur Automationen-Übersicht
Stand: 26.09.2026. YAML wie in HA unter ⋮ → „In YAML bearbeiten“.
id: "1790256086196" alias: 'Sicherheit: Alarm automatisch bei Abwesenheit' description: 'Verlässt der Letzte (Norbert oder Ute) die Zone Home (Raderbroich) für mindestens 2 Minuten, wird die Alarmanlage scharf geschaltet. Kommt einer zurück, wird sie wieder unscharf geschaltet – aber nur, wenn sie scharf bzw. ausgelöst ist (ein manuell gesetzter Hüllenschutz bleibt unberührt). Geschaltet wird über script.alarm_schalten_scharf_hulle_unscharf, damit Dashboard, Fehlermeldungen und Telegram wie gewohnt funktionieren. Keine eigene Telegram-Meldung mehr: Der Grund wird in input_text.alarm_schaltgrund hinterlegt und von ''Alarmstatus via Telegram und iOS senden'' an die Statusmeldung angehängt (vorher kamen zwei Nachrichten).' triggers: - entity_id: - person.norbert - person.ute for: 00:02:00 from: home id: verlassen not_to: - unavailable - unknown trigger: state - entity_id: - person.norbert - person.ute id: zurueck not_from: - unavailable - unknown to: home trigger: state conditions: [] actions: - choose: - alias: Letzter ist weg -> Scharf conditions: - condition: trigger id: verlassen - condition: not conditions: - condition: state entity_id: person.norbert state: home - condition: not conditions: - condition: state entity_id: person.ute state: home - condition: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel state: - disarmed - armed_home - armed_night sequence: - action: input_text.set_value target: entity_id: input_text.alarm_schaltgrund data: value: '🚗 Grund: Niemand mehr zu Hause – automatisch scharf geschaltet.' - action: script.alarm_schalten_scharf_hulle_unscharf data: ziel: Scharf - alias: Einer ist zurück -> Unscharf conditions: - condition: trigger id: zurueck - condition: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel state: - armed_away - triggered - arming - pending sequence: - action: input_text.set_value target: entity_id: input_text.alarm_schaltgrund data: value: '🏠 Grund: {{ trigger.to_state.name }} ist zurück – automatisch unscharf geschaltet.' - action: script.alarm_schalten_scharf_hulle_unscharf data: ziel: Unscharf max: 5 mode: queued
id: "1790236193432" alias: "Sicherheit: Alarm per Telegram-Button bestätigen" description: Reagiert auf den Button '✅ Alarm bestätigen' in Telegram und stoppt die Videoschleife. triggers: - trigger: event event_type: telegram_callback event_data: data: /alarm_ack conditions: [] actions: - action: input_boolean.turn_on target: entity_id: input_boolean.alarm_video_bestatigt - action: telegram_bot.answer_callback_query continue_on_error: true data: callback_query_id: "{{ trigger.event.data.id }}" message: Alarm bestätigt – Videos gestoppt show_alert: false mode: queued
id: "1790236192749" alias: "Sicherheit: Alarm-Videoschleife per Telegram" description: >- Bei ausgelöstem Alarm alle X s ein X-s-Video aufnehmen (X = input_number.alarm_videolange) und per Telegram senden, bis per Telegram-Button bestätigt oder unscharf geschaltet wird. Sicherheitslimit: input_number.alarm_video_gesamtdauer (Minuten); Anzahl = Gesamtdauer*60 / X, aufgerundet. triggers: - trigger: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel to: triggered conditions: [] actions: - variables: laenge: "{{ states('input_number.alarm_videolange') | int(10) }}" max_videos: "{{ (((states('input_number.alarm_video_gesamtdauer') | int(10)) * 60 / (states('input_number.alarm_videolange') | int(10))) | round(0, 'ceil')) | int }}" gesamt_min: "{{ states('input_number.alarm_video_gesamtdauer') | int(10) }}" - action: input_boolean.turn_off target: entity_id: input_boolean.alarm_video_bestatigt - repeat: sequence: - variables: datei: "/media/alarm_videos/alarm_{{ now().strftime('%Y%m%d_%H%M%S') }}.mp4" - action: camera.record continue_on_error: true target: entity_id: camera.ko_wohnzimmer_standardauflosung data: duration: "{{ laenge }}" filename: "{{ datei }}" - action: script.turn_on target: entity_id: script.alarm_video_senden data: variables: datei: "{{ datei }}" laenge: "{{ laenge }}" nummer: "{{ repeat.index }}" - wait_for_trigger: - trigger: state entity_id: input_boolean.alarm_video_bestatigt to: "on" - trigger: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel from: triggered timeout: seconds: "{{ laenge }}" continue_on_timeout: true until: - condition: or conditions: - condition: state entity_id: input_boolean.alarm_video_bestatigt state: "on" - condition: not conditions: - condition: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel state: triggered - condition: template value_template: "{{ repeat.index >= max_videos }}" - action: telegram_bot.send_message continue_on_error: true data: entity_id: notify.norbert_bruchmann message: >- 📹 Alarm-Videoschleife beendet ({% if is_state('input_boolean.alarm_video_bestatigt','on') %}bestätigt{% elif not is_state('alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel','triggered') %}Alarmanlage nicht mehr ausgelöst{% else %}Gesamtdauer von {{ gesamt_min }} min erreicht – {{ max_videos }} Videos à {{ laenge }} s{% endif %}). - action: telegram_bot.send_message continue_on_error: true data: entity_id: notify.ute_heister message: >- 📹 Alarm-Videoschleife beendet ({% if is_state('input_boolean.alarm_video_bestatigt','on') %}bestätigt{% elif not is_state('alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel','triggered') %}Alarmanlage nicht mehr ausgelöst{% else %}Gesamtdauer von {{ gesamt_min }} min erreicht – {{ max_videos }} Videos à {{ laenge }} s{% endif %}). mode: single
id: "1790148278373" alias: 'Sicherheit: Alarmstatus via Telegram und iOS senden' description: Ruft das Telegram-Skript auf und sendet bei wichtigen Ereignissen Push-Nachrichten an die iPhones. Bei Statuswechseln wird ein ggf. gesetzter Grund (input_text.alarm_schaltgrund, max. 5 min alt, z. B. von der Abwesenheits-Automation) an dieselbe Nachricht angehängt und danach geleert – so kommt pro Schaltvorgang nur eine Telegram-Meldung. triggers: - trigger: state entity_id: input_select.alarmstatus id: trigger_status - trigger: state entity_id: input_text.alarm_letzter_fehler id: trigger_fehler - trigger: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel to: triggered id: trigger_alarm_ausgelöst conditions: [] actions: - choose: - conditions: - condition: trigger id: trigger_alarm_ausgelöst sequence: - action: script.telegram_universal_versand data: message: |- 🚨 *ALARM AUSGELÖST!* 🚨 Die Alarmanlage hat einen Einbruch oder Alarm detektiert! parse_mode: markdown - action: notify.mobile_app_iphone_von_norbert data: title: 🚨 ALARM AUSGELÖST! message: Die Alarmanlage hat einen Alarm detektiert! data: push: sound: name: default critical: 1 volume: 1 - action: notify.mobile_app_iphone_13_ute data: title: 🚨 ALARM AUSGELÖST! message: Die Alarmanlage hat einen Alarm detektiert! data: push: sound: name: default critical: 1 volume: 1 - conditions: - condition: trigger id: trigger_status - condition: state entity_id: input_boolean.system_startphase state: 'off' sequence: - action: script.telegram_universal_versand data: message: |- 🔒 *Alarmanlage Status* Der Status hat sich geändert auf: *{{ trigger.to_state.state }}*.{% set g = states('input_text.alarm_schaltgrund') %}{% if g not in ['', 'unknown', 'unavailable'] and (now() - states.input_text.alarm_schaltgrund.last_changed).total_seconds() < 300 %} {{ g }}{% endif %} parse_mode: markdown - action: input_text.set_value target: entity_id: input_text.alarm_schaltgrund data: value: '' - conditions: - condition: trigger id: trigger_fehler - condition: state entity_id: input_boolean.system_startphase state: 'off' - condition: not conditions: - condition: state entity_id: input_text.alarm_letzter_fehler state: - '' - ' ' - unknown - unavailable sequence: - action: script.telegram_universal_versand data: message: |- ⚠️ *Alarm-Fehler* {{ trigger.to_state.state }} - action: script.push_an_alle_handys data: title: ⚠️ Alarm-Fehler message: '{{ trigger.to_state.state }}' sound: default critical: 1 mode: single
id: "1790150599952" alias: "Sicherheit: Alarmstatus Watchdog" description: >- Prüft alle 5 Minuten, ob Dashboard und Homematic übereinstimmen, und korrigiert bei Abweichung. Greift nicht ein, während ein Schaltvorgang läuft. triggers: - trigger: time_pattern minutes: /5 conditions: [] actions: - variables: hmip_state: "{{ states('alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel') }}" korrekt_text: |- {% set state_map = { 'armed_away': 'Scharf', 'armed': 'Scharf', 'armed_home': 'Hüllenschutz', 'armed_night': 'Hüllenschutz', 'disarmed': 'Unscharf', 'triggered': 'Ausgelöst' } %} {{ state_map.get(hmip_state, none) }} - if: - condition: template value_template: >- {{ korrekt_text is not none and korrekt_text != states('input_select.alarmstatus') and is_state('input_boolean.alarm_vorgang_laeuft', 'off') }} then: - action: input_select.select_option target: entity_id: input_select.alarmstatus data: option: "{{ korrekt_text }}" mode: single
id: "1790141662417" alias: "Sicherheit: Alarmstatus von Homematic übernehmen" description: >- Übernimmt externe Änderungen von Homematic (App, Keypad, Wandtaster) in input_select.alarmstatus. Der umgekehrte Weg (Dashboard -> Homematic) läuft über script.alarm_schalten, nicht mehr über diese Automation. triggers: - trigger: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel conditions: - condition: template value_template: "{{ trigger.to_state.state not in ['pending', 'arming', 'disarming'] }}" actions: - variables: new_state_text: |- {% set current = trigger.to_state.state %} {% set state_map = { 'armed_away': 'Scharf', 'armed': 'Scharf', 'armed_home': 'Hüllenschutz', 'armed_night': 'Hüllenschutz', 'disarmed': 'Unscharf', 'triggered': 'Ausgelöst' } %} {{ state_map.get(current, states('input_select.alarmstatus')) }} - action: input_select.select_option target: entity_id: input_select.alarmstatus data: option: "{{ new_state_text }}" mode: queued max: 10
id: "1790242204185" alias: "Sicherheit: Kamera-Steckdose nach Alarmstatus" description: >- Dose tv (Kamera ko-Wohnzimmer) ist nur an, wenn der Alarm Scharf oder Ausgelöst ist – oder der Testmodus aktiv ist. Bei Unscharf/Hüllenschutz aus. Prüft zusätzlich alle 5 Minuten und nach HA-Start. Übergangszustände (Schalten, arming, pending) werden abgewartet. triggers: - trigger: state entity_id: input_select.alarmstatus - trigger: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel - trigger: state entity_id: input_boolean.kamera_dose_testmodus - trigger: state entity_id: switch.hmip_raderbroich_dose_tv for: seconds: 5 - trigger: time_pattern minutes: /5 - trigger: homeassistant event: start actions: - choose: - alias: "Soll AN: Testmodus oder Scharf/Ausgelöst" conditions: - condition: or conditions: - condition: state entity_id: input_boolean.kamera_dose_testmodus state: "on" - condition: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel state: - armed_away - triggered - condition: state entity_id: input_select.alarmstatus state: - Scharf - Ausgelöst - condition: state entity_id: switch.hmip_raderbroich_dose_tv state: "off" sequence: - action: switch.turn_on continue_on_error: true target: entity_id: switch.hmip_raderbroich_dose_tv - alias: "Soll AUS: Unscharf/Hüllenschutz und kein Test" conditions: - condition: state entity_id: input_boolean.kamera_dose_testmodus state: "off" - condition: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel state: - disarmed - armed_home - armed_night - condition: state entity_id: input_select.alarmstatus state: - Unscharf - Hüllenschutz - condition: state entity_id: switch.hmip_raderbroich_dose_tv state: "on" sequence: - action: switch.turn_off continue_on_error: true target: entity_id: switch.hmip_raderbroich_dose_tv mode: queued max: 5
id: "1790237427474" alias: "Sicherheit: Nacht-Hüllenschutz nach Bewegungsruhe" description: >- 22:30–06:30: Ist die Alarmanlage unscharf und 5 Minuten keine Bewegung (Melder oben + unten), wird Hüllenschutz geschaltet. Bei der nächsten Bewegung wird ein so automatisch gesetzter Hüllenschutz wieder aufgehoben. Manuell gesetzter Hüllenschutz bleibt unberührt. triggers: - trigger: state entity_id: - binary_sensor.hmip_raderbroich_bewegungsmelder_oben_bewegung - binary_sensor.hmip_raderbroich_bewegungsmelder_unten_bewegung to: "off" for: "00:05:00" id: ruhe - trigger: time at: "22:30:00" id: ruhe - trigger: state entity_id: - binary_sensor.hmip_raderbroich_bewegungsmelder_oben_bewegung - binary_sensor.hmip_raderbroich_bewegungsmelder_unten_bewegung from: "off" to: "on" id: bewegung - trigger: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel not_to: - armed_home - armed_night - arming - pending - unavailable - unknown id: status_geaendert actions: - choose: - alias: 5 Min. Ruhe in der Nacht -> Hüllenschutz conditions: - condition: trigger id: ruhe - condition: time after: "22:30:00" before: "06:30:00" - condition: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel state: disarmed - condition: state entity_id: input_boolean.alarm_vorgang_laeuft state: "off" - condition: state entity_id: - binary_sensor.hmip_raderbroich_bewegungsmelder_oben_bewegung - binary_sensor.hmip_raderbroich_bewegungsmelder_unten_bewegung state: "off" for: "00:05:00" sequence: - action: script.alarm_schalten_scharf_hulle_unscharf data: ziel: Hüllenschutz - if: - condition: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel state: - armed_home - armed_night then: - action: input_boolean.turn_on target: entity_id: input_boolean.hullenschutz_nacht_automatik_aktiv - alias: Bewegung -> automatisch gesetzten Hüllenschutz aufheben conditions: - condition: trigger id: bewegung - condition: state entity_id: input_boolean.hullenschutz_nacht_automatik_aktiv state: "on" - condition: state entity_id: alarm_control_panel.hmip_raderbroich_hmip_alarm_control_panel state: - armed_home - armed_night sequence: - action: script.alarm_schalten_scharf_hulle_unscharf data: ziel: Unscharf - action: input_boolean.turn_off target: entity_id: input_boolean.hullenschutz_nacht_automatik_aktiv - alias: Status anderweitig geändert -> Merker zurücksetzen conditions: - condition: trigger id: status_geaendert - condition: state entity_id: input_boolean.hullenschutz_nacht_automatik_aktiv state: "on" sequence: - action: input_boolean.turn_off target: entity_id: input_boolean.hullenschutz_nacht_automatik_aktiv mode: queued
id: "1790151900000" alias: "Sicherheit: Vorgang-Flag Timeout-Reset" description: >- Setzt input_boolean.alarm_vorgang_laeuft zwangsweise zurück, falls es länger als 2 Minuten auf "an" steht (z.B. durch einen abgebrochenen Skript-Lauf). Verhindert dauerhaft blockierte Benachrichtigungen. triggers: - trigger: state entity_id: input_boolean.alarm_vorgang_laeuft to: "on" for: "00:02:00" conditions: [] actions: - action: input_boolean.turn_off target: entity_id: input_boolean.alarm_vorgang_laeuft mode: single
id: "1790426046905" alias: 'Sicherheit: Reolink-Wächter (Kamera 10 min nicht erreichbar)' description: 'Ergänzt ''Reolink nach Einschalten der Kamera-Dose neu laden'': Ist die Kamera-Dose (switch.hmip_raderbroich_dose_tv) seit mindestens 10 Minuten an und die Kamera trotzdem seit mindestens 10 Minuten nicht erreichbar, wird die Reolink-Integration neu geladen. Prüft danach alle 15 Minuten erneut, solange der Zustand anhält. Solange die Dose aus ist (Kamera absichtlich stromlos), passiert nichts.' triggers: - trigger: state entity_id: camera.ko_wohnzimmer_standardauflosung to: unavailable for: minutes: 10 id: kamera_weg - trigger: time_pattern minutes: /15 id: nachpruefen conditions: - condition: state entity_id: switch.hmip_raderbroich_dose_tv state: 'on' for: minutes: 10 - condition: state entity_id: camera.ko_wohnzimmer_standardauflosung state: unavailable for: minutes: 10 - condition: state entity_id: automation.sicherheit_reolink_nach_einschalten_der_kamera_dose_neu_laden attribute: current state: 0 actions: - action: homeassistant.reload_config_entry continue_on_error: true data: entry_id: 01M390NYD1BSJA8N4APYHZYAPA - action: logbook.log data: name: Reolink-Wächter message: Kamera seit 10 min nicht erreichbar trotz eingeschalteter Dose – Reolink-Integration neu geladen. mode: single max_exceeded: silent