v5.3.0
Phone notifications now stack into a single bundle instead of scattering through the rest of Home Assistant's alerts, and two sensors stop flooding the log with recorder warnings.
Both changes are drop-in. Grouping is on by default and needs no configuration, and nothing about the data your cards read has changed.
New
TaskMate notifications group on your phone
Every push now carries a group key, so the companion app collapses TaskMate's alerts into one stack rather than interleaving them with everything else HA sends you.
This is on by default with the key taskmate — there is nothing to set up.
To change it, use Group key on the panel's Notifications tab. Set it globally, or override it per notification type to split TaskMate into separate stacks (approvals in one bundle, badges in another). Leave it blank to turn grouping off. Keys must be 64 characters or fewer with no spaces or control characters — use family-chores, not family chores.
| Platform | Key sent | Effect |
|---|---|---|
| Android | data.group |
Notifications collapse into one group |
| iOS | push.thread-id |
Notifications thread together |
Both are sent with the same value and each platform ignores the other's, so one setting covers both. The keys are only added for mobile_app.* notify services, matching how clickAction is already gated — email, Telegram and persistent notifications are unaffected. Custom reminders stamp the group themselves, so no alert is left outside the bundle.
Fixes
Recorder warnings on sensor.taskmate_activity
If you saw this in your log after approving a batch of chores:
WARNING (Recorder) State attributes for sensor.taskmate_activity exceed
maximum size of 16384 bytes. This can cause database performance issues;
Attributes will not be stored
…that sensor's four lists (recent_completions, recent_transactions, career_score_history, photo_gallery) measured 14,425 bytes on a two-child test instance — 88% of Home Assistant's 16,384-byte attribute limit. Batch approving tipped it over, at which point the recorder threw away the entity's entire attribute set for that state.
Auditing every TaskMate entity turned up a quieter, worse case: sensor.taskmate_pending_approvals measured 62,506 bytes and had never recorded a single attribute in its history.
The growth-prone lists across all TaskMate sensors are now declared unrecorded, so the recorder skips them and the size check only ever sees the compact scalars. Nothing you use changes — the lists are untouched on the live state, so cards, state_attr(), templates and automations read them exactly as before. The scalar counters stay recorded, so history and statistics keep working. Your database also gets smaller.
A rejected group key or tap target looked like it had saved
The notifications panel discarded the validation error and left the invalid value sitting in the field, so an entry like family chores (with a space) appeared accepted but was never stored. The panel now surfaces the rejection and restores the last good value. (#816)
A non-string group or nav_url in stored config raised on load
NotificationConfig assumed both fields were strings, so a value of the wrong type — from a hand-edited store or a partial write — broke loading rather than degrading. Both now coerce to empty. (#815)
Internal
- The sensor size tests measured hand-assembled attribute dicts rather than what the sensors actually publish, which is how
career_score_history,photo_galleryandmandatory_misseswent unmeasured. They now drive the real entities and assert on the recorder-visible payload, with a guard that every declared unrecorded attribute is genuinely published. (#818) - A sponsor button on the repository. (#814)
Upgrading
Update through HACS and restart Home Assistant. No configuration changes are required.
Full changelog: v5.2.0...v5.3.0