Created
June 19, 2023 07:37
-
-
Save xbmcnut/0b32301f0a4a25d53456eb5fe08c86ac to your computer and use it in GitHub Desktop.
Actionable Notification Blueprint tweaked to allow any entity as a trigger and not just a binary sensor
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
blueprint: | |
name: Send actionable notifications for Android tweaked by Pete | |
description: 'Send actionable notifications to an Android device tweaked' | |
domain: automation | |
source_url: https://community.home-assistant.io/t/actionable-notifications-for-android/256773 | |
#tweaked from here to allow any trigger https://gist.github.com/hunterjm/fb0d6fc49df910193cf61317149074ee | |
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 entity changes to the defined state | |
selector: | |
entity: {} | |
desired_state: | |
name: Desired State | |
description: What state should this entity be in to trigger the notification? | |
default: 'on' | |
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: {} | |
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 | |
to: !input desired_state | |
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' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
How to use:
\\ha-ip\config\blueprints\automation
actionable-notifications-for-android-tweaked.yaml
RAW
at the top right of this file, copy and paste the code into your newly created file