From 4666a627418786298448ee1073732220bc317cf7 Mon Sep 17 00:00:00 2001 From: Housemann <40449280+Housemann@users.noreply.github.com> Date: Fri, 25 Jul 2025 09:39:56 +0200 Subject: [PATCH] Create script and add alexa and critical notifications --- notification_board.yaml | 207 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 notification_board.yaml diff --git a/notification_board.yaml b/notification_board.yaml new file mode 100644 index 0000000..2d6d5ca --- /dev/null +++ b/notification_board.yaml @@ -0,0 +1,207 @@ +alias: Notification Board +mode: queued +max: 10 +description: "" +fields: + message: + name: Message + description: Nachricht + selector: + text: + multiline: true + title: + name: Title + description: Titel + selector: + text: null + critical: + name: Critical + description: iPhone Kritische Hinweise + selector: + boolean: {} + required: true + notify_alexa_durchsagen: + name: Notify Alexa (Durchsagen) + description: Sprachausgabe über Amazon-Geräte mit "_durchsagen" + selector: + boolean: {} + required: true + notify_alexa_sprechen: + name: Notify Alexa (Sprechen) + description: Sprachausgabe über Amazon-Geräte mit "_sprechen" + selector: + boolean: {} + required: true + notify_tv: + name: Notify TV + description: Benachrichtigung auf TV Geräten + selector: + boolean: {} + required: true + pushover_oliver: + name: Pushover Oliver + description: Benachrichtigung über Pushover (Oliver) + selector: + boolean: {} + required: true + pushover_lisa: + name: Pushover Lisa + description: Benachrichtigung über Pushover (Lisa) + selector: + boolean: {} + required: true + notify_persistent: + name: Notify Persistent (Nur App) + description: Dauerhafte Benachrichtigung in Home Assistant + selector: + boolean: {} + required: true + notify_oliver: + name: Notify Oliver + description: Benachrichtigung über Mobile App (Oliver) + selector: + boolean: {} + required: true + notify_lisa: + name: Notify Lisa + description: Benachrichtigung über Mobile App (Lisa) + selector: + boolean: {} + required: true + notify_familie: + name: Notify Familie + description: Benachrichtigung über beide Mobile Apps + selector: + boolean: {} + required: true +sequence: + - variables: + persistent_data: >- + {% if notify_persistent %} {"notification_id": "{{ title | + default("benachrichtigung") | lower | replace(" ", "_") }}"} {% else %} + {} {% endif %} + - variables: + tv_on: "{{ is_state('media_player.lg_webos_tv_nano769qa', 'on') }}" + - variables: + notify_targets: |- + {% set t = [] %} + {% if notify_persistent %} + {% set t = t + ['notify.persistent_notification'] %} + {% endif %} + {% if notify_alexa_durchsagen %} + {% set alexas_durchsagen = states.notify + | selectattr('entity_id', 'match', 'notify\\.echo_.*_durchsagen') + | map(attribute='entity_id') + | list %} + {% set t = t + alexas_durchsagen %} + {% endif %} + {% if notify_alexa_sprechen %} + {% set alexas_sprechen = states.notify + | selectattr('entity_id', 'match', 'notify\\.echo_.*_sprechen') + | map(attribute='entity_id') + | list %} + {% set t = t + alexas_sprechen %} + {% endif %} + {% if notify_tv and tv_on %} + {% set t = t + ['notify.lg_webos_tv_nano769qa'] %} + {% endif %} + {% if pushover_oliver %} + {% set t = t + ['notify.pushover_oliver'] %} + {% endif %} + {% if pushover_lisa %} + {% set t = t + ['notify.pushover_lisa'] %} + {% endif %} + {% if notify_oliver %} + {% set t = t + ['notify.mobile_app_finger_weg_du_spasst'] %} + {% endif %} + {% if notify_lisa %} + {% set t = t + ['notify.mobile_app_meins'] %} + {% endif %} + {% if notify_familie %} + {% set t = t + ['notify.mobile_app_finger_weg_du_spasst', 'notify.mobile_app_meins'] %} + {% endif %} + {{ t | unique | list }} + - repeat: + for_each: "{{ notify_targets }}" + sequence: + - choose: + - conditions: + - condition: template + value_template: "{{ repeat.item == 'notify.persistent_notification' }}" + sequence: + - data: + message: "{{ message }}" + title: "{{ title | default('Benachrichtigung') }}" + data: "{{ persistent_data | from_json(default={}) }}" + action: notify.persistent_notification + - conditions: + - condition: template + value_template: "{{ repeat.item.startswith('notify.pushover') }}" + sequence: + - choose: + - conditions: + - condition: template + value_template: "{{ critical }}" + sequence: + - data: + message: "{{ message }}" + title: "{{ title | default('Benachrichtigung') }}" + data: + priority: 2 + sound: siren + retry: 30 + expire: 300 + action: "{{ repeat.item }}" + - conditions: + - condition: template + value_template: "{{ not critical }}" + sequence: + - data: + message: "{{ message }}" + title: "{{ title | default('Benachrichtigung') }}" + action: "{{ repeat.item }}" + - conditions: + - condition: template + value_template: "{{ repeat.item.startswith('notify.echo_') }}" + sequence: + - data: + message: "{{ message }}" + title: "{{ title | default('Benachrichtigung') }}" + target: + entity_id: "{{ repeat.item }}" + action: notify.send_message + - conditions: + - condition: template + value_template: "{{ repeat.item.startswith('notify.mobile_app') }}" + sequence: + - choose: + - conditions: + - condition: template + value_template: "{{ critical }}" + sequence: + - data: + message: "{{ message }}" + title: "{{ title | default('Benachrichtigung') }}" + data: + push: + sound: + name: default + critical: 1 + volume: 1 + action: "{{ repeat.item }}" + - conditions: + - condition: template + value_template: "{{ not critical }}" + sequence: + - data: + message: "{{ message }}" + title: "{{ title | default('Benachrichtigung') }}" + action: "{{ repeat.item }}" + - conditions: + - condition: template + value_template: "{{ True }}" + sequence: + - data: + message: "{{ message }}" + title: "{{ title | default('Benachrichtigung') }}" + action: "{{ repeat.item }}"