Skip to content

v6.0.0

Choose a tag to compare

@tempus2016 tempus2016 released this 28 Sep 16:02
a771dee

The biggest TaskMate release yet: 17 new features, a redesigned admin panel, 5 new dashboard cards, Danish, right-to-left layout support, and more than 30 fixes. 50 pull requests since v5.8.0.

Minimum Home Assistant is still 2024.7.0. Every new option is off by default or harmless to existing setups, apart from streak freezes. Read Before you upgrade first.


⚠️ Before you upgrade

  • Streak freezes are switched on by default (up to 2 tokens, one earned every 7 streak days). To keep streaks working exactly as before, set Settings → History & streaks → Max streak freezes to 0.
  • The chore editor is now a side panel instead of a pop-up dialog, and its fields are grouped differently. Nothing was removed.
  • Card titles now follow your language. The points, approvals, parent dashboard, reorder and rewards cards used to save an English title ("Manage Points", "Rewards", …) into your dashboard. A title that matches the old English default is now treated as unset, so it shows in your language. Titles you typed yourself are kept.
  • Deleting a chore or reward now removes its buttons, and on first start TaskMate cleans up buttons left behind by chores, rewards and children deleted in the past. Your dashboards lose nothing that still exists. You'll just see far fewer unavailable button entities.
  • All 15 new notification types start switched off, apart from the parent inspection reminder. Turn on the ones you want under Notifications.

✨ Highlights

  • 🏷️ Tap an NFC tag to complete a chore
  • 🎂 Birthday mode: bonus points, an optional day off and a badge
  • ❄️ Streak freeze tokens: miss a day without losing the streak
  • 🏠 Presence-aware reminders: no nagging while the child is out
  • ⭐ Rate chores 1–3 stars: the rating scales the points
  • 👥 Teamwork chores for two or more children
  • 📱 Kiosk mode for a shared wall tablet
  • 🏴‍☠️ Bounty board of one-off jobs
  • 🎁 Wishlist with family pledges
  • 🎬 Recaps: a "Wrapped"-style summary, weekly to yearly
  • 🔍 Surprise inspections with a bonus
  • 🔨 Chore auctions: lowest bid wins
  • 🧙 Setup wizard with chores suggested by age
  • 🧭 Redesigned admin panel with a new Today home page
  • 📅 Two-way calendar: add, move and skip chores from HA's calendar
  • ⌚ Watch complications for Apple Watch and Wear OS
  • ↩️ Reject reasons the child can see
  • 🙋 Children can undo their own chores (opt-in)
  • 🇩🇰 Danish and ↔️ right-to-left layout

🆕 New features

