[APP] Popup

This is the topic for the app Popup.

This is a widget app build to send text messages to your dashboard.
usefull for a log or to-do list.

The app provides a widget with which you can send texts messages to your dashboard with a flow.
on the dashboard the next functionality’s are possible:
:white_check_mark: Check the item
:pushpin: Pin the item
:cross_mark: Delete the checked items

Widgets:

Flow example:

Changelog:

2.0.1 2 jun 2026test
added code for Home Assistant delete all messages button
2.0.0 1 jun 2026
added code to send messages straigh to Home assistant with MQTT.
1.4.0 1 feb 2026
added a free add button. so text can be added without a flow.
1.3.1 1 feb 2026
add a warning message on the widget for impact flows on update. could get corrupted. and added a 3 widget midium size.
1.3.0 22 jan 2026
Added the delete rule flowcard. in the send flow card can you add a key. if you enter in the delete flow card the same key it can delete that specific rule from the widget.

1.2.0 22 jan 2026 test
Autoclean-up setting added. rules can be automatic deleted after x hours / days
1.1.3 22 jan 2026
Pinned rules can’t get delete anymore.
1.1.2 22 jan 2026
check all box added
1.1.1 22 jan 2026
button style changed
1.1.0 21 jan 2026
Made the Checkbox a option in the settings.
1.0.3 19 jan 2026
widget image changed and add text EN language.
1.0.2 16 jan 2026
doneer knop gewijzigd
1.0.1 16 jan 2026
donation button
1.0.0 15 jan 2026
First version!

if you like the app popup.
a small donation is appreciated. even 1 euro or less.

Paypal.me

new update: check your flows on corruption because of adding a key field!!!

With the delete flow card you can delete texts from your dashboard.

As an example:
washing machine is ready.
And you have a button on the washing machine to indicate that it has been emptied.
Then the text can be deleted from the dashboard with the button and a flow.

In the send text to dashboard card you enter the text and a unique key. In the delete flow you also add this unique key to delete it.

Next update on V2.0

Add code for Home assistant with MQTT.
send messages to your Home assistant dashboard and homey dashboard Synced

  • MQTT client needed on Homey
  • MQTT hub needed on Homey
  • Mosquitto broker needed on HA

new setting screen on the homey Popup app for MQTT settings.

enter the IP adres of home assistant. port is normaly 1883, username en passwordt form the mosquitto broker.

put this in your Home assistant configuration.yaml and restart Home assistant to get the sensor.popup_messages_clean sensor.


MQTT

=========================================================

mqtt:
sensor:
- name: “popup_messages_clean”
state_topic: “popup/messages”
value_template: “{{ value_json.messages[0].text }}”
json_attributes_topic: “popup/messages”

Home assistant card dashboard card

type: markdown
content: >

📩 Messages

{% for m in state_attr(‘sensor.popup_messages_clean’, ‘messages’) %} 🕒 {{
(m.timestamp / 1000) | timestamp_custom(‘%H:%M:%S’) }} 
 {{ m.text }}


 {% endfor %}

Update V2.0.1

Home assistant dashboard card YAML

type: vertical-stack
cards:
  - type: markdown
    content: |
      ## 📩 Messages
  - type: custom:button-card
    name: 🗑 Alles verwijderen
    icon: mdi:trash-can-outline
    tap_action:
      action: call-service
      service: mqtt.publish
      data:
        topic: popup/delete
        payload: "{\"ids\":[\"*\"]}"
    styles:
      card:
        - background: red
        - color: white
        - padding: 6px
        - height: 36px
        - border-radius: 10px
  - type: custom:button-card
    name: |
      [[[
        const msgs = states['sensor.popup_messages_clean']?.attributes?.messages || [];

        if (!msgs.length) return "Geen berichten";

        return msgs.map(m => {
          const time = new Date(m.timestamp).toLocaleTimeString('nl-NL', {
            hour: '2-digit',
            minute: '2-digit'
          });

          return `📩 ${m.text}   🕒 ${time}`;
        }).join("\n");
      ]]]
    styles:
      card:
        - padding: 8px
        - font-size: 13px
        - line-height: 1.3
        - height: auto
        - border-radius: 12px
      name:
        - white-space: pre-line
        - text-align: left
        - justify-self: start
        - align-self: start
        - width: 100%
      icon:
        - display: none

Script.YAML

popup_delete:
  alias: Popup Delete
  mode: single
  fields:
    id:
      required: true
  sequence:
    - service: mqtt.publish
      data:
        topic: popup/delete
        payload: >
          {"ids":["{{ id }}"]}