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:
  - triggers:
      - trigger: 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.

Action

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

Data attribute Optional Description
message no Body of the notification.
title yes Title of the notification.
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.

actions:
  - action: 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.

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

The persistent_notification.dismiss action requires a notification_id.

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

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

actions:
  - action: persistent_notification.dismiss
    data:
      notification_id: "1234"

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

actions:
  - action: 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)

Note

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

Create a persistent notification

Choose the Actions tab from the Developer Tools sidebar item, then select the persistent_notification.create action from the Action dropdown. Enter something like the sample below into the data field and press the Perform action 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.

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.