Skip to content

Instantly share code, notes, and snippets.

@xbmcnut
Created June 19, 2023 07:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save xbmcnut/0b32301f0a4a25d53456eb5fe08c86ac to your computer and use it in GitHub Desktop.
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
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'
@xbmcnut
Copy link
Author

xbmcnut commented Jun 19, 2023

How to use:

  1. Create a folder with your name (or anything you like) under \\ha-ip\config\blueprints\automation
  2. In the folder, create a file called actionable-notifications-for-android-tweaked.yaml
  3. Select RAW at the top right of this file, copy and paste the code into your newly created file
  4. Update your automations
  5. It should now be visible to use

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment