Create script and add alexa and critical notifications

This commit is contained in:
Housemann 2025-07-25 09:39:56 +02:00
parent 68d6fc4cbf
commit 4666a62741

207
notification_board.yaml Normal file
View File

@ -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 }}"