Persistent Notification


The persistent_notification integration can be used to show a notification on the frontend that has to be dismissed by the user.

Automation

Persistent notification triggers enable automations to be triggered when persistent notifications are updated. Triggers can be limited to a specific notification by providing an ID for notification_id, or when this value is omitted the automation will trigger for any notification ID. If no update_type is provided, the automation will trigger for the following update types: added, removed, updated, or current. By providing one or more of these values to the update_type option, the automation triggers only on these update_type events.

Review the Automating Home Assistant getting started guide on automations or the Automation documentation for full details.

An example of a persistent notification trigger in YAML:

automation:
  - trigger:
      - platform: persistent_notification
        # Optional. Possible values: added, removed, updated, current
        update_type:
          - added
          - removed
        # Optional.
        notification_id: invalid_config

See Automation Trigger Variables: Persistent Notification for additional trigger data available for conditions or actions.

Service

The service persistent_notification.create takes in message, title, and notification_id.

Service data attribute Optional Description
message no Body of the notification. Accepts templates.
title yes Title of the notification. Accepts templates.
notification_id yes If notification_id is given, it will overwrite the notification if there already was a notification with that ID.

Here is how an action of your automation setup with static content could look like.

action:
  service: persistent_notification.create
  data:
    message: "Your message goes here"
    title: "Custom subject"

If you want to show some runtime information, you have to use templates.

action:
  service: persistent_notification.create
  data:
    title: >
      Thermostat is {{ state_attr('climate.thermostat', 'hvac_action') }}
    message: "Temperature {{ state_attr('climate.thermostat', 'current_temperature') }}"

The service persistent_notification.dismiss requires a notification_id.

Service data attribute Optional Description
notification_id no the notification_id is required to identify the notification that should be removed.

This service allows you to remove a notifications by script or automation.

action:
  service: persistent_notification.dismiss
  data:
    notification_id: "1234"

The service persistent_notification.dismiss_all allows you to remove all notifications.

action:
  service: persistent_notification.dismiss_all

Markdown support

The message attribute supports the Markdown formatting syntax. Some examples are:

Type Message
Headline 1 # Headline
Headline 2 ## Headline
Newline \n
Bold **My bold text**
Italic *My italic text*
Link [Link](https://home-assistant.io/)
Image ![image](/local/my_image.jpg)

/local/ in this context refers to the .homeassistant/www/ folder.

Create a persistent notification

Choose the Services tab from the Developer Tools sidebar item, then select the persistent_notification.create service from the “Service” dropdown. Enter something like the sample below into the Service Data field and press the CALL SERVICE button.

{
  "notification_id": "1234",
  "title": "Sample notification",
  "message": "This is a sample text."
}

This will create the notification entry shown above.

Use as a notifier

Persistent notifications can also be used as a pre-configured notifier for the Notify integration if that integration is loaded. It is available as notify.persistent_notification. This enables it to be used with features that require a notifier like Notify Groups or the Alert integration.

The following attributes can be placed inside data for extended functionality.

Service data attribute Optional Description
notification_id yes If notification_id is given, it will overwrite the notification if there already was a notification with that ID.