Skip to content

v3.9.0

Choose a tag to compare

@tempus2016 tempus2016 released this 11 May 14:14
a981201

TaskMate v3.9.0

This release introduces a unified Notifications system with an admin UI, time-gated alerts, and actionable mobile callbacks. Plus a handful of bug fixes and i18n polish.


✨ New Features

Unified Notifications system (#342, #344)

The biggest change in this release: notifications are now centrally managed instead of scattered across coordinators.

What's new for users:

  • New Notifications tab in the admin panel — a single matrix where you set, per recipient, which alert types they receive (chore approvals, reward claims, badge earned, bedtime, streak-at-risk, all-chores-done).
  • Per-recipient notify_service — each child and each parent can route to a different mobile/discord/etc service, with a master enable/disable per type.
  • Custom scheduled notifications — add your own recurring alerts with day_mask (e.g. weekdays only), custom time, message template, and recipient list.
  • Actionable approve / reject buttons on mobile push for pending chore approvals and reward claims — act directly from the notification.
  • Time-gated alerts that automatically fire at the right moment:
    • Bedtime reminder — fires near a child's bedtime if chores remain.
    • Streak-at-risk — fires before the streak cutoff if today's chores are still open.
    • All chores done — fires once per child per day when everything's complete, then resets at midnight.
  • Power-user events — the integration now emits taskmate_* state-change events on the HA event bus, so you can wire your own Node-RED / automation flows alongside (or instead of) the built-in dispatcher.

Behind the scenes:

  • New NotificationCoordinator with a dispatcher layer; legacy ad-hoc notify helpers retired.
  • Storage CRUD and a first-run migration that imports any existing notify settings.
  • 8 locales updated with strings for the new UI.

🐛 Fixes

Settings page — "Message malformé" / numeric save error (#350, PR #356)

ha-textfield type="number" doesn't reliably reflect its type onto the JS property, so _doSaveSettings() was sending history_days, calendar_projection_days, and perfect_week_bonus as strings. The WS schema validates these with vol.All(int, …) and rejected them, surfacing as a Message malformé / expected int for dictionary value toast. The panel now detects the declared type via getAttribute() with el.type as a fallback, so numeric values are coerced before being sent.

"Parent did it" didn't clear today's assignee on rotations (#351, PR #355)

When a parent marked a rotation chore complete on behalf of a child, the chore showed as done but the rotation's current assignee wasn't cleared, so the same child still appeared as today's responsible on the panel until the next rotation tick. Parent-complete now clears today's assignee for rotation chores, matching the child-completed flow.

French translations for task group policies (#353, PR #354)

The Sticky and Spread task group policy labels weren't localised in the French UI. Both now read in French alongside their original explanations.

Child Stats sensor unit_of_measurement (#346, PR #347)

The Child Stats sensor was hardcoding "chores" as its unit, ignoring the user's HA language. The unit is now translated.

Child Badges sensor unit_of_measurement (PR #349)

Same fix as above, for the Child Badges sensor.

Lint cleanups (PR #343, #345)

Dropped unused imports flagged by ruff (including a stray pytest import in an events test) so CI stays green.


📈 Upgrade Instructions

  1. Open HACS → Integrations → TaskMate.
  2. Click Redownload and select version 3.9.0.
  3. Restart Home Assistant (notification scheduler + dispatcher hook into startup).
  4. Hard-refresh your browser (Ctrl+Shift+R / Cmd+Shift+R) so the new panel JS loads.
  5. Visit the new Notifications tab in the TaskMate admin panel and check that your existing notify_service settings carried over from the first-run migration. Tweak the matrix to taste.

If you have existing automations that rely on the old ad-hoc notify helpers, switch them to listen for the new taskmate_* events on the HA event bus.

Full Changelog: v3.8.2...v3.9.0