Simplified normal text notifications further

Additionally made the script capable of clearing notifications. Should be almost no need to call notify services directly at all anymore.
This commit is contained in:
2023-02-28 18:14:44 -05:00
parent 2146ddb955
commit 9445c2a4c4
5 changed files with 66 additions and 135 deletions

View File

@ -459,8 +459,10 @@
entity_id: input_boolean.vacation_mode entity_id: input_boolean.vacation_mode
state: 'off' state: 'off'
action: action:
- service: notify.all_ios - service: script.text_notify
data: data:
type: alert
who: all
message: clear_notification message: clear_notification
data: data:
tag: tornado-warning tag: tornado-warning

View File

@ -692,7 +692,7 @@ script:
name: 'Title' name: 'Title'
description: 'The title of the notification' description: 'The title of the notification'
example: 'Greetings' example: 'Greetings'
required: true required: false
selector: selector:
text: text:
message: message:
@ -778,138 +778,57 @@ script:
state: 'on' state: 'on'
- if: - if:
- condition: template - condition: template
value_template: '{{ who == "tony"}}' value_template: >
{% if who == 'tony' %}
{{ is_state('input_boolean.text_notify_tony','on') }}
{% elif who == 'tina' %}
{{ is_state('input_boolean.text_notify_tina','on') }}
{% elif who == 'kallen' %}
{{ is_state('input_boolean.text_notify_kallen','on') }}
{% elif who == 'parents' %}
{{ is_state('input_boolean.text_notify_parents','on') }}
{% elif who == 'nerds' %}
{{ is_state('input_boolean.text_notify_nerds','on') }}
{% elif who == 'all' %}
{{ is_state('input_boolean.text_notify_all','on') }}
{% endif %}
then: then:
- if: - service: >
- condition: state {% if who == 'tony' %}
entity_id: input_boolean.text_notify_tony notify.ios_tony
state: 'on' {% elif who == 'tina' %}
then: notify.ios_tina
- service: notify.ios_tony {% elif who == 'kallen' %}
data: notify.ios_kallen
title: '{{ title }}' {% elif who == 'nerds' %}
message: '{{ message }}' {% if is_state('input_boolean.text_notify_tony','on') and is_state('input_boolean.text_notify_kallen','off') %}
data: notify.ios_tony
tag: > {% elif is_state('input_boolean.text_notify_tony','off') and is_state('input_boolean.text_notify_kallen','on') %}
{% if tag is defined %} notify.ios_kallen
{{ tag }} {% else %}
{% else %} notify.ios_nerds
{} {% endif %}
{% endif %} {% elif who == 'parents' %}
- if: {% if is_state('input_boolean.text_notify_tina','off') and is_state('input_boolean.text_notify_tony','on') %}
- condition: template notify.ios_tony
value_template: '{{ who == "tina"}}' {% elif is_state('input_boolean.text_notify_tina','on') and is_state('input_boolean.text_notify_tony','off') %}
then: notify.ios_tina
- if: {% else %}
- condition: state notify.ios_parents
entity_id: input_boolean.text_notify_tina {% endif %}
state: 'on' {% elif who == 'all' %}
then: notify.all_ios
- service: notify.ios_tina {% endif %}
data: data:
title: '{{ title }}' title: '{{ title }}'
message: '{{ message }}' message: '{{ message }}'
data: data:
tag: > tag: >
{% if tag is defined %} {% if tag is defined %}
{{ tag }} {{ tag }}
{% else %}
{}
{% endif %}
- if:
- condition: template
value_template: '{{ who == "kallen"}}'
then:
- if:
- condition: state
entity_id: input_boolean.text_notify_kallen
state: 'on'
then:
- service: notify.ios_kallen
data:
title: '{{ title }}'
message: '{{ message }}'
data:
tag: >
{% if tag is defined %}
{{ tag }}
{% else %}
{}
{% endif %}
- if:
- condition: template
value_template: '{{ who == "parents"}}'
then:
- if:
- condition: state
entity_id: input_boolean.text_notify_parents
state: 'on'
then:
- service: >
{% if is_state('input_boolean.text_notify_tina','off') and is_state('input_boolean.text_notify_tony','on') %}
notify.ios_tony
{% elif is_state('input_boolean.text_notify_tina','on') and is_state('input_boolean.text_notify_tony','off') %}
notify.ios_tina
{% else %} {% else %}
notify.ios_parents {}
{% endif %} {% endif %}
data:
title: '{{ title }}'
message: '{{ message }}'
data:
tag: >
{% if tag is defined %}
{{ tag }}
{% else %}
{}
{% endif %}
- if:
- condition: template
value_template: '{{ who == "nerds"}}'
then:
- if:
- condition: state
entity_id: input_boolean.text_notify_nerds
state: 'on'
then:
- service: >
{% if is_state('input_boolean.text_notify_tony','on') and is_state('input_boolean.text_notify_kallen','off') %}
notify.ios_tony
{% elif is_state('input_boolean.text_notify_tony','off') and is_state('input_boolean.text_notify_kallen','on') %}
notify.ios_kallen
{% else %}
notify.ios_nerds
{% endif %}
data:
title: '{{ title }}'
message: '{{ message }}'
data:
tag: >
{% if tag is defined %}
{{ tag }}
{% else %}
{}
{% endif %}
- if:
- condition: template
value_template: '{{ who == "all"}}'
then:
- if:
- condition: state
entity_id: input_boolean.text_notify_all
state: 'on'
then:
- service: notify.all_ios
data:
title: '{{ title }}'
message: '{{ message }}'
data:
tag: >
{% if tag is defined %}
{{ tag }}
{% else %}
{}
{% endif %}
tv_notify: tv_notify:
alias: 'TV Notify' alias: 'TV Notify'

View File

@ -487,8 +487,10 @@ script:
continue_on_timeout: true continue_on_timeout: true
timeout: timeout:
minutes: 1 minutes: 1
- service: notify.all_ios - service: script.text_notify
data: data:
type: alert
who: all
message: "clear_notification" message: "clear_notification"
data: data:
tag: skip-away tag: skip-away

View File

@ -320,6 +320,8 @@ automation:
then: then:
- service: notify.all_ios - service: notify.all_ios
data: data:
type: alert
who: all
message: clear_notification message: clear_notification
data: data:
tag: lockdown-issue tag: lockdown-issue

View File

@ -1560,8 +1560,10 @@ automation:
- condition: template - condition: template
value_template: "{{ is_state('binary_sensor.windows','off') and is_state('binary_sensor.precipitation','on') }}" value_template: "{{ is_state('binary_sensor.windows','off') and is_state('binary_sensor.precipitation','on') }}"
sequence: sequence:
- service: notify.all_ios - service: script.text_notify
data: data:
type: alert
who: all
message: clear_notification message: clear_notification
data: data:
tag: rain-window-warning tag: rain-window-warning
@ -1573,8 +1575,10 @@ automation:
- condition: template - condition: template
value_template: "{{ is_state('binary_sensor.precipitation','off') }}" value_template: "{{ is_state('binary_sensor.precipitation','off') }}"
sequence: sequence:
- service: notify.all_ios - service: script.text_notify
data: data:
type: alert
who: all
message: clear_notification message: clear_notification
data: data:
tag: rain-window-warning tag: rain-window-warning
@ -1658,8 +1662,10 @@ script:
lightning_clear: lightning_clear:
alias: 'Lightning Clear' alias: 'Lightning Clear'
sequence: sequence:
- service: notify.all_ios - service: script.text_notify
data: data:
type: alert
who: all
message: clear_notification message: clear_notification
data: data:
tag: lightning-warning tag: lightning-warning