forked from apollo1220/blueprints
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add actionable notifications blueprint
- Loading branch information
1 parent
a368d70
commit 49feb98
Showing
1 changed file
with
147 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
blueprint: | ||
name: Send actionable notifications for Android | ||
description: 'Send actionable notifications to an Android device | ||
For each action, you can open an URL, an application on the device or load a lovelace | ||
view/dashboard. | ||
If you plan to use a lovelace view the format would be /lovelace/test where test | ||
is replaced by your defined path in the defined view. | ||
If you plan to use a lovelace dashboard the format would be /lovelace-dashboard/view | ||
where /lovelace-dashboard/ is replaced by your defined dashboard URL | ||
and view is replaced by the defined path within that dashboard. | ||
To pick the application to open, prefix app:// to the the package name. | ||
If the device does not have the application installed then the Home Assistant | ||
application will open to the default page. | ||
If you define an action and an URI for a button, URI will take precedence over | ||
action. | ||
' | ||
domain: automation | ||
input: | ||
notify_device: | ||
name: Device to notify | ||
description: Device needs to run the official Home Assistant app to receive | ||
notifications | ||
selector: | ||
device: | ||
integration: mobile_app | ||
trigger_entity: | ||
name: Trigger entity | ||
description: Send the notification when this boolean turns on | ||
selector: | ||
entity: | ||
domain: binary_sensor | ||
notification_title: | ||
name: Notification title (Optional) | ||
description: The title of the notification | ||
default: '' | ||
notification_message: | ||
name: Notification message (Optional) | ||
description: The message of the notification | ||
default: '' | ||
persistent_notification: | ||
name: Create persistent notification? | ||
description: Persistent notifications cannot be dimissed by swiping away | ||
default: false | ||
selector: | ||
boolean: {} | ||
action_1_title: | ||
name: First action name | ||
description: Name of the first button | ||
default: '' | ||
action_1_uri: | ||
name: URI for action 1 (Optional) | ||
description: Optional URI for the first action | ||
default: '' | ||
first_action: | ||
name: Action 1 | ||
description: Action to run when the first action is clicked | ||
default: [] | ||
selector: | ||
action: {} | ||
action_2_title: | ||
name: Second action name | ||
description: Name of the second button | ||
default: '' | ||
action_2_uri: | ||
name: URI for action 1 (Optional) | ||
description: Optional URI for the second action | ||
default: '' | ||
second_action: | ||
name: Action 2 | ||
description: Action to run when the second action is clicked" | ||
default: [] | ||
selector: | ||
action: {} | ||
action_3_title: | ||
name: Third action name | ||
description: Name of the third button | ||
default: '' | ||
action_3_uri: | ||
name: URI for action 3 (Optional) | ||
description: Optional URI for the third action | ||
default: '' | ||
third_action: | ||
name: Action 3 | ||
description: Action to run when the third action is clicked | ||
default: [] | ||
selector: | ||
action: {} | ||
source_url: https://github.com/apollo1220/blueprints/blob/main/actionable_notifications_for_android.yaml | ||
mode: restart | ||
max_exceeded: silent | ||
variables: | ||
notify_device: !input 'notify_device' | ||
trigger_entity: !input 'trigger_entity' | ||
notification_title: !input 'notification_title' | ||
notification_message: !input 'notification_message' | ||
persistent_notification: !input 'persistent_notification' | ||
action_1_title: !input 'action_1_title' | ||
action_1_uri: !input 'action_1_uri' | ||
first_action: !input 'first_action' | ||
action_2_title: !input 'action_2_title' | ||
action_2_uri: !input 'action_2_uri' | ||
second_action: !input 'second_action' | ||
action_3_title: !input 'action_3_title' | ||
action_3_uri: !input 'action_3_uri' | ||
third_action: !input 'third_action' | ||
trigger: | ||
platform: state | ||
entity_id: !input 'trigger_entity' | ||
from: 'off' | ||
to: 'on' | ||
action: | ||
- service: input_boolean.turn_off | ||
entity_id: !input 'trigger_entity' | ||
- domain: mobile_app | ||
type: notify | ||
device_id: !input 'notify_device' | ||
title: '{{ notification_title }}' | ||
message: '{{ notification_message }}' | ||
data: | ||
tag: '{{ notification_title }}' | ||
persistent: '{{ persistent_notification }}' | ||
actions: "{% set titles = [action_1_title, action_2_title, action_3_title] %}\ | ||
\ {% set uris = [action_1_uri, action_2_uri, action_3_uri] %} {% set actions\ | ||
\ = namespace(data = []) %}\n{% for title in titles %}\n {% if title|length\ | ||
\ %}\n {% set uri = uris[loop.index - 1] %}\n {% set action_name = \"\ | ||
action\" + loop.index|string %}\n {% set action = {\n \"action\": \"\ | ||
URI\" if uri|length else action_name,\n \"title\": title,\n \"uri\"\ | ||
: uri \n }\n %}\n {% set actions.data = actions.data + [action] %}\n\ | ||
\ {% endif %}\n{% endfor %} {{ actions.data }}\n" | ||
- wait_for_trigger: | ||
platform: event | ||
event_type: mobile_app_notification_action | ||
- choose: | ||
- conditions: '{{ wait.trigger.event.data.action == ''action1'' }}' | ||
sequence: !input 'first_action' | ||
- conditions: '{{ wait.trigger.event.data.action == ''action2'' }}' | ||
sequence: !input 'second_action' | ||
- conditions: '{{ wait.trigger.event.data.action == ''action3'' }}' | ||
sequence: !input 'third_action' |