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.
1685 lines
70 KiB
YAML
1685 lines
70 KiB
YAML
blueprint:
|
|
name: State Notifications & Actions
|
|
description: "# \U0001F4CD State Notifications & Actions\n**Version: 1.5**\n\nState
|
|
Your Trigger: Turn State Changes Into Notifications and Actions! \U0001F680\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
|
|
\ - **State Triggers:**\n - Define triggers based on entity state changes or
|
|
numeric state changes (above or below a specified value).\n - Specify entities
|
|
for both \"Start Entities\" and \"End Entities.\" Both start and end entities
|
|
serve as triggers.\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\n - **Custom Conditions:**\n - Enter any custom
|
|
conditions to further customize the automation process\n</details>\n\nNeed help?
|
|
\n- FAQ: [Click Here](https://community.home-assistant.io/t/state-notifications-actions/612617/2?u=blacky)\n-
|
|
The Settings & Best Practice Guidelines: [Click Here](https://community.home-assistant.io/t/state-notifications-actions/612617/3?u=blacky)\n-
|
|
Community Support Including Updates: [Click Here](https://community.home-assistant.io/t/state-notifications-actions/612617?u=blacky)\n"
|
|
domain: automation
|
|
input:
|
|
start_trigger_settings:
|
|
name: Start Trigger
|
|
icon: mdi:cog-outline
|
|
collapsed: true
|
|
input:
|
|
start_trigger_state:
|
|
name: Start Trigger - State
|
|
description: 'Please select what state you would like for your trigger.
|
|
You can choose from ten options available in the dropdown menu. If your
|
|
option is not in the dropdown menu then just type the state you would
|
|
like to use in and click the save button.
|
|
|
|
|
|
1 - Button Or Any State
|
|
|
|
2 - ON
|
|
|
|
3 - OFF
|
|
|
|
4 - Unavailable
|
|
|
|
5 - Unknown
|
|
|
|
6 - Home
|
|
|
|
7 - Not Home
|
|
|
|
8 - Numeric State - Above
|
|
|
|
9 - Numeric State - Below
|
|
|
|
10 - Numeric State - Above & Below
|
|
|
|
|
|
A numbering system has been implemented to facilitate navigation within
|
|
the dropdown selections. Each number corresponds to a specific configuration,
|
|
aiding users in identifying and adjusting the settings used within each
|
|
selection. For instance, when selecting "8 - Numeric State - Above" as
|
|
a dropdown option, settings marked "Used in options 8, 9 or 10" are required
|
|
for that respective selection because number 8 is included in those options.
|
|
|
|
'
|
|
default: button_any_state
|
|
selector:
|
|
select:
|
|
custom_value: true
|
|
mode: dropdown
|
|
options:
|
|
- label: 1 - Button Or Any State
|
|
value: button_any_state
|
|
- label: 2 - ON
|
|
value: 'on'
|
|
- label: 3 - OFF
|
|
value: 'off'
|
|
- label: 4 - Unavailable
|
|
value: unavailable
|
|
- label: 5 - Unknown
|
|
value: unknown
|
|
- label: 6 - Home
|
|
value: home
|
|
- label: 7 - Not Home
|
|
value: not_home
|
|
- label: 8 - Numeric State - Above
|
|
value: numeric_state_above
|
|
- label: 9 - Numeric State - Below
|
|
value: numeric_state_below
|
|
- label: 10 - Numeric State - Above & Below
|
|
value: numeric_state_above_below
|
|
multiple: false
|
|
sort: false
|
|
start_trigger_state_entity:
|
|
name: State Entities
|
|
description: '**Used in options 1, 2, 3, 4, 5, 6 or 7**. Enter the entities
|
|
that will trigger the automation on state change.
|
|
|
|
'
|
|
default: []
|
|
selector:
|
|
entity:
|
|
multiple: true
|
|
start_trigger_numeric_entity:
|
|
name: Numeric State Entities
|
|
description: '**Used in options 8, 9 or 10**. Enter the entities that will
|
|
trigger the automation numeric state change.
|
|
|
|
'
|
|
default: []
|
|
selector:
|
|
entity:
|
|
multiple: true
|
|
start_above_state:
|
|
name: Numeric State Above Option
|
|
description: '**Used in options 8, or 10**. Set the above value. The numeric
|
|
state trigger will be when the value crosses over to above the set value.
|
|
|
|
'
|
|
default: 0
|
|
selector:
|
|
number:
|
|
min: -20.0
|
|
max: 100.0
|
|
step: 1.0
|
|
unit_of_measurement: value
|
|
mode: slider
|
|
start_below_state:
|
|
name: Numeric State Below Option
|
|
description: '**Used in options 9 or 10**. Set the below value. The numeric
|
|
state trigger will be when the value crosses over to below the set value.
|
|
|
|
'
|
|
default: 0
|
|
selector:
|
|
number:
|
|
min: -20.0
|
|
max: 100.0
|
|
step: 1.0
|
|
unit_of_measurement: value
|
|
mode: slider
|
|
start_time_delay_state:
|
|
name: Time Delay
|
|
description: '**Used in options 1, 2, 3, 4, 5, 6, 7, 8, 9 or 10** Specifies
|
|
the duration that the trigger must maintain its state before the automation
|
|
is executed. The automation will only proceed if the trigger condition
|
|
is met continuously for this entire time delay.
|
|
|
|
'
|
|
default:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
selector:
|
|
duration: {}
|
|
start_notify_settings:
|
|
name: Start Notify
|
|
icon: mdi:bell-check-outline
|
|
collapsed: true
|
|
input:
|
|
include_start_notify:
|
|
name: Use The Start Notify Options (Optional)
|
|
description: "Select \"Enable\" if you would like to receive notifications
|
|
when the entity changes to its set state. \n"
|
|
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: Devices To Notify
|
|
description: 'Select the devices to receive notifications when the entity
|
|
changes to its set state.
|
|
|
|
'
|
|
default: []
|
|
selector:
|
|
device:
|
|
filter:
|
|
- integration: mobile_app
|
|
multiple: true
|
|
start_title:
|
|
name: Title
|
|
description: 'Specify the notification title for when the entity changes
|
|
to its set state.
|
|
|
|
'
|
|
default: None
|
|
selector:
|
|
text: {}
|
|
start_message:
|
|
name: Message
|
|
description: 'Specify the notification message for when the entity changes
|
|
to its set state.
|
|
|
|
|
|
For more information on including the sensor name that triggered the automation
|
|
in your message [Click Here](https://community.home-assistant.io/t/612617/63)
|
|
|
|
'
|
|
default: []
|
|
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/612617/69)
|
|
|
|
'
|
|
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/612617/69)
|
|
|
|
'
|
|
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: 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: 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: 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: 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: Cancel
|
|
selector:
|
|
text: {}
|
|
start_time_delay:
|
|
name: 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: 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: 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: 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: 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: 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: 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: 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 trigger the **Start Actions**
|
|
below when the entity changes to its specified state.
|
|
|
|
|
|
When using action buttons in a notification, enabling an auto action is
|
|
not necessary for the start actions to work, as pressing an action button
|
|
will execute the selected action. However, if you miss the notification
|
|
and don''t press an action button, enabling the auto action option ensures
|
|
the start actions will still run after the specified time delay.
|
|
|
|
'
|
|
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: Action 1
|
|
description: 'Enter the actions you want to run when the entity changes
|
|
state.
|
|
|
|
|
|
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: Action 2
|
|
description: 'Enter the actions you want to run when the entity changes
|
|
state.
|
|
|
|
|
|
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: Action 3
|
|
description: 'Enter the actions you want to run when the entity changes
|
|
state.
|
|
|
|
|
|
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_trigger_settings:
|
|
name: End Trigger
|
|
icon: mdi:cog-outline
|
|
collapsed: true
|
|
input:
|
|
end_trigger_state:
|
|
name: End Trigger - State
|
|
description: 'Please select what state you would like for your trigger.
|
|
You can choose from ten options available in the dropdown menu. If your
|
|
option is not in the dropdown menu then just type the state you would
|
|
like to use in and click the save button.
|
|
|
|
|
|
1 - Button Or Any State
|
|
|
|
2 - ON
|
|
|
|
3 - OFF
|
|
|
|
4 - Unavailable
|
|
|
|
5 - Unknown
|
|
|
|
6 - Home
|
|
|
|
7 - Not Home
|
|
|
|
8 - Numeric State - Above
|
|
|
|
9 - Numeric State - Below
|
|
|
|
10 - Numeric State - Above & Below
|
|
|
|
|
|
A numbering system has been implemented to facilitate navigation within
|
|
the dropdown selections. Each number corresponds to a specific configuration,
|
|
aiding users in identifying and adjusting the settings used within each
|
|
selection. For instance, when selecting "8 - Numeric State - Above" as
|
|
a dropdown option, settings marked "Used in options 8, 9 or 10" are required
|
|
for that respective selection because number 8 is included in those options.
|
|
|
|
'
|
|
default: button_any_state
|
|
selector:
|
|
select:
|
|
custom_value: true
|
|
mode: dropdown
|
|
options:
|
|
- label: 1 - Button Or Any State
|
|
value: button_any_state
|
|
- label: 2 - ON
|
|
value: 'on'
|
|
- label: 3 - OFF
|
|
value: 'off'
|
|
- label: 4 - Unavailable
|
|
value: unavailable
|
|
- label: 5 - Unknown
|
|
value: unknown
|
|
- label: 6 - Home
|
|
value: home
|
|
- label: 7 - Not Home
|
|
value: not_home
|
|
- label: 8 - Numeric State - Above
|
|
value: numeric_state_above
|
|
- label: 9 - Numeric State - Below
|
|
value: numeric_state_below
|
|
- label: 10 - Numeric State - Above & Below
|
|
value: numeric_state_above_below
|
|
multiple: false
|
|
sort: false
|
|
end_trigger_state_entity:
|
|
name: State Entities
|
|
description: '**Used in options 1, 2, 3, 4, 5, 6 or 7**. Enter the entities
|
|
that will trigger the automation on state change.
|
|
|
|
'
|
|
default: []
|
|
selector:
|
|
entity:
|
|
multiple: true
|
|
end_trigger_numeric_entity:
|
|
name: Numeric State Entities
|
|
description: '**Used in options 8, 9 or 10**. Enter the entities that will
|
|
trigger the automation numeric state change.
|
|
|
|
'
|
|
default: []
|
|
selector:
|
|
entity:
|
|
multiple: true
|
|
end_above_state:
|
|
name: Numeric State Above Option
|
|
description: '**Used in options 8, or 10**. Set the above value. The numeric
|
|
state trigger will be when the value crosses over to above the set value.
|
|
|
|
'
|
|
default: 0
|
|
selector:
|
|
number:
|
|
min: -20.0
|
|
max: 100.0
|
|
step: 1.0
|
|
unit_of_measurement: value
|
|
mode: slider
|
|
end_below_state:
|
|
name: Numeric State Below Option
|
|
description: '**Used in options 9 or 10**. Set the below value. The numeric
|
|
state trigger will be when the value crosses over to below the set value.
|
|
|
|
'
|
|
default: 0
|
|
selector:
|
|
number:
|
|
min: -20.0
|
|
max: 100.0
|
|
step: 1.0
|
|
unit_of_measurement: value
|
|
mode: slider
|
|
end_time_delay_state:
|
|
name: Time Delay
|
|
description: '**Used in options 1, 2, 3, 4, 5, 6, 7, 8, 9 or 10** Specifies
|
|
the duration that the trigger must maintain its state before the automation
|
|
is executed. The automation will only proceed if the trigger condition
|
|
is met continuously for this entire time delay.
|
|
|
|
'
|
|
default:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
selector:
|
|
duration: {}
|
|
end_notify_settings:
|
|
name: End Notify
|
|
icon: mdi:bell-ring-outline
|
|
collapsed: true
|
|
input:
|
|
include_end_notify:
|
|
name: Use The End Notify Options (Optional)
|
|
description: "Select \"Enable\" if you would like to receive notifications
|
|
when the entity changes to its set state. \n"
|
|
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: Devices To Notify
|
|
description: 'Select the devices to receive notifications when the entity
|
|
changes to its set state.
|
|
|
|
'
|
|
default: []
|
|
selector:
|
|
device:
|
|
filter:
|
|
- integration: mobile_app
|
|
multiple: true
|
|
end_title:
|
|
name: Title
|
|
description: 'Specify the notification title for when the entity changes
|
|
to its set state.
|
|
|
|
'
|
|
default: []
|
|
selector:
|
|
text: {}
|
|
end_message:
|
|
name: Message
|
|
description: 'Specify the notification message for when the entity changes
|
|
to its set state.
|
|
|
|
|
|
For more information on including the sensor name that triggered the automation
|
|
in your message [Click Here](https://community.home-assistant.io/t/612617/63)
|
|
|
|
'
|
|
default: []
|
|
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/612617/69)
|
|
|
|
'
|
|
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/612617/69)
|
|
|
|
'
|
|
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: 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: 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: 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: 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: Cancel
|
|
selector:
|
|
text: {}
|
|
end_time_delay:
|
|
name: 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: 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: 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: 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: 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: 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: 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: 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 trigger the **End Actions**
|
|
below when the entity changes to its specified state.
|
|
|
|
|
|
When using action buttons in a notification, enabling an auto action is
|
|
not necessary for the end actions to work, as pressing an action button
|
|
will execute the selected action. However, if you miss the notification
|
|
and don''t press an action button, enabling the auto action option ensures
|
|
the end actions will still run after the specified time delay.
|
|
|
|
'
|
|
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: Action 1
|
|
description: 'Enter the actions you want to run when the entity changes
|
|
state.
|
|
|
|
|
|
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: EAction 2
|
|
description: 'Enter the actions you want to run when the entity changes
|
|
state.
|
|
|
|
|
|
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: Action 3
|
|
description: 'Enter the actions you want to run when the entity changes
|
|
state.
|
|
|
|
|
|
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/06f6f28e76299267b813dac48608f549
|
|
mode: restart
|
|
max_exceeded: silent
|
|
variables:
|
|
start_trigger_state: !input start_trigger_state
|
|
start_trigger_state_entity: !input start_trigger_state_entity
|
|
start_trigger_numeric_entity: !input start_trigger_numeric_entity
|
|
start_above_state: !input start_above_state
|
|
start_below_state: !input start_below_state
|
|
start_time_delay_state: !input start_time_delay_state
|
|
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
|
|
end_trigger_state: !input end_trigger_state
|
|
end_trigger_state_entity: !input end_trigger_state_entity
|
|
end_trigger_numeric_entity: !input end_trigger_numeric_entity
|
|
end_above_state: !input end_above_state
|
|
end_below_state: !input end_below_state
|
|
end_time_delay_state: !input end_time_delay_state
|
|
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: state
|
|
id: t0
|
|
entity_id: !input start_trigger_state_entity
|
|
for: !input start_time_delay_state
|
|
- platform: state
|
|
id: t1
|
|
entity_id: !input start_trigger_state_entity
|
|
to: !input start_trigger_state
|
|
for: !input start_time_delay_state
|
|
- platform: numeric_state
|
|
id: t2
|
|
entity_id: !input start_trigger_numeric_entity
|
|
above: !input start_above_state
|
|
for: !input start_time_delay_state
|
|
- platform: numeric_state
|
|
id: t3
|
|
entity_id: !input start_trigger_numeric_entity
|
|
below: !input start_below_state
|
|
for: !input start_time_delay_state
|
|
- platform: state
|
|
id: t4
|
|
entity_id: !input end_trigger_state_entity
|
|
for: !input end_time_delay_state
|
|
- platform: state
|
|
id: t5
|
|
entity_id: !input end_trigger_state_entity
|
|
to: !input end_trigger_state
|
|
for: !input end_time_delay_state
|
|
- platform: numeric_state
|
|
id: t6
|
|
entity_id: !input end_trigger_numeric_entity
|
|
above: !input end_above_state
|
|
for: !input end_time_delay_state
|
|
- platform: numeric_state
|
|
id: t7
|
|
entity_id: !input end_trigger_numeric_entity
|
|
below: !input end_below_state
|
|
for: !input end_time_delay_state
|
|
condition:
|
|
- condition: or
|
|
conditions:
|
|
- condition: and
|
|
conditions:
|
|
- condition: trigger
|
|
id: t0
|
|
- '{{ start_trigger_state == ''button_any_state'' }}'
|
|
- condition: and
|
|
conditions:
|
|
- condition: trigger
|
|
id: t1
|
|
- '{{ (start_trigger_state != ''button_any_state'') or (start_trigger_state !=
|
|
''numeric_state_above'') or (start_trigger_state != ''numeric_state_below'')
|
|
or (start_trigger_state != ''numeric_state_above_below'') }}'
|
|
- condition: and
|
|
conditions:
|
|
- condition: trigger
|
|
id: t2
|
|
- '{{ (start_trigger_state == ''numeric_state_above'') or (start_trigger_state
|
|
== ''numeric_state_above_below'') }}'
|
|
- condition: and
|
|
conditions:
|
|
- condition: trigger
|
|
id: t3
|
|
- '{{ (start_trigger_state == ''numeric_state_below'') or (start_trigger_state
|
|
== ''numeric_state_above_below'') }}'
|
|
- condition: and
|
|
conditions:
|
|
- condition: trigger
|
|
id: t4
|
|
- '{{ end_trigger_state == ''button_any_state'' }}'
|
|
- condition: and
|
|
conditions:
|
|
- condition: trigger
|
|
id: t5
|
|
- '{{ (end_trigger_state != ''button_any_state'') or (end_trigger_state != ''numeric_state_above'')
|
|
or (end_trigger_state != ''numeric_state_below'') or (end_trigger_state != ''numeric_state_above_below'')
|
|
}}'
|
|
- condition: and
|
|
conditions:
|
|
- condition: trigger
|
|
id: t6
|
|
- '{{ (end_trigger_state == ''numeric_state_above'') or (end_trigger_state ==
|
|
''numeric_state_above_below'') }}'
|
|
- condition: and
|
|
conditions:
|
|
- condition: trigger
|
|
id: t7
|
|
- '{{ (end_trigger_state == ''numeric_state_below'') or (end_trigger_state ==
|
|
''numeric_state_above_below'') }}'
|
|
- condition: and
|
|
conditions: !input global_conditions
|
|
action:
|
|
- choose:
|
|
- alias: Start trigger
|
|
conditions:
|
|
- condition: trigger
|
|
id:
|
|
- t0
|
|
- t1
|
|
- t2
|
|
- t3
|
|
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:
|
|
- 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:
|
|
- t4
|
|
- t5
|
|
- t6
|
|
- t7
|
|
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
|