Forked from Blackshome/calendar-notifications-and-actions.yaml
Last active
June 2, 2024 03:07
-
-
Save denselm/418578ec5a0966caa3b4e1e0876da068 to your computer and use it in GitHub Desktop.
calendar-notifications-and-actions.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
blueprint: | |
name: Regex Calendar Notifications & Actions | |
description: "# \U0001F4C5 Regex Calendar Notifications & Actions **Version: 1.3.2**\nOriginal | |
blueprint created by https://gist.github.com/Blackshome/40bfd92fb1fe6a9a9189325704a3c81b | |
Let us know what you think of this blueprint and for community support including | |
updates: [Click Here](https://community.home-assistant.io/t/calendar-notifications-actions/612326?u=blacky)\n\n**The | |
Automation Process:**\n - Can be triggered on a key word in a calendar event | |
or triggered on all calendar events. \n - You have the option to trigger at the | |
start and end of a calendar event with time offsets.\n - When triggered, you | |
have the option to send notifications to one or multiple devices. The notification | |
has options to include 3 action buttons + a cancel button. You also have the option | |
to send a confirmation message when an action button is pressed. This can be useful | |
when sending notifications to multiple devices as it will let the other devices | |
know when an action has been pressed.\n - Notifications can work with Apple IOS | |
and Android devices. One for all, and all for one.\n - When triggered, you have | |
the option to set 3 different action groups. Each action group can have as many | |
actions you like.\n \n \nNote - The calendar event must be added at least 15 | |
minutes before the trigger or the automation will not run.\n \nRequired = *\n\nThe | |
Settings & Best Practice Guidelines: [Click Here](https://community.home-assistant.io/t/calendar-notifications-actions/612326/3?u=blacky)\nNeed | |
help? See our FAQ: [Click Here](https://community.home-assistant.io/t/calendar-notifications-actions/612326/2?u=blacky)\n\n**If | |
you like my blueprints, and would like to show your support or just say thank | |
you?** [Click Here](https://www.paypal.com/donate/?hosted_button_id=WAZS3QSDTPGA8) | |
\U0001F642\n" | |
domain: automation | |
source_url: https://gist.github.com/denselm/418578ec5a0966caa3b4e1e0876da068 | |
input: | |
calendar: | |
name: Calendar * | |
description: Calendar to be used. | |
default: {} | |
selector: | |
entity: | |
filter: | |
- domain: | |
- calendar | |
multiple: false | |
include_calendar_trigger: | |
name: Use The Calendar Trigger - Key Word (Optional) | |
description: 'Choose if you would like to use a "Key Word" to trigger the automation. | |
**Note** - If you choose not to use a "Key Word", then all calendar events | |
will be triggered.' | |
default: enable_key_word | |
selector: | |
select: | |
options: | |
- label: Don't use "Key Word" in calendar | |
value: disable_key_word | |
- label: Use "Key Word" in calendar | |
value: enable_key_word | |
multiple: false | |
sort: false | |
custom_value: false | |
calendar_trigger: | |
name: Calendar Trigger - Key Word In Calendar Summary & / or Description | |
description: Input a key word that is in the calendar event summary and or the | |
calendar event description. This links the calendar event to this automation | |
as the trigger. A key word can contain letters, numbers & symbols similar | |
to a password. Be mindful of the key word you use as it will trigger on every | |
event with the key word in the selected calendar summary and or description. | |
I prefer to use the "@" or "#" symbols followed by the key word in a calendar | |
event, example "@bins" or "#bins" to prevent false triggers. For more information | |
on how to use Trigger Key Words [Click Here](https://community.home-assistant.io/t/calendar-notifications-actions/612326/4?u=blacky) | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
start_calendar_offset: | |
name: Calendar Start - Offset | |
description: The offset from the start of the calendar event when the trigger | |
will be triggered. If you would like to send a trigger before the start of | |
a calendar event, then you will need to put a minus "-" then the time value. | |
default: | |
days: 0 | |
hours: 0 | |
minutes: 0 | |
seconds: 0 | |
selector: | |
duration: | |
enable_day: true | |
end_calendar_offset: | |
name: Calendar End - Offset | |
description: The offset from the end of the calendar event when the trigger | |
will be triggered. If you would like to send a trigger before the end of a | |
calendar event, then you will need to put a minus "-" then the time value. | |
default: | |
days: 0 | |
hours: 0 | |
minutes: 0 | |
seconds: 0 | |
selector: | |
duration: | |
enable_day: true | |
global_conditions: | |
name: Global Conditions | |
description: Enter any global conditions you would like to apply to the automation. | |
default: [] | |
selector: | |
condition: {} | |
include_start_notify: | |
name: Use The Start Notify Options (Optional) | |
description: Select enable if you would like to be notified at the start of | |
the calendar event. | |
default: disable_start_notify_options | |
selector: | |
select: | |
options: | |
- label: Enable Start Notify Options | |
value: enable_start_notify_options | |
- label: Disable Start Notify Options | |
value: disable_start_notify_options | |
multiple: false | |
sort: false | |
custom_value: false | |
start_notify_device: | |
name: Start Notify - Devices To Notify | |
description: Select the devices to be notified at the start of a calendar event. | |
default: [] | |
selector: | |
device: | |
filter: | |
- integration: mobile_app | |
multiple: true | |
start_title: | |
name: Start Notify - Title | |
description: The notification title at the start of the calendar event. | |
default: '{{ trigger.calendar_event.summary }}' | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
start_message: | |
name: Start Notify - Message | |
description: The notification message at the start of the calendar event. | |
default: '{{ trigger.calendar_event.description }}' | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
include_start_action_buttons: | |
name: Start Notify - Action Buttons Options (Optional) | |
description: 'Enable the action buttons you would like to use. Action buttons | |
will be shown in the notification, allowing you to perform the action when | |
you click on the button. | |
**NOTE** - You do not need to select any notification action buttons to run | |
an action.' | |
default: [] | |
selector: | |
select: | |
options: | |
- label: Enable action button 1 | |
value: enable_start_action_button_1 | |
- label: Enable action button 2 | |
value: enable_start_action_button_2 | |
- label: Enable action button 3 | |
value: enable_start_action_button_3 | |
multiple: true | |
sort: false | |
custom_value: false | |
start_action_button_1: | |
name: Start Notify - Action Button 1 | |
description: Enter the button name to be displayed in the notification. This | |
button runs all the actions entered into "Start - Action 1" input below. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
start_action_button_2: | |
name: Start Notify - Action Button 2 | |
description: Enter the button name to be displayed in the notification. This | |
button runs all the actions entered into "Start - Action 2" input below. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
start_action_button_3: | |
name: Start Notify - Action Button 3 | |
description: Enter the button name to be displayed in the notification. This | |
button runs all the actions entered into "Start - Action 3" input below. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
start_action_button_stop: | |
name: Start Notify - CANCEL Action Button | |
description: Enter the CANCEL button name to be displayed in the notification. | |
This button will cancel all actions and stop the automation. It will be automatically | |
included in the notification if you have enabled an action button above. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
start_time_delay: | |
name: Start Notify - Time Delay | |
description: The time delay after which the automation will continue its execution | |
if an action button has not been pressed. | |
default: | |
hours: 0 | |
minutes: 30 | |
seconds: 0 | |
selector: | |
duration: {} | |
include_start_action_button_confirmation: | |
name: Start Notify - Action Button Confirmation Option (Optional) | |
description: Select enable if you would like to notify all the devices when | |
an action button has been pressed. This is handy when notifying multiple devices. | |
It lets the other devices know that an action has been pressed. | |
default: disable_start_action_button_confirmation | |
selector: | |
select: | |
options: | |
- label: Enable Action Button Confirmation | |
value: enable_start_action_button_confirmation | |
- label: Disable Action Button Confirmation | |
value: disable_start_action_button_confirmation | |
multiple: false | |
sort: false | |
custom_value: false | |
start_action_button_confirmation_title: | |
name: Start Notify - Action Button Confirmation Title | |
description: The notification title when an action button is pressed or the | |
time delay has passed. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
start_action_button_confirmation_message: | |
name: Start Notify - Action Button Confirmation Message | |
description: The notification message when an action button is pressed. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
start_time_delay_confirmation_message: | |
name: Start Notify - Time Delay Confirmation Message | |
description: The notification message when the time delay has passed. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
include_start_auto_actions: | |
name: Use The Start Auto Action Options (Optional) | |
description: Enabling an auto option will allow the "Start Actions" below to | |
run when the calendar event is triggered. When using action buttons in a notification, | |
you do not need to enable these options for the start actions to work. If | |
you miss the notification and didn't press an action button, then enabling | |
a start auto action option will make sure the action still runs. | |
default: [] | |
selector: | |
select: | |
options: | |
- label: Enable start auto action 1 | |
value: enable_start_action_1 | |
- label: Enable start auto action 2 | |
value: enable_start_action_2 | |
- label: Enable start auto action 3 | |
value: enable_start_action_3 | |
multiple: true | |
sort: false | |
custom_value: false | |
start_action_1: | |
name: Start Action - Action 1 | |
description: Enter the actions you would like to run at the start of a calendar | |
event. This action is also linked to "Start Notify - Action Button 1" in the | |
start notifications. | |
default: [] | |
selector: | |
action: {} | |
start_action_2: | |
name: Start Action - Action 2 | |
description: Enter the actions you would like to run at the start of a calendar | |
event. This action is also linked to "Start Notify - Action Button 2" in the | |
start notifications. | |
default: [] | |
selector: | |
action: {} | |
start_action_3: | |
name: Start Action - Action 3 | |
description: Enter the actions you would like to run at the start of a calendar | |
event. This action is also linked to "Start Notify - Action Button 3" in the | |
start notifications. | |
default: [] | |
selector: | |
action: {} | |
include_end_notify: | |
name: Use The End Notify Options (Optional) | |
description: Select enable if you would like to be notified at the end of the | |
calendar event. | |
default: disable_end_notify_options | |
selector: | |
select: | |
options: | |
- label: Enable End Notify Options | |
value: enable_end_notify_options | |
- label: Disable End Notify Options | |
value: disable_end_notify_options | |
multiple: false | |
sort: false | |
custom_value: false | |
end_notify_device: | |
name: End Notify - Devices To Notify | |
description: Select the devices to be notified at the end of a calendar event. | |
default: [] | |
selector: | |
device: | |
filter: | |
- integration: mobile_app | |
multiple: true | |
end_title: | |
name: End Notify - Title | |
description: The notification title at the end of the calendar event. | |
default: '{{ trigger.calendar_event.summary }}' | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
end_message: | |
name: End Notify - Message | |
description: The notification message at the end of the calendar event. | |
default: '{{ trigger.calendar_event.description }}' | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
include_end_action_buttons: | |
name: End Notify - Action Buttons Options (Optional) | |
description: 'Enable the action buttons you would like to use. Action buttons | |
will be shown in the notification, allowing you to perform the action when | |
you click on the button. | |
**NOTE** - You do not need to select any notification action buttons to run | |
an action.' | |
default: [] | |
selector: | |
select: | |
options: | |
- label: Enable action button 1 | |
value: enable_end_action_button_1 | |
- label: Enable action button 2 | |
value: enable_end_action_button_2 | |
- label: Enable action button 3 | |
value: enable_end_action_button_3 | |
multiple: true | |
sort: false | |
custom_value: false | |
end_action_button_1: | |
name: End Notify - Action Button 1 | |
description: Enter the button name to be displayed in the notification. This | |
button runs all the actions entered into "End - Action 1" input below. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
end_action_button_2: | |
name: End Notify - Action Button 2 | |
description: Enter the button name to be displayed in the notification. This | |
button runs all the actions entered into "End - Action 2" input below. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
end_action_button_3: | |
name: End Notify - Action Button 3 | |
description: Enter the button name to be displayed in the notification. This | |
button runs all the actions entered into "End - Action 3" input below. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
end_action_button_stop: | |
name: End Notify - CANCEL Action Button | |
description: Enter the CANCEL button name to be displayed in the notification. | |
This button will cancel all actions and stop the automation. It will be automatically | |
included in the notification if you have enabled an action button above. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
end_time_delay: | |
name: End Notify - Time Delay | |
description: The time delay after which the automation will continue its execution | |
if an action button has not been pressed. | |
default: | |
hours: 0 | |
minutes: 30 | |
seconds: 0 | |
selector: | |
duration: {} | |
include_end_action_button_confirmation: | |
name: End Notify - Action Button Confirmation Option (Optional) | |
description: Select enable if you would like to notify all the devices when | |
an action button has been pressed. This is handy when notifying multiple devices. | |
It lets the other devices know that an action has been pressed. | |
default: disable_end_action_button_confirmation | |
selector: | |
select: | |
options: | |
- label: Enable Action Button Confirmation | |
value: enable_end_action_button_confirmation | |
- label: Disable Action Button Confirmation | |
value: disable_end_action_button_confirmation | |
multiple: false | |
sort: false | |
custom_value: false | |
end_action_button_confirmation_title: | |
name: End Notify - Action Button Confirmation Title | |
description: The notification title when an action button is pressed or the | |
time delay has passed. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
end_action_button_confirmation_message: | |
name: End Notify - Action Button Confirmation Message | |
description: The notification message when an action button is pressed. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
end_time_delay_confirmation_message: | |
name: End Notify - Time Delay Confirmation Message | |
description: The notification message when the time delay has passed. | |
default: [] | |
selector: | |
text: | |
multiple: false | |
multiline: false | |
include_end_auto_actions: | |
name: Use The End Auto Action Options (Optional) | |
description: Enabling an auto option will allow the "End Actions" below to run | |
when the calendar event is triggered. When using action buttons in a notification, | |
you do not need to enable these options for the end actions to work. If you | |
miss the notification and didn't press an action button, then enabling an | |
end auto action option will make sure the action still runs. | |
default: [] | |
selector: | |
select: | |
options: | |
- label: Enable auto end action 1 option | |
value: enable_end_action_1 | |
- label: Enable auto end action 2 option | |
value: enable_end_action_2 | |
- label: Enable auto end action 3 option | |
value: enable_end_action_3 | |
multiple: true | |
sort: false | |
custom_value: false | |
end_action_1: | |
name: End Action - Action 1 | |
description: Enter the actions you would like to run at the end of a calendar | |
event. This action is also linked to "End Notify - Action Button 1" in the | |
end notifications. | |
default: [] | |
selector: | |
action: {} | |
end_action_2: | |
name: End Action - Action 2 | |
description: Enter the actions you would like to run at the end of a calendar | |
event. This action is also linked to "End Notify - Action Button 2" in the | |
end notifications. | |
default: [] | |
selector: | |
action: {} | |
end_action_3: | |
name: End Action - Action 3 | |
description: Enter the actions you would like to run at the end of a calendar | |
event. This action is also linked to "End Notify - Action Button 3" in the | |
end notifications. | |
default: [] | |
selector: | |
action: {} | |
mode: restart | |
max_exceeded: silent | |
variables: | |
calendar: !input calendar | |
include_calendar_trigger: !input include_calendar_trigger | |
calendar_trigger: !input calendar_trigger | |
start_calendar_offset: !input start_calendar_offset | |
end_calendar_offset: !input end_calendar_offset | |
global_conditions: !input global_conditions | |
include_start_notify: !input include_start_notify | |
start_notify_device: !input start_notify_device | |
start_title: !input start_title | |
start_message: !input start_message | |
include_start_action_buttons: !input include_start_action_buttons | |
start_action_button_1: !input start_action_button_1 | |
start_action_button_2: !input start_action_button_2 | |
start_action_button_3: !input start_action_button_3 | |
start_action_button_stop: !input start_action_button_stop | |
start_time_delay: !input start_time_delay | |
include_start_action_button_confirmation: !input include_start_action_button_confirmation | |
start_action_button_confirmation_title: !input start_action_button_confirmation_title | |
start_action_button_confirmation_message: !input start_action_button_confirmation_message | |
start_time_delay_confirmation_message: !input start_time_delay_confirmation_message | |
include_start_auto_actions: !input include_start_auto_actions | |
start_action_1: !input start_action_1 | |
start_action_2: !input start_action_2 | |
start_action_3: !input start_action_3 | |
include_end_notify: !input include_end_notify | |
end_notify_device: !input end_notify_device | |
end_title: !input end_title | |
end_message: !input end_message | |
include_end_action_buttons: !input include_end_action_buttons | |
end_action_button_1: !input end_action_button_1 | |
end_action_button_2: !input end_action_button_2 | |
end_action_button_3: !input end_action_button_3 | |
end_action_button_stop: !input end_action_button_stop | |
end_time_delay: !input end_time_delay | |
include_end_action_button_confirmation: !input include_end_action_button_confirmation | |
end_action_button_confirmation_title: !input end_action_button_confirmation_title | |
end_action_button_confirmation_message: !input end_action_button_confirmation_message | |
end_time_delay_confirmation_message: !input end_time_delay_confirmation_message | |
include_end_auto_actions: !input include_end_auto_actions | |
end_action_1: !input end_action_1 | |
end_action_2: !input end_action_2 | |
end_action_3: !input end_action_3 | |
calendar_alert_level: "{%- if states('input_boolean.silence_calendar_alerts') == | |
'on' %}\n CalendarEventsSilent\n{%- else -%}\n CalendarEventsImportant\n{%- | |
endif -%}" | |
trigger: | |
- platform: calendar | |
id: t0 | |
event: start | |
entity_id: !input calendar | |
offset: !input start_calendar_offset | |
- platform: calendar | |
id: t1 | |
event: end | |
entity_id: !input calendar | |
offset: !input end_calendar_offset | |
condition: | |
- condition: or | |
conditions: | |
- condition: and | |
conditions: | |
- condition: trigger | |
id: t0 | |
- condition: template | |
value_template: '{{ (''enable_start_notify_options'' in include_start_notify) | |
or (''enable_start_action_1'' in include_start_auto_actions) or (''enable_start_action_2'' | |
in include_start_auto_actions) or (''enable_start_action_3'' in include_start_auto_actions) | |
}}' | |
- condition: and | |
conditions: | |
- condition: trigger | |
id: t1 | |
- condition: template | |
value_template: '{{ (''enable_end_notify_options'' in include_end_notify) or | |
(''enable_end_action_1'' in include_end_auto_actions) or (''enable_end_action_2'' | |
in include_end_auto_actions) or (''enable_end_action_3'' in include_end_auto_actions) | |
}}' | |
- condition: or | |
conditions: | |
- condition: template | |
value_template: '{{ trigger.calendar_event.summary is search(calendar_trigger, | |
ignorecase=True) }}' | |
- condition: template | |
value_template: '{{ trigger.calendar_event.description is search(calendar_trigger, | |
ignorecase=True) }}' | |
- condition: template | |
value_template: '{{ include_calendar_trigger == ''disable_key_word'' }}' | |
- condition: and | |
conditions: !input global_conditions | |
action: | |
- alias: Set up variables for the actions | |
variables: | |
action_button_1: '{{ ''BUTTON_1_'' ~ context.id }}' | |
action_button_2: '{{ ''BUTTON_2_'' ~ context.id }}' | |
action_button_3: '{{ ''BUTTON_3_'' ~ context.id }}' | |
action_button_stop: '{{ ''BUTTON_STOP_'' ~ context.id }}' | |
- choose: | |
- alias: Start trigger | |
conditions: | |
- condition: trigger | |
id: t0 | |
sequence: | |
- choose: | |
- alias: Check if the start of notification is enabled | |
conditions: | |
- condition: template | |
value_template: '{{ ''enable_start_notify_options'' in include_start_notify | |
}}' | |
sequence: | |
- choose: | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_start_action_button_1'' in include_start_action_buttons) | |
and (''enable_start_action_button_2'' in include_start_action_buttons) | |
and (''enable_start_action_button_3'' in include_start_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input start_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | | |
slugify }} | |
data: | |
title: !input start_title | |
message: !input start_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_1 }}' | |
title: !input start_action_button_1 | |
- action: '{{ action_button_2 }}' | |
title: !input start_action_button_2 | |
- action: '{{ action_button_3 }}' | |
title: !input start_action_button_3 | |
- action: '{{ action_button_stop }}' | |
title: !input start_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_start_action_button_1'' in include_start_action_buttons) | |
and (''enable_start_action_button_2'' in include_start_action_buttons) | |
and (''enable_start_action_button_3'' not in include_start_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input start_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | | |
slugify }} | |
data: | |
title: !input start_title | |
message: !input start_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_1 }}' | |
title: !input start_action_button_1 | |
- action: '{{ action_button_2 }}' | |
title: !input start_action_button_2 | |
- action: '{{ action_button_stop }}' | |
title: !input start_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_start_action_button_1'' in include_start_action_buttons) | |
and (''enable_start_action_button_2'' not in include_start_action_buttons) | |
and (''enable_start_action_button_3'' in include_start_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input start_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | | |
slugify }} | |
data: | |
title: !input start_title | |
message: !input start_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_1 }}' | |
title: !input start_action_button_1 | |
- action: '{{ action_button_3 }}' | |
title: !input start_action_button_3 | |
- action: '{{ action_button_stop }}' | |
title: !input start_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_start_action_button_1'' in include_start_action_buttons) | |
and (''enable_start_action_button_2'' not in include_start_action_buttons) | |
and (''enable_start_action_button_3'' not in include_start_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input start_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | | |
slugify }} | |
data: | |
title: !input start_title | |
message: !input start_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_1 }}' | |
title: !input start_action_button_1 | |
- action: '{{ action_button_stop }}' | |
title: !input start_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_start_action_button_1'' not in include_start_action_buttons) | |
and (''enable_start_action_button_2'' in include_start_action_buttons) | |
and (''enable_start_action_button_3'' in include_start_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input start_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | | |
slugify }} | |
data: | |
title: !input start_title | |
message: !input start_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_2 }}' | |
title: !input start_action_button_2 | |
- action: '{{ action_button_3 }}' | |
title: !input start_action_button_3 | |
- action: '{{ action_button_stop }}' | |
title: !input start_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_start_action_button_1'' not in include_start_action_buttons) | |
and (''enable_start_action_button_2'' in include_start_action_buttons) | |
and (''enable_start_action_button_3'' not in include_start_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input start_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | | |
slugify }} | |
data: | |
title: !input start_title | |
message: !input start_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_2 }}' | |
title: !input start_action_button_2 | |
- action: '{{ action_button_stop }}' | |
title: !input start_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_start_action_button_1'' not in include_start_action_buttons) | |
and (''enable_start_action_button_2'' not in include_start_action_buttons) | |
and (''enable_start_action_button_3'' in include_start_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input start_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | | |
slugify }} | |
data: | |
title: !input start_title | |
message: !input start_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_3 }}' | |
title: !input start_action_button_3 | |
- action: '{{ action_button_stop }}' | |
title: !input start_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_start_action_button_1'' not in include_start_action_buttons) | |
and (''enable_start_action_button_2'' not in include_start_action_buttons) | |
and (''enable_start_action_button_3'' not in include_start_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input start_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | | |
slugify }} | |
data: | |
title: !input start_title | |
message: !input start_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
- choose: | |
- alias: Check if any start action buttons are enabled | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_start_action_button_1'' in include_start_action_buttons) | |
or (''enable_start_action_button_2'' in include_start_action_buttons) | |
or (''enable_start_action_button_3'' in include_start_action_buttons) | |
}}' | |
sequence: | |
- alias: Wait for a response from the action button | |
wait_for_trigger: | |
- platform: event | |
event_type: mobile_app_notification_action | |
event_data: | |
action: '{{ action_button_1 }}' | |
- platform: event | |
event_type: mobile_app_notification_action | |
event_data: | |
action: '{{ action_button_2 }}' | |
- platform: event | |
event_type: mobile_app_notification_action | |
event_data: | |
action: '{{ action_button_3 }}' | |
- platform: event | |
event_type: mobile_app_notification_action | |
event_data: | |
action: '{{ action_button_stop }}' | |
timeout: !input start_time_delay | |
- choose: | |
- alias: Check if confirmation message is enabled | |
conditions: | |
- condition: template | |
value_template: '{{ ''enable_start_action_button_confirmation'' | |
in include_start_action_button_confirmation }}' | |
sequence: | |
- if: | |
- alias: Confirmation from the actions buttons | |
condition: template | |
value_template: '{{ wait.trigger.idx is defined }}' | |
then: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input start_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | |
| slugify }} | |
data: | |
title: !input start_action_button_confirmation_title | |
message: !input start_action_button_confirmation_message | |
- alias: Perform the action button selected action | |
choose: | |
- conditions: '{{ wait.trigger.event.data.action == action_button_1 | |
}}' | |
sequence: !input start_action_1 | |
- conditions: '{{ wait.trigger.event.data.action == action_button_2 | |
}}' | |
sequence: !input start_action_2 | |
- conditions: '{{ wait.trigger.event.data.action == action_button_3 | |
}}' | |
sequence: !input start_action_3 | |
- conditions: '{{ wait.trigger.event.data.action == action_button_stop | |
}}' | |
sequence: | |
- stop: Stop the automation | |
else: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input start_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | |
| slugify }} | |
data: | |
title: !input start_action_button_confirmation_title | |
message: !input start_time_delay_confirmation_message | |
- alias: Check if confirmation message is disabled | |
conditions: | |
- condition: template | |
value_template: '{{ ''disable_start_action_button_confirmation'' | |
in include_start_action_button_confirmation }}' | |
sequence: | |
- if: | |
- alias: Confirmation from the actions buttons | |
condition: template | |
value_template: '{{ wait.trigger.idx is defined }}' | |
then: | |
- alias: Perform the action button selected action | |
choose: | |
- conditions: '{{ wait.trigger.event.data.action == action_button_1 | |
}}' | |
sequence: !input start_action_1 | |
- conditions: '{{ wait.trigger.event.data.action == action_button_2 | |
}}' | |
sequence: !input start_action_2 | |
- conditions: '{{ wait.trigger.event.data.action == action_button_3 | |
}}' | |
sequence: !input start_action_3 | |
- conditions: '{{ wait.trigger.event.data.action == action_button_stop | |
}}' | |
sequence: | |
- stop: Stop the automation | |
- choose: | |
- alias: Check if auto action 1 is enabled | |
conditions: | |
- condition: template | |
value_template: '{{ ''enable_start_action_1'' in include_start_auto_actions | |
}}' | |
sequence: !input start_action_1 | |
- choose: | |
- alias: Check if auto action 2 is enabled | |
conditions: | |
- condition: template | |
value_template: '{{ ''enable_start_action_2'' in include_start_auto_actions | |
}}' | |
sequence: !input start_action_2 | |
- choose: | |
- alias: Check if auto action 3 is enabled | |
conditions: | |
- condition: template | |
value_template: '{{ ''enable_start_action_3'' in include_start_auto_actions | |
}}' | |
sequence: !input start_action_3 | |
default: | |
- choose: | |
- alias: End Trigger | |
conditions: | |
- condition: trigger | |
id: t1 | |
sequence: | |
- choose: | |
- alias: Check if end of notification is enabled | |
conditions: | |
- condition: template | |
value_template: '{{ include_end_notify == ''enable_end_notify_options'' | |
}}' | |
sequence: | |
- choose: | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_end_action_button_1'' in include_end_action_buttons) | |
and (''enable_end_action_button_2'' in include_end_action_buttons) | |
and (''enable_end_action_button_3'' in include_end_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input end_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | |
| slugify }} | |
data: | |
title: !input end_title | |
message: !input end_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_1 }}' | |
title: !input end_action_button_1 | |
- action: '{{ action_button_2 }}' | |
title: !input end_action_button_2 | |
- action: '{{ action_button_3 }}' | |
title: !input end_action_button_3 | |
- action: '{{ action_button_stop }}' | |
title: !input end_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_end_action_button_1'' in include_end_action_buttons) | |
and (''enable_end_action_button_2'' in include_end_action_buttons) | |
and (''enable_end_action_button_3'' not in include_end_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input end_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | |
| slugify }} | |
data: | |
title: !input end_title | |
message: !input end_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_1 }}' | |
title: !input end_action_button_1 | |
- action: '{{ action_button_2 }}' | |
title: !input end_action_button_2 | |
- action: '{{ action_button_stop }}' | |
title: !input end_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_end_action_button_1'' in include_end_action_buttons) | |
and (''enable_end_action_button_2'' not in include_end_action_buttons) | |
and (''enable_end_action_button_3'' in include_end_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input end_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | |
| slugify }} | |
data: | |
title: !input end_title | |
message: !input end_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_1 }}' | |
title: !input end_action_button_1 | |
- action: '{{ action_button_3 }}' | |
title: !input end_action_button_3 | |
- action: '{{ action_button_stop }}' | |
title: !input end_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_end_action_button_1'' in include_end_action_buttons) | |
and (''enable_end_action_button_2'' not in include_end_action_buttons) | |
and (''enable_end_action_button_3'' not in include_end_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input end_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | |
| slugify }} | |
data: | |
title: !input end_title | |
message: !input end_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_1 }}' | |
title: !input end_action_button_1 | |
- action: '{{ action_button_stop }}' | |
title: !input end_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_end_action_button_1'' not in include_end_action_buttons) | |
and (''enable_end_action_button_2'' in include_end_action_buttons) | |
and (''enable_end_action_button_3'' in include_end_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input end_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | |
| slugify }} | |
data: | |
title: !input end_title | |
message: !input end_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_2 }}' | |
title: !input end_action_button_2 | |
- action: '{{ action_button_3 }}' | |
title: !input end_action_button_3 | |
- action: '{{ action_button_stop }}' | |
title: !input end_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_end_action_button_1'' not in include_end_action_buttons) | |
and (''enable_end_action_button_2'' in include_end_action_buttons) | |
and (''enable_end_action_button_3'' not in include_end_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input end_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | |
| slugify }} | |
data: | |
title: !input end_title | |
message: !input end_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_2 }}' | |
title: !input end_action_button_2 | |
- action: '{{ action_button_stop }}' | |
title: !input end_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_end_action_button_1'' not in include_end_action_buttons) | |
and (''enable_end_action_button_2'' not in include_end_action_buttons) | |
and (''enable_end_action_button_3'' in include_end_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input end_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | |
| slugify }} | |
data: | |
title: !input end_title | |
message: !input end_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
actions: | |
- action: '{{ action_button_3 }}' | |
title: !input end_action_button_3 | |
- action: '{{ action_button_stop }}' | |
title: !input end_action_button_stop | |
- alias: Check the selected notification action buttons | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_end_action_button_1'' not in include_end_action_buttons) | |
and (''enable_end_action_button_2'' not in include_end_action_buttons) | |
and (''enable_end_action_button_3'' not in include_end_action_buttons) | |
}}' | |
sequence: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input end_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | |
| slugify }} | |
data: | |
title: !input end_title | |
message: !input end_message | |
data: | |
sticky: 'false' | |
channel: '{{ calendar_alert_level }}' | |
group: !input start_title | |
- choose: | |
- alias: Check if any start action buttons are enabled | |
conditions: | |
- condition: template | |
value_template: '{{ (''enable_end_action_button_1'' in include_end_action_buttons) | |
or (''enable_end_action_button_2'' in include_end_action_buttons) | |
or (''enable_end_action_button_3'' in include_end_action_buttons) | |
}}' | |
sequence: | |
- alias: Wait for a response from the action button | |
wait_for_trigger: | |
- platform: event | |
event_type: mobile_app_notification_action | |
event_data: | |
action: '{{ action_button_1 }}' | |
- platform: event | |
event_type: mobile_app_notification_action | |
event_data: | |
action: '{{ action_button_2 }}' | |
- platform: event | |
event_type: mobile_app_notification_action | |
event_data: | |
action: '{{ action_button_3 }}' | |
- platform: event | |
event_type: mobile_app_notification_action | |
event_data: | |
action: '{{ action_button_stop }}' | |
timeout: !input end_time_delay | |
- choose: | |
- alias: Check if confirmation message is enabled | |
conditions: | |
- condition: template | |
value_template: '{{ ''enable_end_action_button_confirmation'' | |
in include_end_action_button_confirmation }}' | |
sequence: | |
- if: | |
- alias: Confirmation from the actions buttons | |
condition: template | |
value_template: '{{ wait.trigger.idx is defined }}' | |
then: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input end_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | |
| slugify }} | |
data: | |
title: !input end_action_button_confirmation_title | |
message: !input end_action_button_confirmation_message | |
- alias: Perform the action button selected action | |
choose: | |
- conditions: '{{ action_button_1 in wait.trigger.event.data.action | |
}}' | |
sequence: !input end_action_1 | |
- conditions: '{{ action_button_2 in wait.trigger.event.data.action | |
}}' | |
sequence: !input end_action_2 | |
- conditions: '{{ action_button_3 in wait.trigger.event.data.action | |
}}' | |
sequence: !input end_action_3 | |
- conditions: '{{ action_button_stop in wait.trigger.event.data.action | |
}}' | |
sequence: | |
- stop: Stop the automation | |
else: | |
- alias: Send a notification to each device | |
repeat: | |
for_each: !input end_notify_device | |
sequence: | |
- service: notify.mobile_app_{{ device_attr(repeat.item, 'name') | |
| slugify }} | |
data: | |
title: !input end_action_button_confirmation_title | |
message: !input end_time_delay_confirmation_message | |
- alias: Check if confirmation message is disabled | |
conditions: | |
- condition: template | |
value_template: '{{ ''disable_end_action_button_confirmation'' | |
in include_end_action_button_confirmation }}' | |
sequence: | |
- if: | |
- alias: Perform the action button selected action | |
condition: template | |
value_template: '{{ wait.trigger.idx is defined }}' | |
then: | |
- alias: Perform the action | |
choose: | |
- conditions: '{{ action_button_1 in wait.trigger.event.data.action | |
}}' | |
sequence: !input end_action_1 | |
- conditions: '{{ action_button_2 in wait.trigger.event.data.action | |
}}' | |
sequence: !input end_action_2 | |
- conditions: '{{ action_button_3 in wait.trigger.event.data.action | |
}}' | |
sequence: !input end_action_3 | |
- conditions: '{{ action_button_stop in wait.trigger.event.data.action | |
}}' | |
sequence: | |
- stop: Stop the automation | |
- choose: | |
- alias: Check if auto action 1 is enabled | |
conditions: | |
- condition: template | |
value_template: '{{ ''enable_end_action_1'' in include_end_auto_actions | |
}}' | |
sequence: !input end_action_1 | |
- choose: | |
- alias: Check if auto action 2 is enabled | |
conditions: | |
- condition: template | |
value_template: '{{ ''enable_end_action_2'' in include_end_auto_actions | |
}}' | |
sequence: !input end_action_2 | |
- choose: | |
- alias: Check if auto action 3 is enabled | |
conditions: | |
- condition: template | |
value_template: '{{ ''enable_end_action_3'' in include_end_auto_actions | |
}}' | |
sequence: !input end_action_3 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment