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\\..*_durchsagen') | rejectattr('entity_id', 'search', 'multiroom_durchsagen') | rejectattr('entity_id', 'search', 'uberall_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\\..*_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 | map('lower') | map('trim') | unique | list }} - repeat: for_each: "{{ notify_targets }}" sequence: - choose: # PERSISTENT NOTIFICATION - 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 # PUSHOVER - 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 }}" # ALEXA / SONOS (mit Verzögerung) - conditions: - condition: template value_template: > {{ repeat.item.endswith('_durchsagen') or repeat.item.endswith('_sprechen') }} sequence: - data: message: "{{ message }}" title: "{{ title | default('Benachrichtigung') }}" target: entity_id: "{{ repeat.item }}" action: notify.send_message - delay: "00:00:02" # MOBILE APP (iOS/Android) - 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.0 action: "{{ repeat.item }}" - conditions: - condition: template value_template: "{{ not critical }}" sequence: - data: message: "{{ message }}" title: "{{ title | default('Benachrichtigung') }}" action: "{{ repeat.item }}" # FALLBACK (TV, andere) - conditions: - condition: template value_template: "{{ True }}" sequence: - data: message: "{{ message }}" title: "{{ title | default('Benachrichtigung') }}" action: "{{ repeat.item }}"