A pantry list only helps if the thing that expires today is in front of you in the morning. This blueprint reads one or more to-do lists at a time you set, keeps items whose due date is today, overdue, or inside the next N days, and sends one Companion notification. Two buttons: Mark first done and Snooze. If nothing is due, it does not notify.
The due date is the to-do item’s own due date. For a pantry, that date is the expiry. The pack does not add a custom integration.
A notification that waits for a reply and then runs an action is actionable notification reply. An evening chore with Done and Snooze on a calendar, not a to-do due date, is bin-day reminder. A single chore you complete by tapping a tag is NFC chore tracker. This one is the morning pass over due dates.
List names and item titles end up in the notification. Do not publish a screenshot of a real list.
What problem it solves
You want one morning push for what is due, a way to complete the first item or delay the reminder, and silence when the lists have nothing due.
How it works
The lists are todo entities. The phone is a Companion device. Two input_text helpers remember which item was first, because the button press is a later run and no longer has the list in memory. A timer is the snooze.
- When — at the morning time (pack default 07:00), and again when the snooze timer finishes. A button press is a third trigger, filtered to the tag
todo_due_morning. - What is due —
todo.get_itemsasks each list forneeds_actionitems. An item counts when its due value is before tomorrow at midnight, plus the extra days you set. Pack default 0 means today and overdue only. Items with no due date are skipped. The list is sorted by due date, earliest first. - One notification — the first 12 summaries, then a “and N more” line if needed. The first item’s uid and list entity id are stored in the helpers. The notification tag is stable, so a later push replaces this one.
- Nothing due — the
ifis skipped. No push, and the helpers are left as they were. - Mark first done —
todo.update_itemsets that uid tocompletedon the stored list, then clears the notification. A missing uid does not call the service. - Snooze — starts the timer (pack default 30 minutes) and clears the notification. When the timer finishes, the same check runs again.
The automation is queued, so a button tap during the morning check is not dropped. The helpers’ max length is 255 characters. A uid longer than that cannot be stored, and Mark first done will not find it.
Snippet
The helpers are what the button press reads. The due-date filter is in the blueprint.
input_text:
todo_due_first_uid:
name: To-do due first uid
max: 255
todo_due_first_list:
name: To-do due first list
max: 255
timer:
todo_due_snooze:
name: To-do due snooze
duration: "00:30:00"
Setup outline
- Copy
helpers/todo_due_morning_alert.yamlintoconfig/packages/and include that folder from the existinghomeassistant:block. Restart, and confirm the two input texts andtimer.todo_due_snooze. - Import the blueprint. Select the to-do lists, the morning time, and the Companion device.
- Put a due date on one item that is today or earlier. Leave another item with no due date, as a check that it stays out of the push.
- Run the automation once from the UI (that fires the time trigger’s check only if you set the trigger id; easier is to temporarily set the morning time a minute ahead, or call the automation after changing the time). Confirm one notification and that the undated item is absent.
- Tap Mark first done. The item should complete and the notification should clear. Put the item back if it was only a test.
- Tap Snooze on a later run. The notification should clear and return when the timer finishes, still only if something is due.
Troubleshooting
- No notification, and an item is due. The due value did not parse, the item is
completed, or the list entity id is wrong. The trace’stodo_resultshows what Home Assistant returned. A date-only due value is midnight at the start of that day, which still counts as today. - An item with no date appeared. It has a due value you did not expect, including a time. This blueprint does not infer dates from the summary text.
- Mark first done does nothing. The helpers were cleared, the uid was longer than 255 characters, or the list no longer has that item. The action is ignored when either helper is empty.
- Snooze never comes back. The timer helper is not the one the blueprint points at, or a restart cleared it because
restorewas turned off. The pack turns restore on. - Two phones. The blueprint has one device. Duplicate the automation and the helpers if a second phone should get its own buttons. Sharing the helpers means the second phone’s Mark first done completes the first phone’s item.
- The push lists twelve and stops. The rest are still on the to-do list. The message is capped so it stays readable. Open the list for the remainder.
- You wanted a barcode pantry integration. This pack only reads native to-do due dates. It does not install another integration.
Credits
Inspired by pantrist-ha-integration, which tracks a pantry in Home Assistant. This pack does not use that integration. It is a morning notification over the built-in to-do lists, with due dates standing in for expiry.