-
Notifications
You must be signed in to change notification settings - Fork 2
Sensor Reference
TaskMate creates the following entities in Home Assistant.
Architecture note: The overview sensor's attributes have been split across companion sensors (
sensor.taskmate_chores,sensor.taskmate_rewards, etc.) to stay under the 16KB recorder limit. Cards use the__taskmate_attrshelper to transparently merge data from all sensors.
The main overview sensor. Carries scalar stats and the compact per-child summary.
| Property | Value |
|---|---|
| State | Number of children |
| Icon | mdi:clipboard-check-multiple |
| Attribute | Type | Description |
|---|---|---|
total_children |
int | Number of children |
total_chores |
int | Number of defined chores |
total_rewards |
int | Number of defined rewards |
total_points_available |
int | Sum of all children's current points |
total_chores_completed |
int | Sum of all-time chore completions across all children |
total_completions_all_time |
int | Lifetime chore completion records |
total_pending_completions |
int | Chore completions awaiting approval |
points_name |
string | Currency name (e.g. "Stars") |
points_icon |
string | Currency MDI icon (e.g. "mdi:star") |
card_design |
string | Global default card design style — classic / playroom / console / cleanpro (default classic). Cards apply this when they have no per-card override. See Card Design Styles
|
today_day_of_week |
string | Current day in HA timezone (e.g. "monday") |
weekend_multiplier |
float | Current weekend multiplier setting |
streak_reset_mode |
string | "reset" or "pause" |
streak_milestones_enabled |
bool | Whether streak milestone bonuses are on |
streak_milestones |
string | Current milestone configuration string |
perfect_week_enabled |
bool | Whether perfect week bonus is on |
perfect_week_bonus |
int | Perfect week bonus points value |
time_boundaries |
dict | Legacy fixed time-window map: morning_start/morning_end/afternoon_start/… in HH:MM (kept for cards that read the four fixed periods) |
time_periods |
list | Custom time-of-day periods — each entry has id, label, start, end, icon. Drives chore time-category windows |
vacation_active |
bool |
true if a vacation period covers today |
vacation_name |
string | Name of the active vacation period (empty when none) |
vacation_end |
string | ISO end date of the active vacation period (empty when none) |
vacation_periods |
list | All configured vacation periods — each has id, name, start, end. See Vacation Mode
|
Note: Level/XP, quest, challenge, and avatar-unlock data are carried per child inside the
childrenarray (see below), not as top-level attributes. See Levels and XP, Quests, Challenges, Avatars.
Each entry in the children array:
| Field | Type | Description |
|---|---|---|
id |
string | Child's unique ID |
name |
string | Child's display name |
avatar |
string | MDI icon (the child's currently selected avatar) |
level |
int | Current XP level (derived from total_points_earned). See Levels and XP
|
level_progress |
int | XP earned toward the next level within the current level band |
level_target |
int | XP required per level (the level_xp_step setting; default 100) |
points |
int | Current gross points balance (after pool deposits deducted) |
pending_points |
int | Points held by pending chore approvals |
committed_points |
int | Points reserved by pending reward claims |
spendable_balance |
int |
points − committed_points — what the child can spend or deposit now |
allocated_points |
int | Total points deposited across all reward pools |
total_points_earned |
int | All-time points earned |
total_chores_completed |
int | All-time completions |
current_streak |
int | Current consecutive day streak |
best_streak |
int | Best streak ever |
pending_points |
int | Points held by pending approvals |
committed_points |
int | Points reserved by pending reward claims |
chore_order |
list | Custom chore display order |
last_completion_date |
string | ISO date of last completion |
streak_paused |
bool | Whether streak is paused |
streak_milestones_achieved |
list | Milestone day counts already awarded this streak |
awarded_perfect_weeks |
list | Monday ISO dates of awarded perfect weeks |
career_score |
int | Long-term score (total_points_earned − total_penalties_received) |
total_penalties_received |
int | Lifetime count of penalties applied |
quests |
list | This child's quest progress — each entry has quest_id, name, icon, total_steps, step, done, times_completed, bonus_points, next_chore_id
|
challenges |
list | This child's challenge progress — each entry has challenge_id, name, icon, scope, metric, target, progress, value, bonus_points, complete, awarded
|
avatar_options |
list | The avatar catalogue resolved for this child — each entry has id, label, icon, unlocked, requirement (human-readable unlock condition) |
quests entry fields:
| Field | Type | Description |
|---|---|---|
quest_id |
string | Quest ID |
name |
string | Quest display name |
icon |
string | MDI icon |
total_steps |
int | Number of chore steps in the chain |
step |
int | Child's current step (0-indexed, capped at total_steps) |
done |
bool |
true when step >= total_steps
|
times_completed |
int | How many times this child has completed the chain |
bonus_points |
int | Points awarded on completing the final step |
next_chore_id |
string | Chore ID of the next step to complete (empty when done) |
challenges entry fields:
| Field | Type | Description |
|---|---|---|
challenge_id |
string | Challenge ID |
name |
string | Challenge display name |
icon |
string | MDI icon |
scope |
string |
daily or weekly (week starts Monday) |
metric |
string |
chores (count of completions) or points (points earned) |
target |
int | Goal value for the metric this period |
progress |
int | Progress toward target, capped at target
|
value |
int | Actual current value (may exceed target) |
bonus_points |
int | Points awarded once the target is hit |
complete |
bool |
true when value >= target
|
awarded |
bool |
true when the bonus has already been credited this period |
avatar_options entry fields:
| Field | Type | Description |
|---|---|---|
id |
string | Avatar catalogue ID |
label |
string | Display name |
icon |
string | MDI icon |
unlocked |
bool | Whether this child meets the unlock condition |
requirement |
string | Human-readable unlock condition — "" (free), "Level X", "X earned", or "X-day streak"
|
Note: The following arrays (
chores,rewards,todays_completions,recent_completions,recent_transactions,pending_completions,pending_reward_claims) are served by companion sensors (see below). Cards merge them transparently via the__taskmate_attrshelper.
Each entry in the chores array (from sensor.taskmate_chores):
| Field | Type | Description |
|---|---|---|
id |
string | Chore's unique ID |
name |
string | Display name |
description |
string | Optional description (omitted when empty) |
points |
int | Base points (before multipliers) awarded on completion |
difficulty |
string |
easy / medium / hard — only emitted when not medium. See Difficulty Tiers
|
effective_points |
int | Points actually awarded after the difficulty multiplier — only emitted when it differs from points
|
mandatory |
bool |
true for a mandatory chore — only emitted when set (so cards can show the mandatory badge/styling) |
mandatory_penalty_points |
int | Penalty deducted if the chore is missed — only emitted when mandatory is set and the penalty is non-zero. See Mandatory Chores
|
require_photo |
bool |
true when the chore requires a photo proof — only emitted when set |
time_category |
string | morning / afternoon / evening / night / anytime |
schedule_mode |
string |
specific_days / recurring / one_shot
|
daily_limit |
int | Max completions per day (omitted when 1) |
claim_allowance_minutes |
int | Grace minutes past the period end during which the chore stays claimable (omitted when 0) |
assigned_to |
list | List of child IDs (empty = all children) |
completion_sound |
string | Sound name (omitted when default coin) |
due_days |
list | Scheduled days for specific_days mode (omitted when empty) |
recurrence |
string |
every_2_days / weekly / every_2_weeks / monthly / every_3_months / every_6_months (omitted when weekly) |
recurrence_day |
string | Day-of-week anchor for recurring weekly/fortnightly (omitted when empty) |
recurrence_start |
string | ISO date anchor for every_2_days recurrence (omitted when empty) |
visibility_entity / visibility_operator / visibility_state
|
string | Dynamic visibility guard — emitted together when visibility_entity is set. See Dynamic Chore Visibility
|
requires_approval |
bool | Whether parent approval is needed (omitted when true — default) |
assignment_mode |
string |
everyone / alternating / random / balanced / first_come / unassigned. See Chore Scheduling
|
assignment_current_child_id |
string | Child ID assigned today (for alternating/random/balanced modes; omitted when empty) |
enabled |
bool | Whether the chore is active (false for soft-disabled one-shot chores) |
disabled_for |
list | Child IDs for whom this chore is individually disabled |
created_date |
string | ISO date for one-shot chore expiry (e.g. "2026-04-16") |
task_type |
string |
standard or timed
|
timed_rate_points |
int | Points per rate window (timed chores only) |
timed_rate_minutes |
int | Rate window in minutes (timed chores only) |
timed_max_daily_minutes |
int | Daily cap in minutes; 0 = unlimited (timed chores only) |
bonus_subtasks |
list | Embedded bonus subtasks — each has id, name, points (description is omitted from the sensor payload) |
Compact payloads: The chores sensor deliberately omits rarely-used fields to stay under the 16KB recorder limit.
publish_calendar_entities,last_completed_at,first_occurrence_mode,assignment_rotation_anchor, and the per-child availability matrix are not in this list. Per-child availability lives onsensor.taskmate_chore_availability. The chore editor fieldsexpires_on,due_time/early_bonus/late_penalty, andrequire_availabilityare stored on the chore but are not emitted on this sensor; manage them in the Admin Panel.
Each entry in the rewards array:
| Field | Type | Description |
|---|---|---|
id |
string | Reward's unique ID |
name |
string | Display name |
description |
string | Optional description |
cost |
int | Fixed point cost set by the parent |
icon |
string | MDI icon |
assigned_to |
list | Child IDs (empty = all children) |
is_jackpot |
bool | Whether this is a pooled jackpot reward |
pool_enabled |
bool | Whether this reward uses savings-jar (pool) semantics |
calculated_costs |
dict | Per-child cost {child_id: cost}
|
pool_allocations |
dict | Per-child pool deposits {child_id: points}
|
jackpot_pool_total |
int|null | Combined pool total for jackpot rewards; null otherwise |
quantity |
int|null | Remaining stock (null = unlimited) |
expires_at |
string|null | ISO date expiry deadline (null = never) |
is_sold_out |
bool |
true when quantity has reached 0 |
is_expired |
bool |
true when past the expiry date |
is_available |
bool |
true when not sold out and not expired |
days_until_expiry |
int|null | Days remaining until expiry (null if no expiry set) |
Note: Auto-restock fields (
restock_enabled,restock_amount,restock_period,restock_last) are stored on the reward but are not emitted on the sensor — they drive the periodic stock reset only. The reward-level spending cap is a global setting, not a per-reward field. See Points Economy and Rewards.
Completions from today (both approved and pending):
| Field | Type | Description |
|---|---|---|
completion_id |
string | Unique completion ID |
chore_id |
string | Chore ID |
child_id |
string | Child ID |
child_name |
string | Child display name |
chore_name |
string | Chore display name |
points |
int | Points value |
approved |
bool | Whether approved |
completed_at |
string | ISO datetime |
Up to 35 most recent completions across all time (capped to stay under the 16KB recorder limit).
Same fields as todays_completions.
Unapproved chore completions waiting for parent action:
| Field | Type | Description |
|---|---|---|
completion_id |
string | Unique completion ID |
chore_id |
string | Chore ID |
child_id |
string | Child ID |
child_name |
string | Child display name |
chore_name |
string | Chore display name |
points |
int | Points value |
time_category |
string | Time of day |
completed_at |
string | ISO datetime |
Unapproved reward claims waiting for parent action:
| Field | Type | Description |
|---|---|---|
claim_id |
string | Unique claim ID |
reward_id |
string | Reward ID |
child_id |
string | Child ID |
child_name |
string | Child display name |
reward_name |
string | Reward display name |
cost |
int | Points cost at time of claim |
claimed_at |
string | ISO datetime |
Up to 20 most recent points transactions and reward claim events:
| Field | Type | Description |
|---|---|---|
id |
string | Transaction ID |
child_id |
string | Child ID |
points |
int | Points value (positive = add, negative = remove) |
reason |
string | Reason description |
created_at |
string | ISO datetime |
Active or paused timed task sessions:
| Field | Type | Description |
|---|---|---|
chore_id |
string | Chore ID |
child_id |
string | Child ID |
state |
string |
running or paused
|
total_seconds_today |
int | Cumulative elapsed seconds today |
current_segment_start |
string|null | ISO datetime of current running segment start |
Numeric count of total pending items.
| Property | Value |
|---|---|
| State | Integer — total pending items |
| State class | measurement |
| Icon | mdi:clipboard-clock |
| Attribute | Type | Description |
|---|---|---|
pending_chore_completions |
int | Count of chores awaiting approval |
pending_reward_claims |
int | Count of reward claims awaiting approval |
pending_mandatory_misses |
int | Count of unresolved mandatory-miss review items |
chore_completions |
list | Full details of pending chore completions |
reward_claims |
list | Full details of pending reward claims |
mandatory_misses |
list | Unresolved mandatory-miss review items (see below). See Mandatory Chores |
chore_completions entries:
| Field | Description |
|---|---|
completion_id |
Completion ID (use with approve_chore / reject_chore) |
type |
Always "chore"
|
child_name |
Child display name |
child_id |
Child ID |
chore_name |
Chore display name |
chore_id |
Chore ID |
points |
Points value |
time_category |
Time of day |
completed_at |
ISO datetime |
reward_claims entries:
| Field | Description |
|---|---|
claim_id |
Claim ID (use with approve_reward / reject_reward) |
type |
Always "reward"
|
child_name |
Child display name |
child_id |
Child ID |
reward_name |
Reward display name |
reward_id |
Reward ID |
cost |
Points cost |
claimed_at |
ISO datetime |
mandatory_misses entries:
A pending mandatory chore miss, one per chore/child/day. Resolve with apply_mandatory_penalty, postpone_mandatory_chore, or dismiss_mandatory_chore (see Services).
| Field | Description |
|---|---|
id |
Miss ID (use with the mandatory-miss services as miss_id) |
chore_id |
Chore ID |
child_id |
Child ID |
chore_name |
Chore display name |
child_name |
Child display name |
due_date |
ISO date the chore was missed |
period_id |
The time-of-day period whose window closed (anytime for an all-day chore) |
penalty_points |
Penalty snapshotted at miss time (applied by apply_mandatory_penalty) |
postpone_count |
How many times this miss has been postponed |
created_at |
ISO datetime the miss was recorded |
Chore definitions and today's completions.
| Property | Value |
|---|---|
| State | Number of defined chores |
| Icon | mdi:format-list-checks |
| Attribute | Type | Description |
|---|---|---|
chores |
list | Full chore definitions (see chores array above) |
todays_completions |
list | Completions logged today (see todays_completions array above) |
task_groups |
list | Task group definitions — each has id, name, policy, chore_ids. See Task Groups
|
active_timed_sessions |
list | Running/paused timed sessions (see active_timed_sessions array below) |
vacation_active |
bool |
true if a vacation period covers today |
vacation_name |
string | Name of the active vacation period (empty when none) |
vacation_end |
string | ISO end date of the active vacation period (empty when none) |
Per-chore per-child availability matrix. Split from the chores sensor to keep payloads compact.
| Property | Value |
|---|---|
| State | Count of available chore/child combinations |
| Icon | mdi:calendar-check |
| Attribute | Type | Description |
|---|---|---|
chore_availability |
dict |
{chore_id: {child_id: bool}} — whether each chore is available for each child today |
Rewards catalogue, pending claims, and pool allocations.
| Property | Value |
|---|---|
| State | Number of defined rewards |
| Icon | mdi:gift-outline |
| Attribute | Type | Description |
|---|---|---|
rewards |
list | Full reward definitions (see rewards array above) |
pending_reward_claims |
list | Pending reward claims (see pending_reward_claims array above) |
pool_allocations |
list | Raw pool allocation records |
Recent completion and transaction history.
| Property | Value |
|---|---|
| State | Total number of all-time completions |
| Icon | mdi:history |
| Attribute | Type | Description |
|---|---|---|
recent_completions |
list | Up to 35 most recent completions (see recent_completions array above) |
recent_transactions |
list | Up to 20 most recent point adjustments and reward events (see recent_transactions array above) |
career_score_history |
dict |
{child_id: [...]} — recorded career-score snapshots per child, for trend charts |
Penalties and bonuses catalogue.
| Property | Value |
|---|---|
| State | Total number of penalties + bonuses |
| Icon | mdi:scale-balance |
| Attribute | Type | Description |
|---|---|---|
penalties |
list | Penalty definitions — each has id, name, points, description, icon, assigned_to
|
bonuses |
list | Bonus definitions — each has id, name, points, description, icon, assigned_to
|
Note:
task_groupsis published onsensor.taskmate_chores, not on the incentives sensor.
Each child gets two sensors:
sensor.{child_name}_points — State: current gross points balance. State class: total.
| Attribute | Type | Description |
|---|---|---|
child_id |
string | Child ID |
child_name |
string | Display name |
avatar |
string | MDI icon |
total_points_earned |
int | Lifetime points earned |
total_chores_completed |
int | Lifetime completions |
current_streak |
int | Current consecutive day streak |
best_streak |
int | Best streak ever |
career_score |
int | Long-term score (total_points_earned − total_penalties_received) |
sensor.{child_name}_stats — State: total chores completed. State class: total.
| Attribute | Type | Description |
|---|---|---|
child_id |
string | Child ID |
child_name |
string | Display name |
avatar |
string | MDI icon |
points |
int | Current points balance |
total_points_earned |
int | Lifetime points earned |
total_chores_completed |
int | Lifetime completions |
current_streak |
int | Current streak |
best_streak |
int | Best streak |
career_score |
int | Long-term score |
total_penalties_received |
int | Lifetime penalties applied |
assigned_chores |
list | Chores assigned to this child today (each has id, name, points, time_category) |
chore_order |
list | Custom chore display order |
sensor.taskmate_badges_{child_slug} — State: count of earned badges.
| Attribute | Type | Description |
|---|---|---|
earned |
list | Array of earned badge objects, each with badge_id, name, icon, tier, earned_at, manually_awarded (bool), silent (bool) |
available |
list | Array of not-yet-earned applicable badges, each with badge_id, name, icon, tier, progress_pct, criteria_summary
|
total_badges |
int | Number of badges applicable to this child (earned + locked) |
See Achievement Badges for full details.
Simple on/off sensor for use in automations and notifications.
| Property | Value |
|---|---|
on |
There are pending chore completions or reward claims |
off |
Nothing pending |
| Icon (on) | mdi:bell-alert |
| Icon (off) | mdi:bell-check |
| Device class | None |
| Attribute | Type | Description |
|---|---|---|
pending_chore_completions |
int | Count of chores pending |
pending_reward_claims |
int | Count of reward claims pending |
total_pending |
int | Combined total |
One button entity per child/chore combination and per child/reward combination:
| Entity | Action |
|---|---|
button.{child}_complete_{chore} |
Complete the chore for the child |
button.{child}_claim_{reward} |
Claim the reward for the child |
The reward claim button is only available (not greyed out) when the child has enough points.
One read-only calendar entity per child, created by the calendar platform and added automatically as children are created:
| Entity | Description |
|---|---|
calendar.taskmate_<child> |
Friendly name TaskMate <child> (icon mdi:calendar-account). Projects the child's upcoming chore occurrences from the recurrence/assignment engine — timed events inside the chore's time-of-day window, or all-day events for anytime chores. Away periods appear as coalesced multi-day "Away" all-day events (chores are hidden on away days). The entity state is the current or next upcoming event. |
Read-only — completing a chore from the calendar is not supported. See Calendar.
Some v4.0.0 data is served to the Admin Panel over the websocket API rather than exposed as sensor attributes:
| Data | Where | Notes |
|---|---|---|
| Quest definitions | websocket state quests / quest_progress
|
Per-child quest progress is mirrored into the overview children[].quests. See Quests
|
| Challenge definitions | websocket state challenges
|
Per-child progress is mirrored into children[].challenges. See Challenges
|
| Avatar catalogue | websocket state avatar_catalog
|
Per-child unlock state is mirrored into children[].avatar_options. See Avatars
|
| Swap requests | websocket state swap_requests
|
Pending chore swap requests awaiting parent action |
| Audit log | websocket commands taskmate/audit/list + /clear; initial state audit_log (newest 100) |
See Admin Audit Log |
The coordinator polls every 30 seconds. All entities update together. Completions, approvals, and point changes trigger an immediate refresh.