🏷️ NFC / QR tag completion (#923, PR #936)

Stick an NFC tag (or print a QR code) where a chore happens, e.g. on the dishwasher. Scanning it with the HA companion app completes the chore.

  • Set up: chore editor → More options → NFC / QR tags. Pick tags from HA's tag list or type an ID. One tag can serve several chores, such as a separate chore per child.
  • Who gets credit: the child linked to the HA user who scanned. If the scanner isn't linked to a child, a chore with exactly one assigned child is credited to that child.
  • Rules still apply: approval, schedules and daily limits work as usual. Photo-proof, open-ended and timed chores can't be completed by a tag. A repeat scan within 60 seconds is ignored, because phones often read one tap twice.
  • Automations: new event taskmate_tag_completion. Each scan is also recorded in the audit log.

🎂 Birthday mode (#924, PR #938)

Give a child a birthday under Children → Edit. On the day:

  • chores pay 2× (birthday_points_multiplier, 1–5×)
  • optionally, non-mandatory chores are hidden for the day and the streak is protected (birthday_chores_off)
  • the child earns a built-in Birthday badge
  • the child card shows a birthday banner with confetti
  • an optional Birthday notification is sent

A 29 February birthday is celebrated on 28 February in other years. A birthday day off never uses up a streak freeze.

❄️ Streak freeze tokens (#925, PR #937)

A missed day uses up a token instead of breaking the streak.

  • Earn: one token every N streak days (streak_freeze_earn_every, default 7), up to a cap (streak_freeze_max, default 2, 0 = off).
  • Buy: new fixed-cost Streak freeze reward type.
  • Grant or remove: new taskmate.adjust_streak_freezes service.
  • What's protected: vacation days, away days and birthday days off never use up a token. Undoing the completion that earned a token takes the token back.
  • Where it shows: ❄️ count on the streak card and child card, an activity entry, the taskmate_streak_freeze_used event and an optional notification.

🏠 Presence-aware reminders (#926, PR #934)

Link a child to a person.* or device_tracker.* entity under Children → Edit → Presence.

  • While away: bedtime, streak-at-risk, mandatory and custom reminders are held back.
  • On arrival: one "🏠 You're home, Mia — 3 chores left" message instead of a backlog. This is the opt-in Arrived home notification type, and "away" must have lasted at least presence_arrival_min_away minutes (default 30).
  • Quiet hours are respected. An unavailable tracker counts as home, so a broken tracker never silences reminders.

⭐ Chore quality rating (#927, PR #935)

Turn on Settings → Quality rating to rate each approval 1–3 stars.

  • Pay: default ★ 75%, ★★ 100%, ★★★ 125% of the points; each level is configurable.
  • Where to rate: the approvals card, the panel approval queue and the phone approval notification (★ / ★★ / ★★★ buttons).
  • Undo takes back exactly what the rating paid.
  • Insights: a new Quality view shows the average rating per child and per chore.
  • Services: approve_chore and approve_all_chores take an optional rating.

👥 Teamwork chores (#928, PR #939)

Set Team size (2–10) in the chore editor. Each child's Done tap joins the chore, and when the team is full everyone gets a completion.

  • Points: each (everyone gets full points) or split (divided evenly), plus an optional per-child team bonus.
  • Child card: shows "2 / 3 joined" with avatars and a Join / Leave button. A child can leave with taskmate.leave_team_chore.
  • Resets: a half-formed team resets at midnight.
  • Can't be combined with: first-come, rotation, open-ended or timed chores.
  • Events: taskmate_team_chore_joined and taskmate_team_chore_completed.

📱 Kiosk mode (#930, PR #940), new taskmate-kiosk-card

A full-screen card for a shared wall tablet.

  • Flow: each child taps their face, enters an optional 4-digit PIN, and sees only their own chores with big Done buttons, points, streak and reward progress.
  • Idle: the card returns to the picker after the timeout (default 60 s) or straight after the all-done celebration.
  • PINs: set per child under Children → Edit and stored hashed, never in the card's YAML. Five wrong tries lock the pad, with the lock time increasing on each lockout.
  • Nothing for parents: no parent controls and no reward claiming.
  • Greyed out: photo, timed and open-ended chores are shown greyed out under "Do these on your phone" and don't block "all done".
  • Permissions are unchanged: if "Require a linked account per child" is on, the tablet shows "Ask a grown-up" rather than getting around it.

🏴‍☠️ Bounty board (#931, PR #941), new taskmate-bounty-card

Post one-off jobs such as "Wash the car — 50 pts" from the new Bounties panel page. You can set an expiry, eligible children, a claim lock time and whether photo proof is needed.

  • Claiming: a child claims one (one active claim each), which locks it to them. Their completion goes through the normal approval queue.
  • Reject: gives the bounty back to the same child with a fresh lock.
  • Expiry: a claim that runs out returns to the board, and an expired bounty closes.
  • Counts like a chore toward streaks, badges and recaps.
  • Services: post_bounty, update_bounty, remove_bounty, claim_bounty, give_back_bounty and complete_bounty, plus taskmate_bounty_* events.
  • Notifications: opt-in Bounty posted and Claim about to lapse.

🎁 Wishlist with pledges (#932, PR #942), new taskmate-wishlist-card

Children add things they want (name, suggested target, link, picture) and you approve them, adjusting the target if needed, on the new Wishlists panel page.

  • Saving: children move points in, which are reserved and still theirs. They can take their own savings back out, but never pledged points.
  • Pledges: family pledges are added by a parent with a name ("Grandma +60") and appear as a separate stripe on the progress bar.
  • Redeeming: once funded, "Ask to redeem" becomes a normal reward claim.
  • Declining or deleting a wish refunds the child's savings and cancels the pledges.
  • Limits: up to 5 active wishes per child. Every points movement is logged.
  • Services: 10 new services (add_wish, withdraw_wish, move_points_to_wish, take_points_from_wish, request_wish_redeem, approve_wish, decline_wish, pledge_to_wish, remove_wish_pledge, remove_wish) and a per-child sensor.taskmate_<child>_wishlist.

🎬 Recaps (#929, PR #943 · off by default, #944, PR #945), new taskmate-recap-card

A "Wrapped"-style story for each child: chores done, points earned, top chore, longest streak, best day, badges and rewards, and a comparison with the previous period.

  • Frequency: chosen by the parent under Settings → Recaps. Pick any mix of weekly, monthly, every 3/6/9 months and yearly, as a family default or per child.
  • Off by default: existing families get nothing until a parent turns recaps on.
  • Keeping recaps: they're kept (1 year, 2 years or forever), and older ones are one tap away. The child can Save as image to share.
  • Notification: the optional Recap ready notification is sent at a chosen time (default 08:00), and the taskmate_recap_ready event fires.

🔍 Surprise inspections (#981, PR #989)

Flag a chore approved in the last 24 hours for a spot check using the 🔍 button in recent activity.

  • Setting it up: choose the time to check (1–4 hours or until bedtime), the bonus, and whether the child is told or it's a secret check.
  • Pass: pays the bonus and plays a celebration on the child's card.
  • Fail: can just be noted, or send the chore back to be redone. The redo pays nothing extra; the original points stand.
  • Timeout: if you don't decide in time it closes quietly, and you get a reminder 30 minutes before.
  • Random daily pick: optional and off by default.
  • Services: start_inspection, pass_inspection, fail_inspection and cancel_inspection.

🔨 Chore auctions (#982, PR #991), new taskmate-auction-card

Put an unpopular chore up for auction from the new Auctions panel page, giving a max price, a closing time and the eligible children.

  • Bidding: children place sealed bids, the fewest points they'd do it for. The lowest bid wins and ties go to the earliest bid. Changing a bid moves it to the back of the queue for tie-breaks.
  • Secrecy: children only ever see how many bids are in, and the winning price once it closes.
  • Winning: the winner gets that day's chore at their price. If nobody bids, the chore goes back to its normal assignment, and you can re-open it with a higher max.
  • Options: minimum bid per auction (off by default).
  • Notifications: opt-in Auction opened, Closing within the hour and Result.

🧙 Setup wizard (#980, PR #990)

New families get a guided start, and you can run it again any time from Settings or command search. Adding more is the only thing it does; it never deletes.

  • Steps: Welcome → Children (a birthday or just an age group) → Chores → Starter rewards → Review → Done.
  • Chore suggestions: grouped by age band (3–5, 6–8, 9–12, 13+), 32 in total, with the built-in template packs alongside. Big jobs (4★ and up) need approval.
  • Optional: creates a Family chores dashboard, and never overwrites an existing one.
  • Age nudge: when a birthday moves a child up an age band, Today shows a one-time "Vaiha is 9 now — see new chore ideas" nudge.

🧭 Redesigned admin panel (#966, PR #967 · #968, PR #969)

  • Today: a new home page with a card per child (done/total ring, points, streak, quick points), one Needs you list (chore and bounty approvals, reward claims, swaps, new wishes, with Approve all), a Chore board for today and this week, quick actions and recent activity.
  • Sidebar: regrouped into Family / Earn / Spend / Adjust / Review / System, and groups can be collapsed.
  • Search and filter: command search (Ctrl K) and a child filter.
  • Chore editor: now a side panel, full screen on phones. Its fields are grouped as Basics · Who does it · When · Checking · More options, and it has Delete in the footer.

📅 Two-way calendar (#977, PR #984)

The per-child calendar.taskmate_* entities can now be edited in HA's calendar, by parents and admins only.

  • Create an event to make a one-off chore on that day. If it has a time, that becomes the chore's due time.
  • Move one occurrence to shift just that day.
  • Delete one occurrence to skip that day.
  • Logging: every change is checked and written to the audit log.
  • Limits: moving a whole series, or moving into the past, is refused with a clear message.
  • Chore-wide: a move applies to the chore itself, so it affects everyone who shares it.

⌚ Watch complications (#978, PR #983)

  • Sensor: new per-child sensor.taskmate_<child>_watch reading "3 left" or "All done", with progress, points, streak and next chore. It's sized for Apple Watch and Wear OS complications.
  • Service: new taskmate.complete_next_chore for a watch shortcut. It follows the child's own chore order and skips chores that need input. When nothing is left it quietly does nothing.
  • Guide: a new wiki page, Watch Complications, has copy-paste templates for both platforms.

↩️ Reject reasons (#976, PR #985)

Say why when rejecting a chore or reward.

  • Where: from the approvals card, the panel, or straight from the phone notification, where Reject now has a text box. Quick chips are offered: "Not finished", "Needs redoing", "Not today".
  • What the child sees: "Sent back: …" on their card for 24 hours, plus an opt-in Item rejected notification.
  • Services and events: reject_chore and reject_reward take an optional reason, and the rejection events carry it.

🙋 Children can undo their own chores (PR #933)

New Settings → Child undo window (seconds), default 0 (off).

  • Pending: a child can withdraw a submission that's still waiting until a parent reviews it.
  • Auto-approved: a child can undo it within the window.
  • After review: once a parent has reviewed it, only a parent can undo it.
  • Service: new undo_chore service.

🌍 Danish and right-to-left

  • Danish translation, contributed and reviewed by a native speaker (PR #912).
  • Right-to-left layout for every card and the admin panel (#979, PR #987). It's ready for Arabic, Hebrew, Persian and Urdu translations. Cards switch direction and language immediately when you change language, with no reload needed (#994, PR #1003), and counts like "3 / 5" keep their reading order (#995, PR #1009).

🐛 Fixes

Chores and approvals

  • Undoing or rejecting an approved chore now fully reverses its count, streak and leaderboard score, including 0-point chores (#915, PR #921).
  • A one-off chore dated for another day no longer appears on today's cards. It used to show as tickable and then do nothing (#992, PR #1005).
  • Removing a child or parent now removes all of their data (notification routes, missed-chore records, entities, feature data), and on start-up TaskMate cleans up anything left behind before (#946, PR #957).
  • Deleting a chore or reward now removes its buttons. Re-assigning a child to a chore brings their button back immediately (#960, PR #963).

Cards

  • The Done button no longer slides off the card on phones when a chore has a long name, in every designed style (#916, PR #922).
  • "Chores reset in…" is counted in Home Assistant's time zone, not the browser's (#948, PR #955).
  • Default card titles show in your language instead of English (#1010, PR #1011).
  • Recap slides use proper singular and plural wording in every language, e.g. "1 day in a row" (#950, PR #956).
  • The kiosk no longer gets stuck short of "all done" when a child has a photo, timed or open-ended chore (#952, PR #958).

Calendar

  • Chores with a due time appear in the calendar at that time as a 30-minute event, and dragging one to the same time on another day now works (#993, PR #1001).

Bounties, wishes, auctions, inspections

  • Bounty history no longer says "Nobody claimed" for a bounty whose claim lapsed or that was handed back (#949, PR #954 · #961, PR #964).
  • Wishlist and bounty action buttons, including delete icons, stay visible on narrow screens (#951, PR #959 · #962, PR #965).
  • A won auction shows the winning price ahead of its day in the calendar, the ICS feed and the calendar card (#998, PR #1004).
  • Finished auctions can be deleted, and deleting a chore removes its auctions (#999, PR #1007).
  • Clearer auction and wizard wording: a lost tie is explained, the stale "No bids" result is hidden after a re-run, and the wizard no longer reports "0/0/0 added" (#1000, PR #1008).
  • An impossible birthday in the wizard now shows a proper, translated message instead of an error (#1000, PR #1008).
  • Undoing an inspection bonus takes the pass back and reopens the inspection if its time window is still open (#996, PR #1002).
  • The inspection Pass button shows the bonus as you type it, and "Until bedtime" shows the real closing time (#997, PR #1006).

Admin panel and notifications

  • Chore picture uploads no longer show a broken preview or trigger a false "Login attempt failed" alert. Those alerts could have got your own IP banned (#970, PR #971).
  • Dialogs no longer replay their opening animation on every redraw (#974, PR #975).
  • Styling fixes in Settings, Parents and Allowance, and an icon picker for avatars (#972, PR #973).
  • Notification routing now rejects unknown recipients and notification types (#947, PR #953).

🔧 For automations and developers

New services (24): adjust_streak_freezes, leave_team_chore, complete_next_chore, undo_chore; bounties: post_bounty, update_bounty, remove_bounty, claim_bounty, give_back_bounty, complete_bounty; wishes: add_wish, withdraw_wish, move_points_to_wish, take_points_from_wish, request_wish_redeem, approve_wish, decline_wish, pledge_to_wish, remove_wish_pledge, remove_wish; inspections: start_inspection, pass_inspection, fail_inspection, cancel_inspection.

Changed services: approve_chore / approve_all_chores take rating, and reject_chore / reject_reward take reason.

New cards (5): taskmate-kiosk-card, taskmate-bounty-card, taskmate-wishlist-card, taskmate-recap-card, taskmate-auction-card.

New entities:

  • Sensors: sensor.taskmate_bounties, sensor.taskmate_auctions, sensor.taskmate_<child>_wishlist and sensor.taskmate_<child>_watch.
  • Calendars: the calendar.taskmate_<child> entities now support create, update and delete.

New notification types (15, off by default unless noted): birthday, streak_freeze_used, presence_arrival, item_rejected, recap_ready, bounty_posted, bounty_claim_lapsing, wish_requested, wish_pledged, inspection_started, inspection_passed, inspection_reminder (on, for parents), auction_opened, auction_closing, auction_result.

New events:

  • Chores and streaks: taskmate_tag_completion, taskmate_team_chore_joined, taskmate_team_chore_completed, taskmate_chore_undone, taskmate_streak_freeze_used.
  • Recaps: taskmate_recap_ready.
  • Bounties: taskmate_bounty_* (posted, updated, removed, claimed, given_back, claim_lapsed, completed, approved, rejected, released, withdrawn, expired).
  • Wishes: taskmate_wish_* (added, approved, declined, pledged, saved).
  • Inspections: taskmate_inspection_* (started, passed, failed, expired, cancelled, reopened).
  • Auctions: taskmate_auction_* (opened, bid, bid_withdrawn, closed, cancelled). Auction events never include bid amounts.

Upgrading: all new stored fields load safely from older data. No manual migration is needed.


🙏 Thanks

Thanks to our Danish translator for PR #912, and to everyone who reported issues and tried the dev builds.

Full changelog: v5.8.0...v6.0.0