Persistent Notification


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

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](/topics/templating/ inside data_template.

action:
  service: persistent_notification.create
  data_template:
    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"

This automation example shows a notification when the Z-Wave network is starting and removes it when the network is ready.

- alias: 'Z-Wave network is starting'
  trigger:
    - platform: event
      event_type: zwave.network_start
  action:
    - service: persistent_notification.create
      data:
        title: "Z-Wave"
        message: "Z-Wave network is starting..."
        notification_id: zwave

- alias: 'Z-Wave network is ready'
  trigger:
    - platform: event
      event_type: zwave.network_ready
  action:
    - service: persistent_notification.dismiss
      data:
        notification_id: zwave

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**
Cursive *My cursive text*
Link [Link](https://openpeerpower.io/)
Image ![image](/local/my_image.jpg)
`/local/` in this context refers to the `.openpeerpower/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.