5f01411780
Initial snapshot of Home Assistant config (HAOS 2026.4.4)
prior to dashboard restructuring and helper YAML migration.
Pre-commit cleanup applied:
- Removed blueprints/switch_manager/ (9.4 MB stale, component already gone)
- Removed .storage/switch_manager
- Removed home-assistant.log.{1,old,fault}
- Removed zigbee2mqtt/configuration_backup_v{1..4}.yaml
- Removed zigbee2mqtt/database.db.tmp.2024-09-27 (1.5y old)
- Created empty themes/ to satisfy configuration.yaml include
.gitignore uses allowlist strategy for .storage/ to keep
all tokens, keys, and PINs out of version control.
1325 lines
62 KiB
YAML
1325 lines
62 KiB
YAML
blueprint:
|
|
name: Calendar Notifications & Actions
|
|
description: "# \U0001F4C5 Calendar Notifications & Actions\n**Version: 1.7**\n\nTransform
|
|
Your Calendar: Turn Events Into Notifications and Actions! \U0001F4C5\U0001F514⚙️\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<details> <summary><b>The Automation Process:</b> \U0001F448</summary>\n\n
|
|
\ - **Calendar Event Triggering:**\n - Trigger based on a keyword in a calendar
|
|
event or on all events in a selected calendar.\n - Choose to trigger at the
|
|
start or end of a calendar event with time offsets.\n\n - **Notification Options:**\n
|
|
\ - Option to send notifications to one or multiple devices when triggered.\n
|
|
\ - Action Buttons (Optional):\n - Notifications can include up to 3
|
|
action buttons.\n - Each action button is linked to a designated custom
|
|
action group.\n - Option to send a confirmation message when an action
|
|
button is pressed.\n - The automation will continue after a specified time
|
|
delay if an action button is not pressed.\n - Compatible with Apple iOS and
|
|
Android devices.\n\n - **Custom Actions:**\n - Option to define up to 3 different
|
|
action groups when triggered.\n - Each action group can contain as many actions
|
|
as desired.\n - Each action group can be linked to a notification action button
|
|
or executed automatically when the automation is triggered.\n</details>\n\nNeed
|
|
help? \n- FAQ: [Click Here](https://community.home-assistant.io/t/612326/2)\n-
|
|
The Settings & Best Practice Guidelines: [Click Here](https://community.home-assistant.io/t/612326/3)\n-
|
|
Community Support Including Updates: [Click Here](https://community.home-assistant.io/t/612326)\n\nRequired
|
|
= *\n"
|
|
domain: automation
|
|
input:
|
|
trigger_settings:
|
|
name: Trigger *
|
|
icon: mdi:cog-outline
|
|
description: ⚠️ Calendar events must be added at least 15 minutes before the
|
|
trigger time, otherwise the automation will not execute.
|
|
collapsed: true
|
|
input:
|
|
calendar:
|
|
name: Calendar *
|
|
description: Select the calendar to be used for the automation.
|
|
default: {}
|
|
selector:
|
|
entity:
|
|
filter:
|
|
- domain:
|
|
- calendar
|
|
multiple: false
|
|
include_calendar_trigger:
|
|
name: Use The Calendar Trigger - Key Word (Optional)
|
|
description: 'Choose whether to use a "Keyword" to trigger the automation.
|
|
|
|
|
|
**Note** - If you choose not to use a "Keyword", all calendar events will
|
|
trigger the automation.'
|
|
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
|
|
custom_value: false
|
|
sort: false
|
|
calendar_trigger:
|
|
name: Calendar Trigger - Key Word In Calendar Summary & / or Description
|
|
description: 'Input a single keyword or, for multiple keywords, use a comma-separated
|
|
list. Enter these keywords into the calendar event summary or description
|
|
to trigger this automation. Keywords can include letters, numbers, and
|
|
symbols. Be mindful of your choices, as any event containing these keywords
|
|
will trigger the automation.
|
|
|
|
|
|
To prevent false triggers, it''s recommended to use **@** or **#** followed
|
|
by the keyword in the calendar event (e.g., **@bins** or **#bins**) or
|
|
for multiple keywords (e.g., **@bins, @rubbish**).
|
|
|
|
|
|
For more information on how to use Trigger Keywords, [Click Here](https://community.home-assistant.io/t/612326/4)'
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
start_calendar_offset:
|
|
name: Calendar Start - Offset
|
|
description: You can specify an offset from the start of the calendar event
|
|
for when the trigger should be activated. To trigger the automation before
|
|
the start of the event, use a negative sign "-" followed by 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: You can specify an offset from the end of the calendar event
|
|
for when the trigger should be activated. To trigger the automation before
|
|
the end of the event, use a negative sign "-" followed by the time value.
|
|
default:
|
|
days: 0
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
selector:
|
|
duration:
|
|
enable_day: true
|
|
start_notify_settings:
|
|
name: Start Notify
|
|
icon: mdi:calendar-start-outline
|
|
collapsed: true
|
|
input:
|
|
include_start_notify:
|
|
name: Use The Start Notify Options (Optional)
|
|
description: Select "Enable" if you would like to receive notifications
|
|
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
|
|
custom_value: false
|
|
sort: false
|
|
start_notify_device:
|
|
name: Start Notify - Devices To Notify
|
|
description: Select the devices to receive notifications at the start of
|
|
a calendar event.
|
|
default: []
|
|
selector:
|
|
device:
|
|
filter:
|
|
- integration: mobile_app
|
|
multiple: true
|
|
start_title:
|
|
name: Start Notify - Title
|
|
description: Specify the notification title for the start of the calendar
|
|
event.
|
|
default: '{{ trigger.calendar_event.summary }}'
|
|
selector:
|
|
text: {}
|
|
start_message:
|
|
name: Start Notify - Message
|
|
description: Specify the notification message for the start of the calendar
|
|
event.
|
|
default: '{{ trigger.calendar_event.description }}'
|
|
selector:
|
|
text: {}
|
|
start_notify_interruption_level:
|
|
name: Interruption Level - iOS Only
|
|
description: 'On devices running iOS 15 and later, you can configure the
|
|
interruption level for your notifications to ensure they are delivered
|
|
according to your preferences. Choose the desired interruption level from
|
|
the dropdown list. Critical and time-sensitive notifications must be turned
|
|
ON within the Home Assistant App, and time-sensitive notifications must
|
|
be allowed in your Focus settings.
|
|
|
|
|
|
For more information on interruption levels [Click Here](https://community.home-assistant.io/t/612326/155)'
|
|
default: active
|
|
selector:
|
|
select:
|
|
mode: dropdown
|
|
options:
|
|
- label: Default
|
|
value: active
|
|
- label: Critical Notifications
|
|
value: critical
|
|
- label: Time Sensitive Notifications
|
|
value: time-sensitive
|
|
- label: Quiet Notifications Without Waking Screen
|
|
value: passive
|
|
multiple: false
|
|
custom_value: false
|
|
sort: false
|
|
start_notify_data:
|
|
name: Android Only Options (Optional)
|
|
description: '**High Priority** notifications ensure that you receive important
|
|
alerts immediately. These notifications bypass normal delivery delays
|
|
and are delivered instantly to your device.
|
|
|
|
|
|
**Sticky Notification** ensure that important alerts are not dismissed
|
|
when selected. They remain on your notification screen until you actively
|
|
clear or swipe them away, ensuring that critical information stays visible
|
|
until addressed.
|
|
|
|
|
|
**Notification Channel** allow you to easily organize different notification
|
|
settings, including notification sounds, vibrations, and other device-specific
|
|
features. If you choose this option, please enter your desired channel
|
|
name below.'
|
|
default: []
|
|
selector:
|
|
select:
|
|
multiple: true
|
|
options:
|
|
- label: High Priority
|
|
value: high_priority
|
|
- label: Sticky Notification
|
|
value: sticky
|
|
- label: Notification Channel
|
|
value: channel
|
|
custom_value: false
|
|
sort: false
|
|
start_notify_channel:
|
|
name: Notification Channel - Android Only
|
|
description: 'If you have chosen to use a notification channel, simply enter
|
|
the name of an existing channel to apply its pre-configured settings.
|
|
If you don''t have a channel yet, you can create a new one by entering
|
|
a name here. When your automation sends the first notification, it will
|
|
create the channel on your device. After the channel is created, you can
|
|
customize its notification settings to your preference directly on your
|
|
device.
|
|
|
|
|
|
For more information on notification channels [Click Here](https://community.home-assistant.io/t/612326/155)'
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
start_action_settings:
|
|
name: Start Actions Buttons
|
|
icon: mdi:gesture-tap
|
|
collapsed: true
|
|
input:
|
|
include_start_action_buttons:
|
|
name: Start Notify - Action Buttons Options (Optional)
|
|
description: 'Enable the action buttons you would like to use. These buttons
|
|
will be shown in the notification, allowing you to perform actions when
|
|
clicked.
|
|
|
|
|
|
**NOTE** - You do not need to select any notification action buttons to
|
|
execute a start action. If you prefer to run a start action without using
|
|
any action buttons, simply enable any ''Start Auto Action'' located in
|
|
the ''Start Actions'' section below.
|
|
|
|
|
|
⚠️ Enter the names for all enabled **Action Buttons** below, including
|
|
the **CANCEL Action Button**. Missing any button names may prevent the
|
|
automation from functioning correctly and could result in not receiving
|
|
the notification.'
|
|
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
|
|
custom_value: false
|
|
sort: false
|
|
start_action_button_1:
|
|
name: Start Notify - Action Button 1
|
|
description: Enter the button name to be displayed in the notification.
|
|
This button will execute all actions entered into the "Start - Action
|
|
1" input located in the 'Start Actions' section below.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
start_action_button_2:
|
|
name: Start Notify - Action Button 2
|
|
description: Enter the button name to be displayed in the notification.
|
|
This button will execute all actions entered into the "Start - Action
|
|
2" input located in the 'Start Actions' section below.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
start_action_button_3:
|
|
name: Start Notify - Action Button 3
|
|
description: Enter the button name to be displayed in the notification.
|
|
This button will execute all actions entered into the "Start - Action
|
|
3" input located in the 'Start Actions' section below.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
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: {}
|
|
start_time_delay:
|
|
name: Start Notify - Time Delay
|
|
description: Specify the time delay after which the automation will resume
|
|
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 devices when
|
|
an action button has been pressed. This is useful when notifying multiple
|
|
devices, informing others that an action has been selected.
|
|
|
|
|
|
⚠️ If Action Button Confirmation is enabled, you must include the **Confirmation
|
|
Title**, **Confirmation Message** for each enabled action button, **Cancel
|
|
Confirmation Message**, and **Time Delay Confirmation Message**. Missing
|
|
any of these may prevent the automation from functioning correctly and
|
|
could result in not receiving the notification.'
|
|
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
|
|
custom_value: false
|
|
sort: false
|
|
start_action_button_confirmation_title:
|
|
name: Start Notify - Action Button Confirmation Title
|
|
description: Specify the notification title when an action button is pressed
|
|
or when the time delay has passed.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
start_action_button_confirmation_message:
|
|
name: Start Notify - Action Button 1 Confirmation Message
|
|
description: Specify the notification message when action button 1 is pressed.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
start_action_button_2_confirmation_message:
|
|
name: Start Notify - Action Button 2 Confirmation Message
|
|
description: Specify the notification message when action button 2 is pressed.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
start_action_button_3_confirmation_message:
|
|
name: Start Notify - Action Button 3 Confirmation Message
|
|
description: Specify the notification message when action button 3 is pressed.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
start_action_button_stop_confirmation_message:
|
|
name: Start Notify - Action Button Cancel Confirmation Message
|
|
description: Specify the notification message when the cancel button is
|
|
pressed.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
start_time_delay_confirmation_message:
|
|
name: Start Notify - Time Delay Confirmation Message
|
|
description: Specify the notification message when the time delay has passed.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
start_auto_action_settings:
|
|
name: Start Actions
|
|
icon: mdi:code-tags
|
|
collapsed: true
|
|
input:
|
|
include_start_auto_actions:
|
|
name: Use The Start Auto Action Options (Optional)
|
|
description: 'Enabling the auto option will allow the "Start Actions" below
|
|
to run when the calendar event is triggered.
|
|
|
|
|
|
When using action buttons in a notification, it is not necessary to enable
|
|
an auto action for the start actions to work, as the action button pressed
|
|
in a notification will run the selected action. However, if you miss the
|
|
notification and don''t press an action button, and after the time delay
|
|
has passed, enabling a start auto action option ensures 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
|
|
custom_value: false
|
|
sort: 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. These actions are also linked to the "Start Notify - Action Button
|
|
1" input located in the 'Start Actions Buttons' section above.
|
|
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. These actions are also linked to the "Start Notify - Action Button
|
|
2" input located in the 'Start Actions Buttons' section above.
|
|
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. These actions are also linked to the "Start Notify - Action Button
|
|
3" input located in the 'Start Actions Buttons' section above.
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
end_notify_settings:
|
|
name: End Notify
|
|
icon: mdi:calendar-end-outline
|
|
collapsed: true
|
|
input:
|
|
include_end_notify:
|
|
name: Use The End Notify Options (Optional)
|
|
description: Select "Enable" if you would like to receive notifications
|
|
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
|
|
custom_value: false
|
|
sort: false
|
|
end_notify_device:
|
|
name: End Notify - Devices To Notify
|
|
description: Select the devices to receive notifications at the end of a
|
|
calendar event.
|
|
default: []
|
|
selector:
|
|
device:
|
|
filter:
|
|
- integration: mobile_app
|
|
multiple: true
|
|
end_title:
|
|
name: End Notify - Title
|
|
description: Specify the notification title for the end of the calendar
|
|
event.
|
|
default: '{{ trigger.calendar_event.summary }}'
|
|
selector:
|
|
text: {}
|
|
end_message:
|
|
name: End Notify - Message
|
|
description: Specify the notification message for the end of the calendar
|
|
event.
|
|
default: '{{ trigger.calendar_event.description }}'
|
|
selector:
|
|
text: {}
|
|
end_notify_interruption_level:
|
|
name: Interruption Level - iOS Only
|
|
description: 'On devices running iOS 15 and later, you can configure the
|
|
interruption level for your notifications to ensure they are delivered
|
|
according to your preferences. Choose the desired interruption level from
|
|
the dropdown list. Critical and time-sensitive notifications must be turned
|
|
ON within the Home Assistant App, and time-sensitive notifications must
|
|
be allowed in your Focus settings.
|
|
|
|
|
|
For more information on interruption levels [Click Here](https://community.home-assistant.io/t/612326/155)'
|
|
default: active
|
|
selector:
|
|
select:
|
|
mode: dropdown
|
|
options:
|
|
- label: Default
|
|
value: active
|
|
- label: Critical Notifications
|
|
value: critical
|
|
- label: Time Sensitive Notifications
|
|
value: time-sensitive
|
|
- label: Quiet Notifications Without Waking Screen
|
|
value: passive
|
|
multiple: false
|
|
custom_value: false
|
|
sort: false
|
|
end_notify_data:
|
|
name: Android Only Options (Optional)
|
|
description: '**High Priority** notifications ensure that you receive important
|
|
alerts immediately. These notifications bypass normal delivery delays
|
|
and are delivered instantly to your device.
|
|
|
|
|
|
**Sticky Notification** ensure that important alerts are not dismissed
|
|
when selected. They remain on your notification screen until you actively
|
|
clear or swipe them away, ensuring that critical information stays visible
|
|
until addressed.
|
|
|
|
|
|
**Notification Channel** allow you to easily organize different notification
|
|
settings, including notification sounds, vibrations, and other device-specific
|
|
features. If you choose this option, please enter your desired channel
|
|
name below.'
|
|
default: []
|
|
selector:
|
|
select:
|
|
multiple: true
|
|
options:
|
|
- label: High Priority
|
|
value: high_priority
|
|
- label: Sticky Notification
|
|
value: sticky
|
|
- label: Notification Channel
|
|
value: channel
|
|
custom_value: false
|
|
sort: false
|
|
end_notify_channel:
|
|
name: Notification Channel - Android Only
|
|
description: 'If you have chosen to use a notification channel, simply enter
|
|
the name of an existing channel to apply its pre-configured settings.
|
|
If you don''t have a channel yet, you can create a new one by entering
|
|
a name here. When your automation sends the first notification, it will
|
|
create the channel on your device. After the channel is created, you can
|
|
customize its notification settings to your preference directly on your
|
|
device.
|
|
|
|
|
|
For more information on notification channels [Click Here](https://community.home-assistant.io/t/612326/155)'
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
end_action_settings:
|
|
name: End Actions Buttons
|
|
icon: mdi:gesture-double-tap
|
|
collapsed: true
|
|
input:
|
|
include_end_action_buttons:
|
|
name: End Notify - Action Buttons Options (Optional)
|
|
description: 'Enable the action buttons you would like to use. These buttons
|
|
will be shown in the notification, allowing you to perform actions when
|
|
clicked.
|
|
|
|
|
|
**NOTE** - You do not need to select any notification action buttons to
|
|
execute an end action. If you prefer to run an end action without using
|
|
any action buttons, simply enable any ''End Auto Action'' located in the
|
|
''End Actions'' section below.
|
|
|
|
|
|
⚠️ Enter the names for all enabled **Action Buttons** below, including
|
|
the **CANCEL Action Button**. Missing any button names may prevent the
|
|
automation from functioning correctly and could result in not receiving
|
|
the notification.'
|
|
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
|
|
custom_value: false
|
|
sort: false
|
|
end_action_button_1:
|
|
name: End Notify - Action Button 1
|
|
description: Enter the button name to be displayed in the notification.
|
|
This button will execute all actions entered into the "End - Action 1"
|
|
input located in the 'End Actions' section below.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
end_action_button_2:
|
|
name: End Notify - Action Button 2
|
|
description: Enter the button name to be displayed in the notification.
|
|
This button will execute all actions entered into the "End - Action 2"
|
|
input located in the 'End Actions' section below.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
end_action_button_3:
|
|
name: End Notify - Action Button 3
|
|
description: Enter the button name to be displayed in the notification.
|
|
This button will execute all actions entered into the "End - Action 3"
|
|
input located in the 'End Actions' section below.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
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: {}
|
|
end_time_delay:
|
|
name: End Notify - Time Delay
|
|
description: Specify the time delay after which the automation will resume
|
|
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 devices when
|
|
an action button has been pressed. This is useful when notifying multiple
|
|
devices, informing others that an action has been selected.
|
|
|
|
|
|
⚠️ If Action Button Confirmation is enabled, you must include the **Confirmation
|
|
Title**, **Confirmation Message** for each enabled action button, **Cancel
|
|
Confirmation Message**, and **Time Delay Confirmation Message**. Missing
|
|
any of these may prevent the automation from functioning correctly and
|
|
could result in not receiving the notification.'
|
|
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
|
|
custom_value: false
|
|
sort: false
|
|
end_action_button_confirmation_title:
|
|
name: End Notify - Action Button Confirmation Title
|
|
description: Specify the notification title when an action button is pressed
|
|
or when the time delay has passed.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
end_action_button_confirmation_message:
|
|
name: End Notify - Action Button 1 Confirmation Message
|
|
description: Specify the notification message when action button 1 is pressed.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
end_action_button_2_confirmation_message:
|
|
name: End Notify - Action Button 2 Confirmation Message
|
|
description: Specify the notification message when action button 2 is pressed.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
end_action_button_3_confirmation_message:
|
|
name: End Notify - Action Button 3 Confirmation Message
|
|
description: Specify the notification message when action button 3 is pressed.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
end_action_button_stop_confirmation_message:
|
|
name: End Notify - Action Button Cancel Confirmation Message
|
|
description: Specify the notification message when the cancel button is
|
|
pressed.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
end_time_delay_confirmation_message:
|
|
name: End Notify - Time Delay Confirmation Message
|
|
description: Specify the notification message when the time delay has passed.
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
end_auto_action_settings:
|
|
name: End Actions
|
|
icon: mdi:code-tags
|
|
collapsed: true
|
|
input:
|
|
include_end_auto_actions:
|
|
name: Use The End Auto Action Options (Optional)
|
|
description: 'Enabling the auto option will allow the "End Actions" below
|
|
to run when the calendar event is triggered.
|
|
|
|
|
|
When using action buttons in a notification, it is not necessary to enable
|
|
an auto action for the end actions to work, as the action button pressed
|
|
in a notification will run the selected action. However, if you miss the
|
|
notification and don''t press an action button, and after the time delay
|
|
has passed, enabling an end auto action option ensures 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
|
|
custom_value: false
|
|
sort: 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. These actions are also linked to the "End Notify - Action Button
|
|
1" input located in the 'End Actions Buttons' section above.
|
|
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. These actions are also linked to the "End Notify - Action Button
|
|
2" input located in the 'End Actions Buttons' section above.
|
|
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. These actions are also linked to the "End Notify - Action Button
|
|
3" input located in the 'End Actions Buttons' section above.
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
global_conditions_settings:
|
|
name: Global Conditions
|
|
icon: mdi:earth
|
|
collapsed: true
|
|
input:
|
|
global_conditions:
|
|
name: Global Conditions
|
|
description: Enter any global conditions you would like to apply to the
|
|
automation.
|
|
default: []
|
|
selector:
|
|
condition: {}
|
|
source_url: https://gist.github.com/Blackshome/40bfd92fb1fe6a9a9189325704a3c81b
|
|
mode: parallel
|
|
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
|
|
include_start_notify: !input include_start_notify
|
|
start_notify_device: !input start_notify_device
|
|
start_title: !input start_title
|
|
start_message: !input start_message
|
|
start_notify_interruption_level: !input start_notify_interruption_level
|
|
start_notify_data: !input start_notify_data
|
|
start_notify_channel: !input start_notify_channel
|
|
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_action_button_2_confirmation_message: !input start_action_button_2_confirmation_message
|
|
start_action_button_3_confirmation_message: !input start_action_button_3_confirmation_message
|
|
start_action_button_stop_confirmation_message: !input start_action_button_stop_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
|
|
end_notify_interruption_level: !input end_notify_interruption_level
|
|
end_notify_data: !input end_notify_data
|
|
end_notify_channel: !input end_notify_channel
|
|
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_action_button_2_confirmation_message: !input end_action_button_2_confirmation_message
|
|
end_action_button_3_confirmation_message: !input end_action_button_3_confirmation_message
|
|
end_action_button_stop_confirmation_message: !input end_action_button_stop_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
|
|
global_conditions: !input global_conditions
|
|
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: or
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{% set keywords = calendar_trigger.split('','') %} {% set keywords
|
|
= keywords | map(''trim'') | list %} {{ keywords | select(''in'', trigger.calendar_event.summary)
|
|
| list | count > 0 }}
|
|
|
|
'
|
|
- condition: template
|
|
value_template: '{% set keywords = calendar_trigger.split('','') %} {% set keywords
|
|
= keywords | map(''trim'') | list %} {{ keywords | select(''in'', trigger.calendar_event.description)
|
|
| list | count > 0 }}
|
|
|
|
'
|
|
- condition: template
|
|
value_template: '{{ include_calendar_trigger == ''disable_key_word'' }}'
|
|
- condition: and
|
|
conditions: !input global_conditions
|
|
action:
|
|
- 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: '{{ include_start_notify == ''enable_start_notify_options''}}'
|
|
sequence:
|
|
- 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 }}'
|
|
start_message_data: "{% set message = namespace(data={}) %} {% if start_notify_interruption_level
|
|
in ['active', 'critical', 'time-sensitive', 'passive'] %}\n {% set
|
|
message.data = dict(message.data, **{ 'push': {'interruption-level':
|
|
start_notify_interruption_level }}) %}\n{% endif %} {% if 'high_priority'
|
|
in start_notify_data %}\n {% set message.data = dict(message.data,
|
|
**{ 'ttl': 0, 'priority': 'high' }) %}\n{% endif %} {% if 'channel'
|
|
in start_notify_data %}\n {% set message.data = dict(message.data,
|
|
**{ 'channel': start_notify_channel }) %}\n{% endif %} {% if 'sticky'
|
|
in start_notify_data %}\n {% set message.data = dict(message.data,
|
|
**{ 'sticky': \"true\" }) %}\n{% endif %} {{ message.data }}"
|
|
start_message_data_action_button: "{% set message = namespace(data={})
|
|
%} {% set actions = [] %} {% if start_notify_interruption_level in ['active',
|
|
'critical', 'time-sensitive', 'passive'] %}\n {% set message.data =
|
|
dict(message.data, **{ 'push': {'interruption-level': start_notify_interruption_level
|
|
}}) %}\n{% endif %} {% if 'high_priority' in start_notify_data %}\n
|
|
\ {% set message.data = dict(message.data, **{ 'ttl': 0, 'priority':
|
|
'high' }) %}\n{% endif %} {% if 'channel' in start_notify_data %}\n
|
|
\ {% set message.data = dict(message.data, **{ 'channel': start_notify_channel
|
|
}) %}\n{% endif %} {% if 'sticky' in start_notify_data %}\n {% set
|
|
message.data = dict(message.data, **{ 'sticky': \"true\" }) %}\n{% endif
|
|
%} {% if 'enable_start_action_button_1' in include_start_action_buttons
|
|
%}\n {% set actions = actions + [{ 'action': action_button_1, 'title':
|
|
start_action_button_1 }] %}\n{% endif %} {% if 'enable_start_action_button_2'
|
|
in include_start_action_buttons %}\n {% set actions = actions + [{
|
|
'action': action_button_2, 'title': start_action_button_2 }] %}\n{%
|
|
endif %} {% if 'enable_start_action_button_3' in include_start_action_buttons
|
|
%}\n {% set actions = actions + [{ 'action': action_button_3, 'title':
|
|
start_action_button_3 }] %}\n{% endif %} {% if ('enable_start_action_button_1'
|
|
in include_start_action_buttons) or \n ('enable_start_action_button_2'
|
|
in include_start_action_buttons) or \n ('enable_start_action_button_3'
|
|
in include_start_action_buttons) %}\n {% set actions = actions + [{
|
|
'action': action_button_stop, 'title': start_action_button_stop }] %}\n{%
|
|
endif %} {% if actions | length > 0 %}\n {% set message.data = dict(message.data,
|
|
**{ 'actions': actions }) %}\n{% endif %} {{ message.data }}"
|
|
- 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: '{{ start_message_data_action_button }}'
|
|
- 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:
|
|
- choose:
|
|
- alias: Check if action button 1 is pressed
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ action_button_1 in wait.trigger.event.data.action
|
|
}}'
|
|
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_action_button_confirmation_title
|
|
message: !input start_action_button_confirmation_message
|
|
data: '{{ start_message_data }}'
|
|
- alias: Check if action button 2 is pressed
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ action_button_2 in wait.trigger.event.data.action
|
|
}}'
|
|
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_action_button_confirmation_title
|
|
message: !input start_action_button_2_confirmation_message
|
|
data: '{{ start_message_data }}'
|
|
- alias: Check if action button 3 is pressed
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ action_button_3 in wait.trigger.event.data.action
|
|
}}'
|
|
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_action_button_confirmation_title
|
|
message: !input start_action_button_3_confirmation_message
|
|
data: '{{ start_message_data }}'
|
|
- alias: Check if action stop button is pressed
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ action_button_stop in wait.trigger.event.data.action
|
|
}}'
|
|
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_action_button_confirmation_title
|
|
message: !input start_action_button_stop_confirmation_message
|
|
data: '{{ start_message_data }}'
|
|
- 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
|
|
data: '{{ start_message_data }}'
|
|
- 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:
|
|
- 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 }}'
|
|
end_message_data: "{% set message = namespace(data={}) %} {% if end_notify_interruption_level
|
|
in ['active', 'critical', 'time-sensitive', 'passive'] %}\n {% set
|
|
message.data = dict(message.data, **{ 'push': {'interruption-level':
|
|
end_notify_interruption_level }}) %}\n{% endif %} {% if 'high_priority'
|
|
in end_notify_data %}\n {% set message.data = dict(message.data,
|
|
**{ 'ttl': 0, 'priority': 'high' }) %}\n{% endif %} {% if 'channel'
|
|
in end_notify_data %}\n {% set message.data = dict(message.data,
|
|
**{ 'channel': end_notify_channel }) %}\n{% endif %} {% if 'sticky'
|
|
in end_notify_data %}\n {% set message.data = dict(message.data,
|
|
**{ 'sticky': \"true\" }) %}\n{% endif %} {{ message.data }}"
|
|
end_message_data_action_button: "{% set message = namespace(data={})
|
|
%} {% set actions = [] %} {% if end_notify_interruption_level in ['active',
|
|
'critical', 'time-sensitive', 'passive'] %}\n {% set message.data
|
|
= dict(message.data, **{ 'push': {'interruption-level': end_notify_interruption_level
|
|
}}) %}\n{% endif %} {% if 'high_priority' in end_notify_data %}\n
|
|
\ {% set message.data = dict(message.data, **{ 'ttl': 0, 'priority':
|
|
'high' }) %}\n{% endif %} {% if 'channel' in end_notify_data %}\n
|
|
\ {% set message.data = dict(message.data, **{ 'channel': end_notify_channel
|
|
}) %}\n{% endif %} {% if 'sticky' in end_notify_data %}\n {% set
|
|
message.data = dict(message.data, **{ 'sticky': \"true\" }) %}\n{%
|
|
endif %} {% if 'enable_end_action_button_1' in include_end_action_buttons
|
|
%}\n {% set actions = actions + [{ 'action': action_button_1, 'title':
|
|
end_action_button_1 }] %}\n{% endif %} {% if 'enable_end_action_button_2'
|
|
in include_end_action_buttons %}\n {% set actions = actions + [{
|
|
'action': action_button_2, 'title': end_action_button_2 }] %}\n{%
|
|
endif %} {% if 'enable_end_action_button_3' in include_end_action_buttons
|
|
%}\n {% set actions = actions + [{ 'action': action_button_3, 'title':
|
|
end_action_button_3 }] %}\n{% endif %} {% if ('enable_end_action_button_1'
|
|
in include_end_action_buttons) or \n ('enable_end_action_button_2'
|
|
in include_end_action_buttons) or \n ('enable_end_action_button_3'
|
|
in include_end_action_buttons) %}\n {% set actions = actions + [{
|
|
'action': action_button_stop, 'title': end_action_button_stop }] %}\n{%
|
|
endif %} {% if actions | length > 0 %}\n {% set message.data = dict(message.data,
|
|
**{ 'actions': actions }) %}\n{% endif %} {{ message.data }}"
|
|
- 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: '{{ end_message_data_action_button }}'
|
|
- 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:
|
|
- choose:
|
|
- alias: Check if action button 1 is pressed
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ action_button_1 in wait.trigger.event.data.action
|
|
}}'
|
|
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_action_button_confirmation_title
|
|
message: !input end_action_button_confirmation_message
|
|
data: '{{ end_message_data }}'
|
|
- alias: Check if action button 2 is pressed
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ action_button_2 in wait.trigger.event.data.action }}'
|
|
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_action_button_confirmation_title
|
|
message: !input end_action_button_2_confirmation_message
|
|
data: '{{ end_message_data }}'
|
|
- alias: Check if action button 3 is pressed
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ action_button_3 in wait.trigger.event.data.action }}'
|
|
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_action_button_confirmation_title
|
|
message: !input end_action_button_3_confirmation_message
|
|
data: '{{ end_message_data }}'
|
|
- alias: Check if action stop button is pressed
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ action_button_stop in wait.trigger.event.data.action
|
|
}}'
|
|
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_action_button_confirmation_title
|
|
message: !input end_action_button_stop_confirmation_message
|
|
data: '{{ end_message_data }}'
|
|
- 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
|
|
data: '{{ end_message_data }}'
|
|
- 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
|