đź”” Notifications - Actionable Mobile Notifications Script, with optional Timeout Feature and Camera Snapshots [works with iOS/Android]

Good eye! Yeah I missed that in the initial commit, should be fixed after V1.1

1 Like

@samuelthng I have a few other ideas I’d like to see about implementing. Namely a clickAction so that if you tap on the notification it opens a URL/navigates to a specific spot in the app.

It’s a simple call under data, in the same spot as the icon and color. Unfortunately, it’s named clickAction for Android, and just url for iPhone… so there’s probably not a good way to implement this universally and easily.

clickAction: "lovelace/home" #Android
url: "lovelace/home" #iPhone

Another idea I had is in regards to timeouts.

I had a weird case today where the timeout occurred when my phone was without reception. It did not receive the clear_notification notification from the automation timing out, so the notification remained even though the script had already timed out.

It might be a bit cleaner to include the following in the notification itself if timeout is enabled. That way the app on the phone removes the notification instead of relying on home assistant to send a clear_notification to the device. This is also under data: in the notification setup and would only be set if clear_on_timeout and timeout_duration are both set.

timeout: 600 # How many seconds the notification should be received by the device

I’ve had a few different blueprints for notifications and this has quickly become my favorite by far!

2 Likes

Great suggestions yet again! Yeah we could probably work those in.

We might still need the current timeout just for the sake of triggering timeout action HA side, but using the same timeout variable.

I’ll give it some brain cell time :joy:

2 Likes

Exactly. I didn’t come up with a clean solution myself… I’m more of an ideas guy!

Eventually it could get so complicated you might as well just copy and paste all the code anyway! :stuck_out_tongue:

:partying_face: Update: Version 1.3

Again, thanks to joe.cole1 for the insights in this minor release.
Also, thanks to RemyyB for identifying the incorrect variable and raising a PR.
Sorry to everyone for taking a week to fix this. 🙇🏻‍♂️

(:crossed_fingers:t2: Color picker is easy enough to configure, so it shouldn’t be absolutely breaking to warrant a major)

How to update

Things to check after updating:

  • Clear Notification is correctly set/unset
  • Icon Color and Enable Icon Color are correctly set/unset
  • All scripts using this blueprint are loaded in the scripts list
    • If they are missing, don’t worry, do drop a message here with me tagged and we’ll get it fixed.
1 Like

Usage Example: Notification script for Home Assistant Core Updates

This script would notify the user that a new update is available, with an option to call the update service, or the skip update service.

Upon clicking the notification - not the action buttons - it will navigate the user to the Home Assistant updates page.

If nothing has been selected for 30 minutes, the notification will be cleared automatically without taking any actions.

Code
notify_home_assistant_core_update:
  alias: "\U0001F514 Home Assistant Core Update Notification"
  use_blueprint:
    path: samuelthng/notifications.yaml
    input:
      notify_device: <my_device_entity_id>
      title: My Awesome Home
      message: New update available!
      timeout:
        hours: 0
        minutes: 30
        seconds: 0
      tag: ha_core_update
      clear_on_timeout: true
      notification_link: /config/updates
      icon: mdi:archive-arrow-up
      enable_icon_color: true
      icon_color:
      - 98
      - 234
      - 125
      confirm_text: Update Now
      confirm_action:
      - service: update.install
        data:
          backup: true
        target:
          entity_id: update.home_assistant_core_update
      dismiss_text: Skip
      dismiss_action:
      - service: update.skip
        data: {}
        target:
          entity_id: update.home_assistant_core_update

:beetle: Bugfix: Version 1.3.1

This is an Android only fix, iOS users may ignore this patch.

  • Fixed: Enable Icon Color - No longer overrides icon colour if disabled.
  • Updated: Icon Color hex template - Remove unrequired code, minor change.

Apologies for the frequent update - similar bug to last time, incorrect flag for Enable Icon Color.

How to update

Things to check after updating:

  • Scripts with Enable Icon Color disabled, should not override icon colour on Android phones.
  • As per usual, existing scripts should be loaded.
2 Likes

:new: iOS Action Icons: Version 1.3.2

Fine to ignore if you don’t need icons for iOS, and won’t be creating new scripts anytime soon.

How to update

Things to check after updating:

  • As per usual, existing scripts should be loaded
  • Script should show Version: 1.3.2

Known Issues:

  • iOS notifications do not respect Clear on Timeout since Version 1.3
    Version 1.4 beta testing is underway, to ensure I’ve covered enough use cases before releasing - estimate mid of July.
1 Like

For your issues with iOS clear on timeout… I don’t have apple devices so I can’t test, but with my modifications to use notify. groups instead of individual devices, I needed to add back in your old style of clearing notifications so that when one device chose an action or dismissed it would do so on all devices. So my modified blueprint has both the “built into the notification” dismiss function as well as your older timer based clear notification.

Works great! That might be a good solution to cover all bases.

Yup thank you for the suggestion, that’s also exactly what I did! Just wanted to test ithe changes extensively before the next release.

There’s also be some additional features coming up!

1 Like

:new: iOS Action Icons: Version 1.4

Fine to ignore if you don’t use iOS, new additions are optional.

  • iOS/macOS: Notifications will now clear after timeout
  • Added Subtitle, Notification Grouping, Lockscreen Visibility options, details in blueprint label.
  • 🏷️ Tag is no longer required for some features to work.
  • During a timeout event, the script throws error into logs even when working properly, this is now fixed.

How to update

Things to check after updating:

  • As per usual, existing scripts should be loaded.
  • Script should show Version: 1.4.
  • You may clear the tag field if you have added one previously
    It is no longer required unless using the script for complex cases.

Known Issues:

There is at least one case where a user is unable to receive notifications on their iOS device
The issue is not reproducible on my end, but is probably due to an optional feature.

If this is happening to you, you may try to use an older version of the blueprint.
Known working version: Version 1.0

good job to both.
What should I change to use another service, i.e. pushover, if already integrated in HA?
This is an example I use for Internet disconnection:

Sorry for the italian language but it’s pretty clear.
Thanks

I’m assuming you’re trying to call another action besides sending the notification alert?

If so, you have a couple of options:

  1. You may simply add another action just like in this example below:

    This applies to all action fields.

  2. You may store all the actions you want into a separate script, then call the single script you’ve created to trigger all actions. The best part about this is it allows you to house more complex logic into that script and to compartmentalise functionality on your setup.

Hi.
In “Device to notify” it doesn’t tell me any devices. Which one should I put?
My notification service is called notify.mobile_app_nanu

Thanks

Hello @KameDomotics, thanks for taking time to try the script out.

The script only supports devices that has the official Home Assistant Companion app installed.
The domain expected would be mobile_app.<something>.

Could you check that you have your Mobile App integration in your Devices page?

Hi, yes I use the Companion App and I have the integration. I use it for push notifications and everything works. But with this script it doesn’t work, the notification service is not detected…

It’s not intended to use the notification service domain. Might be a difference in version as I’ve tried to reproduce, I’m still able to see devices with mobile apps on the latest versions.

I’ll take a look at using notification service as an option in the next revision.

Ok thanks, then I’ll wait for your news

Good work! Thanks!
Do you plan to include sending images (snapshots from cameras)?

Hey @Yannik, thank you for trying out the script, glad it worked out well for you.

I don’t yet intend to send snapshots yet as I don’t have any cameras at home to try.

Just curious - when you say snapshots from cameras, are the snapshots from images saved on the home assistant server or direct feed from a camera domain device?