Pompom Jar

Pompom Jar and Home Assistant

Put your family's jars on a Home Assistant dashboard, or turn each jar into a sensor you can use in automations, like a celebration when a jar fills up. It all works from a Pompom Jar web board, so there's nothing to install.

1. Turn on a web board

  1. In Pompom Jar, open Settings › Web board and turn on Share a live web board.
  2. Turn on Show jar names if you'd like names on your dashboard and in your sensors (the examples below use names).
  3. Tap Copy. Your link looks like https://pompomjar.com/pp/AbCdEfGhIj. The part after /pp/ is your board ID; the examples below use YOUR_BOARD_ID.

The board is read-only: Home Assistant can show and use your pompom counts, but pompoms are added in the app (or with Siri, the widgets and Shortcuts).

2. Show the jars on a dashboard

Add a Webpage card and point it at your board with ?embed. You get the jars drawn just like the app's widgets: the real pompoms, the jar's colour, and a big count you can read from across the room. The drawing comes from pompomjar.com, so it gets better without you changing anything, and it refreshes every 30 seconds.

Three pompom jars, Olivia 12, Leo 7 and a full jar, drawn with big counts
All the jars, with ?embed
type: iframe
url: https://pompomjar.com/pp/YOUR_BOARD_ID?embed
aspect_ratio: 60%

One card per child, with a see-through background so it sits on your dashboard's own theme:

type: horizontal-stack
cards:
  - type: iframe
    url: https://pompomjar.com/pp/YOUR_BOARD_ID?embed&jar=Olivia&bg=none
    aspect_ratio: 100%
  - type: iframe
    url: https://pompomjar.com/pp/YOUR_BOARD_ID?embed&jar=Leo&bg=none
    aspect_ratio: 100%
OptionWhat it does
embedJust the jars, drawn like the widgets (no logo or QR code). Always include it on a dashboard.
jar=OliviaShow one jar, by name (needs Show jar names) or by position: jar=1 is the first jar.
bg=noneSee-through background instead of the Pompom Jar gradient.
title=1Also show the jar set's name above the jars.

3. Sensors for automations

To use the counts in automations, read the board's data with a RESTful sensor, then make a sensor per jar. Add this to configuration.yaml and restart Home Assistant:

rest:
  - resource: https://pompomjar.com/api/v1/boards/YOUR_BOARD_ID
    scan_interval: 60
    sensor:
      - name: "Pompom Jar"
        unique_id: pompom_jar_board
        value_template: "{{ value_json.updated }}"
        json_attributes:
          - jars

template:
  - sensor:
      - name: "Olivia pompoms"
        unique_id: pompom_jar_olivia
        unit_of_measurement: "pompoms"
        availability: >
          {{ (state_attr('sensor.pompom_jar', 'jars') or [])
             | selectattr('name', 'eq', 'Olivia') | list | count > 0 }}
        state: >
          {{ (state_attr('sensor.pompom_jar', 'jars')
             | selectattr('name', 'eq', 'Olivia') | first).count }}
        attributes:
          capacity: >
            {{ (state_attr('sensor.pompom_jar', 'jars')
               | selectattr('name', 'eq', 'Olivia') | first).capacity }}
          full: >
            {{ (state_attr('sensor.pompom_jar', 'jars')
               | selectattr('name', 'eq', 'Olivia') | first).full }}
      # …and the same for Leo, with 'Leo' in place of 'Olivia'

Names turned off? Match by position instead: replace selectattr('name', 'eq', 'Olivia') with selectattr('position', 'eq', 1) (the first jar). Positions follow the jar order in the app, so the sensors swap if you reorder your jars.

A gauge for each jar

type: horizontal-stack
cards:
  - type: gauge
    entity: sensor.olivia_pompoms
    name: Olivia
    min: 0
    max: 20   # your jar size
  - type: gauge
    entity: sensor.leo_pompoms
    name: Leo
    min: 0
    max: 20

Celebrate when a jar fills up

automation:
  - alias: "Olivia's pompom jar is full"
    triggers:
      - trigger: template
        value_template: "{{ state_attr('sensor.olivia_pompoms', 'full') }}"
    actions:
      - action: notify.notify
        data:
          message: "🎉 Olivia's pompom jar is full! Time to celebrate."

Swap the notification for anything you like: flash the lights in party colours, play a fanfare on a speaker, or show a message on a family display.

The board API

GET https://pompomjar.com/api/v1/boards/YOUR_BOARD_ID returns JSON. It's free to use from Home Assistant, Node-RED, scripts or your own pages (any website may fetch it). Data updates within seconds of a change in the app and is cached for 30 seconds, so polling every 60 seconds is plenty.

{
  "version": 1,
  "title": "The Smiths",
  "updated": "2026-10-25T09:41:00.000Z",
  "board_url": "https://pompomjar.com/pp/YOUR_BOARD_ID",
  "jars": [
    { "position": 1, "name": "Olivia", "count": 12, "capacity": 20,
      "percent": 60, "full": false, "color": "#ff5f8f" },
    { "position": 2, "name": "Leo", "count": 7, "capacity": 20,
      "percent": 35, "full": false, "color": "#3f7fe0" }
  ]
}
FieldMeaning
titleThe jar set's name, or null if Show jar names is off.
updatedWhen the board last changed (UTC).
jars[].position1, 2, 3… in the app's jar order.
jars[].nameThe jar's name, or null if names are off.
jars[].count / capacityPompoms in the jar, and how many fill it.
jars[].percent / fullHow full it is (0–100), and whether it's full.
jars[].colorThe jar's colour, as a hex code.

A 404 means the board is off, or its link was replaced with New link in the app. We'll only ever add fields to version 1, never rename or remove them.

Privacy

Anyone with your board link can see what it shows, so treat the link like a spare key: share it with the people (and dashboards) you choose. Turn off Show jar names to keep names off the web, use New link to retire an old link, or turn the board off to remove it. We count how often boards are read by dashboards, anonymously, to know the feature is useful; see the privacy policy.

Support · More about Pompom Jar