1742 lines
43 KiB
YAML
1742 lines
43 KiB
YAML
complete_chore:
|
||
name: Complete Chore
|
||
description: Mark a chore as completed by a child
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the chore to complete
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child completing the chore
|
||
required: true
|
||
selector:
|
||
text:
|
||
as_parent:
|
||
name: As parent
|
||
description: Complete on behalf of the child and award points immediately, bypassing approval.
|
||
required: false
|
||
default: false
|
||
selector:
|
||
boolean:
|
||
photo_url:
|
||
name: Photo URL
|
||
description: Optional URL or path to a photo submitted as evidence for the completion (e.g. a camera snapshot). Shown to the parent during approval.
|
||
required: false
|
||
selector:
|
||
text:
|
||
note:
|
||
name: Note
|
||
description: What the child did, in their own words. Required when the chore is open-ended, and shown to the parent during approval.
|
||
required: false
|
||
selector:
|
||
text:
|
||
multiline: true
|
||
suggested_points:
|
||
name: Suggested points
|
||
description: What the child reckons the work was worth. A hint for the approving parent — it awards nothing on its own.
|
||
required: false
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 999
|
||
mode: box
|
||
|
||
complete_bonus_subtask:
|
||
name: Complete Bonus Sub-task
|
||
description: Complete a bonus sub-task after the parent chore is done
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the parent chore
|
||
required: true
|
||
selector:
|
||
text:
|
||
bonus_subtask_id:
|
||
name: Bonus Sub-task ID
|
||
description: The ID of the bonus sub-task to complete
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child completing the bonus sub-task
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
approve_chore:
|
||
name: Approve Chore
|
||
description: Approve a completed chore and award points
|
||
fields:
|
||
completion_id:
|
||
name: Completion ID
|
||
description: The ID of the chore completion to approve
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: Award this many points instead of the chore's own value. Leave empty to use the chore's points.
|
||
required: false
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 9999
|
||
mode: box
|
||
rating:
|
||
name: Quality rating
|
||
description: Optional 1-3 star rating of how well the chore was done. When quality ratings are enabled it scales the points by that star's multiplier; leave empty to pay 100%.
|
||
required: false
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 3
|
||
mode: slider
|
||
|
||
approve_all_chores:
|
||
name: Approve All Chores
|
||
description: Approve all pending chore completions (or a specific set) and award points
|
||
fields:
|
||
completion_ids:
|
||
name: Completion IDs
|
||
description: Specific completion IDs to approve; omit to approve all pending
|
||
required: false
|
||
selector:
|
||
object:
|
||
rating:
|
||
name: Quality rating
|
||
description: Optional 1-3 star rating applied to every chore approved by this call (quality ratings must be enabled).
|
||
required: false
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 3
|
||
mode: slider
|
||
|
||
reject_chore:
|
||
name: Reject Chore
|
||
description: Reject a completed chore
|
||
fields:
|
||
completion_id:
|
||
name: Completion ID
|
||
description: The ID of the chore completion to reject
|
||
required: true
|
||
selector:
|
||
text:
|
||
reason:
|
||
name: Reason
|
||
description: Optional reason shown to the child
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
apply_mandatory_penalty:
|
||
name: Apply Mandatory Penalty
|
||
description: Deduct the configured penalty points for a missed mandatory chore and clear the review item.
|
||
fields:
|
||
miss_id:
|
||
name: Miss ID
|
||
description: The ID of the mandatory-miss review item
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
postpone_mandatory_chore:
|
||
name: Postpone Mandatory Chore
|
||
description: Give a missed mandatory chore another period (or tomorrow) without a penalty, and clear the review item.
|
||
fields:
|
||
miss_id:
|
||
name: Miss ID
|
||
description: The ID of the mandatory-miss review item
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
dismiss_mandatory_chore:
|
||
name: Dismiss Mandatory Chore
|
||
description: Clear a missed mandatory chore review item with no penalty.
|
||
fields:
|
||
miss_id:
|
||
name: Miss ID
|
||
description: The ID of the mandatory-miss review item
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
undo_transaction:
|
||
name: Undo Transaction
|
||
description: Reverse a points transaction by its ID — penalties, bonuses, manual add/remove adjustments and gifts (both legs). Automatic transactions (weekend/streak/perfect-week bonuses, pool moves, decay, interest) can't be undone.
|
||
fields:
|
||
transaction_id:
|
||
name: Transaction ID
|
||
description: The ID of the points transaction to reverse
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
undo_chore:
|
||
name: Undo Chore
|
||
description: Let a child take back their own chore — a pending submission until a parent reviews it, or an automatically approved one within the chore undo window. Off unless the window is set above 0 in TaskMate settings; anything a parent has reviewed needs a parent to undo it.
|
||
fields:
|
||
completion_id:
|
||
name: Completion ID
|
||
description: The ID of the child's chore completion to take back
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
undo_chore_approval:
|
||
name: Undo Chore Approval
|
||
description: Reverse an accidental chore approval — removes the awarded points and returns the completion to pending so it can be approved again.
|
||
fields:
|
||
completion_id:
|
||
name: Completion ID
|
||
description: The ID of the approved chore completion to revert to pending
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
test_notification:
|
||
name: Test Notification
|
||
description: Send a sample notification of the given type to its enabled recipients (ignores the master on/off so routing can be verified).
|
||
fields:
|
||
type_id:
|
||
name: Notification type
|
||
description: "Notification type id, e.g. pending_chore_approval, badge_earned, streak_milestone"
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
record_allowance_payout:
|
||
name: Record Allowance Payout
|
||
description: Deduct points and record a real-money allowance payout in the ledger (fixed conversion rate; parent-controlled).
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: Points to convert to cash and deduct.
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 100000
|
||
mode: box
|
||
|
||
gift_points:
|
||
name: Gift Points
|
||
description: Transfer spendable points from one child to another (parent-controlled).
|
||
fields:
|
||
from_child_id:
|
||
name: From child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
to_child_id:
|
||
name: To child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
|
||
adjust_streak_freezes:
|
||
name: Adjust Streak Freezes
|
||
description: Give a child streak-freeze tokens (positive amount) or take some away (negative). A grant never goes past the streak_freeze_max cap.
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child whose tokens change
|
||
required: true
|
||
selector:
|
||
text:
|
||
amount:
|
||
name: Amount
|
||
description: Tokens to add (positive) or remove (negative)
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: -10
|
||
max: 10
|
||
mode: box
|
||
|
||
request_swap:
|
||
name: Request Chore Swap
|
||
description: A child requests to take over today's rotation assignment of a chore (pending parent approval).
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
requester_id:
|
||
name: Requester child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
choose_avatar:
|
||
name: Choose Avatar
|
||
description: A child switches to an avatar they have unlocked.
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
icon:
|
||
name: Avatar icon
|
||
description: The mdi icon of an unlocked catalogue avatar (e.g. mdi:rocket-launch).
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
claim_reward:
|
||
name: Claim Reward
|
||
description: Child claims a reward using their points
|
||
fields:
|
||
reward_id:
|
||
name: Reward ID
|
||
description: The ID of the reward to claim
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child claiming the reward
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
approve_reward:
|
||
name: Approve Reward
|
||
description: Approve a reward claim
|
||
fields:
|
||
claim_id:
|
||
name: Claim ID
|
||
description: The ID of the reward claim to approve
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
allocate_points_to_pool:
|
||
name: Allocate Points to Pool
|
||
description: Move points from a child's spendable balance into a reward's savings pool (locked).
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child making the allocation
|
||
required: true
|
||
selector:
|
||
text:
|
||
reward_id:
|
||
name: Reward ID
|
||
description: The ID of the reward pool to deposit into
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: Number of points to allocate (capped at pool capacity and spendable balance)
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
|
||
add_points:
|
||
name: Add Points
|
||
description: Add bonus points to a child
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child to add points to
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: The number of points to add
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
reason:
|
||
name: Reason
|
||
description: Optional reason for the bonus
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
remove_points:
|
||
name: Remove Points
|
||
description: Remove points from a child (penalty)
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child to remove points from
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: The number of points to remove
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
reason:
|
||
name: Reason
|
||
description: Optional reason for the penalty
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
reject_reward:
|
||
name: Reject Reward
|
||
description: Reject a reward claim (no points deducted as approval was pending)
|
||
fields:
|
||
claim_id:
|
||
name: Claim ID
|
||
description: The ID of the reward claim to reject
|
||
required: true
|
||
selector:
|
||
text:
|
||
reason:
|
||
name: Reason
|
||
description: Optional reason shown to the child
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
preview_sound:
|
||
name: Preview Sound
|
||
description: Preview a completion sound effect in the browser
|
||
fields:
|
||
sound:
|
||
name: Sound
|
||
description: The sound to preview
|
||
required: true
|
||
selector:
|
||
select:
|
||
options:
|
||
- "none"
|
||
- "coin"
|
||
- "levelup"
|
||
- "fanfare"
|
||
- "chime"
|
||
- "powerup"
|
||
- "undo"
|
||
- "fart1"
|
||
- "fart2"
|
||
- "fart3"
|
||
- "fart4"
|
||
- "fart5"
|
||
- "fart6"
|
||
- "fart7"
|
||
- "fart8"
|
||
- "fart9"
|
||
- "fart10"
|
||
- "fart_random"
|
||
|
||
set_chore_order:
|
||
name: Set Chore Order
|
||
description: Set the display order of chores for a child
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child to set chore order for
|
||
required: true
|
||
selector:
|
||
text:
|
||
chore_order:
|
||
name: Chore Order
|
||
description: Ordered list of chore IDs
|
||
required: true
|
||
selector:
|
||
object:
|
||
|
||
add_penalty:
|
||
name: Add Penalty
|
||
description: Create a new penalty definition
|
||
fields:
|
||
name:
|
||
name: Name
|
||
description: The name of the penalty
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: The number of points to deduct when applied
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
description:
|
||
name: Description
|
||
description: Optional description of the penalty
|
||
required: false
|
||
selector:
|
||
text:
|
||
icon:
|
||
name: Icon
|
||
description: MDI icon for the penalty
|
||
required: false
|
||
selector:
|
||
icon:
|
||
assigned_to:
|
||
name: Assigned To
|
||
description: List of child IDs this penalty applies to (empty for all)
|
||
required: false
|
||
selector:
|
||
object:
|
||
|
||
update_penalty:
|
||
name: Update Penalty
|
||
description: Update an existing penalty definition
|
||
fields:
|
||
penalty_id:
|
||
name: Penalty ID
|
||
description: The ID of the penalty to update
|
||
required: true
|
||
selector:
|
||
text:
|
||
name:
|
||
name: Name
|
||
description: New name for the penalty
|
||
required: false
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: New points value for the penalty
|
||
required: false
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
description:
|
||
name: Description
|
||
description: New description for the penalty
|
||
required: false
|
||
selector:
|
||
text:
|
||
icon:
|
||
name: Icon
|
||
description: New icon for the penalty
|
||
required: false
|
||
selector:
|
||
icon:
|
||
assigned_to:
|
||
name: Assigned To
|
||
description: New list of child IDs this penalty applies to
|
||
required: false
|
||
selector:
|
||
object:
|
||
|
||
remove_penalty:
|
||
name: Remove Penalty
|
||
description: Remove a penalty definition
|
||
fields:
|
||
penalty_id:
|
||
name: Penalty ID
|
||
description: The ID of the penalty to remove
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
apply_penalty:
|
||
name: Apply Penalty
|
||
description: Apply a penalty to a child, deducting points
|
||
fields:
|
||
penalty_id:
|
||
name: Penalty ID
|
||
description: The ID of the penalty to apply
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child to apply the penalty to
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
add_bonus:
|
||
name: Add Bonus
|
||
description: Create a new bonus definition
|
||
fields:
|
||
name:
|
||
name: Name
|
||
description: The name of the bonus
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: The number of points to award when applied
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
description:
|
||
name: Description
|
||
description: Optional description of the bonus
|
||
required: false
|
||
selector:
|
||
text:
|
||
icon:
|
||
name: Icon
|
||
description: MDI icon for the bonus
|
||
required: false
|
||
selector:
|
||
icon:
|
||
assigned_to:
|
||
name: Assigned To
|
||
description: List of child IDs this bonus applies to (empty for all)
|
||
required: false
|
||
selector:
|
||
object:
|
||
|
||
update_bonus:
|
||
name: Update Bonus
|
||
description: Update an existing bonus definition
|
||
fields:
|
||
bonus_id:
|
||
name: Bonus ID
|
||
description: The ID of the bonus to update
|
||
required: true
|
||
selector:
|
||
text:
|
||
name:
|
||
name: Name
|
||
description: New name for the bonus
|
||
required: false
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: New points value for the bonus
|
||
required: false
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
description:
|
||
name: Description
|
||
description: New description for the bonus
|
||
required: false
|
||
selector:
|
||
text:
|
||
icon:
|
||
name: Icon
|
||
description: New icon for the bonus
|
||
required: false
|
||
selector:
|
||
icon:
|
||
assigned_to:
|
||
name: Assigned To
|
||
description: New list of child IDs this bonus applies to
|
||
required: false
|
||
selector:
|
||
object:
|
||
|
||
remove_bonus:
|
||
name: Remove Bonus
|
||
description: Remove a bonus definition
|
||
fields:
|
||
bonus_id:
|
||
name: Bonus ID
|
||
description: The ID of the bonus to remove
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
apply_bonus:
|
||
name: Apply Bonus
|
||
description: Apply a bonus to a child, awarding points
|
||
fields:
|
||
bonus_id:
|
||
name: Bonus ID
|
||
description: The ID of the bonus to apply
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child to apply the bonus to
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
add_chore:
|
||
name: Add Chore
|
||
description: Create a new chore dynamically, typically from an automation or script
|
||
fields:
|
||
name:
|
||
name: Name
|
||
description: The name of the chore
|
||
required: true
|
||
selector:
|
||
text:
|
||
description:
|
||
name: Description
|
||
description: Optional description of the chore
|
||
required: false
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: Points awarded when this chore is completed
|
||
required: false
|
||
default: 10
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 10000
|
||
mode: box
|
||
assigned_to:
|
||
name: Assigned To
|
||
description: List of child IDs to assign this chore to. Leave empty to assign to all children
|
||
required: false
|
||
selector:
|
||
object:
|
||
time_category:
|
||
name: Time Category
|
||
description: When this chore should be completed
|
||
required: false
|
||
default: anytime
|
||
selector:
|
||
select:
|
||
options:
|
||
- morning
|
||
- afternoon
|
||
- evening
|
||
- night
|
||
- anytime
|
||
difficulty:
|
||
name: Difficulty
|
||
description: Difficulty tier; scales awarded points by the tier multiplier (medium = ×1.0 baseline)
|
||
required: false
|
||
default: medium
|
||
selector:
|
||
select:
|
||
options:
|
||
- easy
|
||
- medium
|
||
- hard
|
||
one_shot:
|
||
name: One-Shot
|
||
description: If true, this is a one-time chore that expires after being completed or at the end of the day
|
||
required: false
|
||
default: false
|
||
selector:
|
||
boolean:
|
||
requires_approval:
|
||
name: Requires Approval
|
||
description: If true, a parent must approve the completion before points are awarded
|
||
required: false
|
||
default: true
|
||
selector:
|
||
boolean:
|
||
expires_in_minutes:
|
||
name: Expires in (minutes)
|
||
description: >-
|
||
Make this a reactive chore with a deadline this many minutes from now — e.g. the washing
|
||
machine finished, empty it within 30 minutes. The chore disappears and is disabled once the
|
||
deadline passes. 0 = no deadline.
|
||
required: false
|
||
default: 0
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 10080
|
||
mode: box
|
||
unit_of_measurement: min
|
||
speed_bonus_points:
|
||
name: Speed bonus points
|
||
description: Extra points awarded if the chore is completed before the deadline. Needs expires_in_minutes.
|
||
required: false
|
||
default: 0
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 10000
|
||
mode: box
|
||
team_size:
|
||
name: Team size
|
||
description: >-
|
||
Make this a teamwork chore that only counts once this many different children have joined
|
||
it. Each child's Done tap joins; when the team is full it submits for all of them. 0 = a
|
||
normal chore.
|
||
required: false
|
||
default: 0
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 10
|
||
mode: box
|
||
team_points_mode:
|
||
name: Team points
|
||
description: >-
|
||
How a teamwork chore pays out — "each" gives every participant the full points, "split"
|
||
divides them evenly (rounded down).
|
||
required: false
|
||
default: each
|
||
selector:
|
||
select:
|
||
options:
|
||
- each
|
||
- split
|
||
team_bonus:
|
||
name: Team bonus
|
||
description: Extra points each participant earns when a teamwork chore is completed.
|
||
required: false
|
||
default: 0
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 10000
|
||
mode: box
|
||
|
||
read_aloud:
|
||
name: Read Chores Aloud
|
||
description: >-
|
||
Speak a child's outstanding chores to a media player — "Ella, you have three things left...".
|
||
Wording is set by the read-aloud templates in the TaskMate panel settings.
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
media_player:
|
||
name: Media player
|
||
description: Where to speak. Falls back to the default set in Settings.
|
||
required: false
|
||
selector:
|
||
entity:
|
||
domain: media_player
|
||
tts_entity:
|
||
name: Text-to-speech entity
|
||
description: Which TTS service to use. Falls back to Settings, then to the only one installed.
|
||
required: false
|
||
selector:
|
||
entity:
|
||
domain: tts
|
||
message:
|
||
name: Message override
|
||
description: Say this instead of the generated summary.
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
spin_roulette:
|
||
name: Spin Chore Roulette
|
||
description: >-
|
||
Pick a random outstanding chore for a child at a points multiplier. Opt-in — enable it and set
|
||
the multiplier and daily spin allowance in the TaskMate panel settings.
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child spinning
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
skip_chore:
|
||
name: Skip Chore
|
||
description: Skip today's assigned child for a rotating chore and move the pointer to the next child in the pool. Ephemeral — tomorrow the rotation resumes its normal schedule.
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the chore to skip
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
set_chore_manual_start:
|
||
name: Set Manual Start Child
|
||
description: Set which child the rotation starts with for a rotating chore. For alternating mode this reorders the pool and resets the anchor; for random/balanced it overrides today's cached assignee only.
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the chore to update
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child who should start the rotation
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
add_task_group:
|
||
name: Add Task Group
|
||
description: Create a task group that coordinates assignments across chores (sticky = same child, spread = different children).
|
||
fields:
|
||
name:
|
||
name: Name
|
||
description: Display name for the group
|
||
required: true
|
||
selector:
|
||
text:
|
||
policy:
|
||
name: Policy
|
||
description: sticky (same child) or spread (different children)
|
||
required: true
|
||
default: sticky
|
||
selector:
|
||
select:
|
||
options:
|
||
- sticky
|
||
- spread
|
||
chore_ids:
|
||
name: Chore IDs
|
||
description: List of chore IDs to include in the group. For sticky, the first chore is the leader.
|
||
required: false
|
||
selector:
|
||
object:
|
||
|
||
update_task_group:
|
||
name: Update Task Group
|
||
description: Update a task group's name, policy, or chore membership.
|
||
fields:
|
||
group_id:
|
||
name: Group ID
|
||
description: The ID of the group to update
|
||
required: true
|
||
selector:
|
||
text:
|
||
name:
|
||
name: Name
|
||
description: New display name
|
||
required: false
|
||
selector:
|
||
text:
|
||
policy:
|
||
name: Policy
|
||
description: New policy (sticky or spread)
|
||
required: false
|
||
selector:
|
||
select:
|
||
options:
|
||
- sticky
|
||
- spread
|
||
chore_ids:
|
||
name: Chore IDs
|
||
description: Replacement list of chore IDs. For sticky, the first chore is the leader.
|
||
required: false
|
||
selector:
|
||
object:
|
||
|
||
remove_task_group:
|
||
name: Remove Task Group
|
||
description: Delete a task group. The member chores are not affected.
|
||
fields:
|
||
group_id:
|
||
name: Group ID
|
||
description: The ID of the group to delete
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
start_timed_task:
|
||
name: Start Timed Task
|
||
description: Start or resume the timer on a timed task
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the timed chore
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child starting the timer
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
leave_team_chore:
|
||
name: Leave Teamwork Chore
|
||
description: Take a child back out of a teamwork chore they joined today, before the team is complete
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the teamwork chore
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child leaving the team
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
complete_next_chore:
|
||
name: Complete Next Chore
|
||
description: >-
|
||
Complete the child's next outstanding chore, in the order the child card shows them. Chores that need a photo, a note, a timer or a team are skipped. Made for watch buttons and shortcuts; normal approval rules apply.
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child whose next chore to complete
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
post_bounty:
|
||
name: Post Bounty
|
||
description: >-
|
||
Post a one-off job to the bounty board for a fixed number of points. Any eligible child can claim it; finishing it goes through the normal approval queue.
|
||
fields:
|
||
title:
|
||
name: Title
|
||
description: "What the job is, e.g. \"Wash the car\""
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: "Fixed points paid when a parent approves the finished job"
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 100000
|
||
mode: box
|
||
description:
|
||
name: Description
|
||
description: "Optional extra detail for the children"
|
||
required: false
|
||
selector:
|
||
text:
|
||
multiline: true
|
||
icon:
|
||
name: Icon
|
||
description: "MDI icon shown on the board"
|
||
required: false
|
||
selector:
|
||
icon:
|
||
expires_at:
|
||
name: Expires at
|
||
description: "Optional date and time the bounty leaves the board if nobody has claimed it. Leave empty for no expiry."
|
||
required: false
|
||
selector:
|
||
datetime:
|
||
eligible_child_ids:
|
||
name: Eligible children
|
||
description: "IDs of the children who may claim it. Empty = every child."
|
||
required: false
|
||
selector:
|
||
object:
|
||
claim_hours:
|
||
name: Claim lock (hours)
|
||
description: "How long a claim lasts before the bounty goes back on the board"
|
||
required: false
|
||
default: 2
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 48
|
||
unit_of_measurement: h
|
||
mode: box
|
||
require_photo:
|
||
name: Require photo
|
||
description: "The child must attach a photo when marking it done"
|
||
required: false
|
||
default: false
|
||
selector:
|
||
boolean:
|
||
notify_children:
|
||
name: Notify children
|
||
description: "Send the \"New bounty\" notification to the eligible children"
|
||
required: false
|
||
default: true
|
||
selector:
|
||
boolean:
|
||
|
||
update_bounty:
|
||
name: Update Bounty
|
||
description: >-
|
||
Edit a bounty. Once it has been claimed, only its points and expiry can change.
|
||
fields:
|
||
bounty_id:
|
||
name: Bounty ID
|
||
description: "The ID of the bounty to edit"
|
||
required: true
|
||
selector:
|
||
text:
|
||
title:
|
||
name: Title
|
||
description: "What the job is, e.g. \"Wash the car\""
|
||
required: false
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: "Fixed points paid when a parent approves the finished job"
|
||
required: false
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 100000
|
||
mode: box
|
||
description:
|
||
name: Description
|
||
description: "Optional extra detail for the children"
|
||
required: false
|
||
selector:
|
||
text:
|
||
multiline: true
|
||
icon:
|
||
name: Icon
|
||
description: "MDI icon shown on the board"
|
||
required: false
|
||
selector:
|
||
icon:
|
||
expires_at:
|
||
name: Expires at
|
||
description: "Optional date and time the bounty leaves the board if nobody has claimed it. Leave empty for no expiry."
|
||
required: false
|
||
selector:
|
||
datetime:
|
||
eligible_child_ids:
|
||
name: Eligible children
|
||
description: "IDs of the children who may claim it. Empty = every child."
|
||
required: false
|
||
selector:
|
||
object:
|
||
claim_hours:
|
||
name: Claim lock (hours)
|
||
description: "How long a claim lasts before the bounty goes back on the board"
|
||
required: false
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 48
|
||
unit_of_measurement: h
|
||
mode: box
|
||
require_photo:
|
||
name: Require photo
|
||
description: "The child must attach a photo when marking it done"
|
||
required: false
|
||
selector:
|
||
boolean:
|
||
notify_children:
|
||
name: Notify children
|
||
description: "Send the \"New bounty\" notification to the eligible children"
|
||
required: false
|
||
selector:
|
||
boolean:
|
||
|
||
remove_bounty:
|
||
name: Remove Bounty
|
||
description: >-
|
||
Take a bounty off the board. Not allowed while a finished job waits for approval.
|
||
fields:
|
||
bounty_id:
|
||
name: Bounty ID
|
||
description: "The ID of the bounty to remove"
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
claim_bounty:
|
||
name: Claim Bounty
|
||
description: >-
|
||
Claim a bounty for a child, locking it to them for its claim period. A child can hold one claim at a time.
|
||
fields:
|
||
bounty_id:
|
||
name: Bounty ID
|
||
description: "The ID of the bounty to claim"
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: "The ID of the child claiming it"
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
give_back_bounty:
|
||
name: Give Back Bounty
|
||
description: >-
|
||
Hand a claimed bounty back to the board so another child can take it
|
||
fields:
|
||
bounty_id:
|
||
name: Bounty ID
|
||
description: "The ID of the claimed bounty"
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: "The ID of the child who claimed it"
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
complete_bounty:
|
||
name: Complete Bounty
|
||
description: >-
|
||
Mark a claimed bounty as done. It goes to the approval queue like a chore.
|
||
fields:
|
||
bounty_id:
|
||
name: Bounty ID
|
||
description: "The ID of the claimed bounty"
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: "The ID of the child who claimed it"
|
||
required: true
|
||
selector:
|
||
text:
|
||
photo_url:
|
||
name: Photo URL
|
||
description: "Photo of the finished job (required when the bounty asks for one)"
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
pause_timed_task:
|
||
name: Pause Timed Task
|
||
description: Pause a running timed task timer
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the timed chore
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child pausing the timer
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
stop_timed_task:
|
||
name: Stop Timed Task
|
||
description: Stop a timed task timer and submit for approval
|
||
fields:
|
||
chore_id:
|
||
name: Chore ID
|
||
description: The ID of the timed chore
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child stopping the timer
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
add_badge:
|
||
name: Add Badge
|
||
description: Create a custom badge.
|
||
fields:
|
||
name:
|
||
name: Name
|
||
required: true
|
||
example: "Holiday Helper"
|
||
selector:
|
||
text:
|
||
description:
|
||
name: Description
|
||
example: "Earned for big effort during school holidays"
|
||
selector:
|
||
text:
|
||
icon:
|
||
name: Icon
|
||
example: "mdi:beach"
|
||
selector:
|
||
icon:
|
||
tier:
|
||
name: Tier
|
||
default: bronze
|
||
selector:
|
||
select:
|
||
options:
|
||
- bronze
|
||
- silver
|
||
- gold
|
||
- platinum
|
||
point_bonus:
|
||
name: Point bonus
|
||
default: 0
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 1000
|
||
step: 1
|
||
mode: box
|
||
criteria:
|
||
name: Criteria
|
||
description: "List of metric / operator / value dicts (operator one of >=, ==, <=, >, <, !=). Empty = manual-award only."
|
||
selector:
|
||
object:
|
||
combinator:
|
||
name: Combinator
|
||
description: "How multiple criteria combine: AND (all must pass) or OR (any). Default AND."
|
||
default: AND
|
||
selector:
|
||
select:
|
||
options:
|
||
- AND
|
||
- OR
|
||
assigned_to:
|
||
name: Assigned to
|
||
description: "List of child IDs (empty = all)"
|
||
selector:
|
||
object:
|
||
notify_on_earn:
|
||
name: Notify on earn
|
||
default: true
|
||
selector:
|
||
boolean:
|
||
|
||
update_badge:
|
||
name: Update Badge
|
||
description: Update an existing badge. For built-ins, only point_bonus, tier, assigned_to, enabled, notify_on_earn are editable.
|
||
fields:
|
||
badge_id:
|
||
name: Badge ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
name:
|
||
selector:
|
||
text:
|
||
description:
|
||
selector:
|
||
text:
|
||
icon:
|
||
selector:
|
||
icon:
|
||
tier:
|
||
selector:
|
||
select:
|
||
options:
|
||
- bronze
|
||
- silver
|
||
- gold
|
||
- platinum
|
||
point_bonus:
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 1000
|
||
step: 1
|
||
mode: box
|
||
criteria:
|
||
selector:
|
||
object:
|
||
combinator:
|
||
selector:
|
||
select:
|
||
options:
|
||
- AND
|
||
- OR
|
||
assigned_to:
|
||
selector:
|
||
object:
|
||
enabled:
|
||
selector:
|
||
boolean:
|
||
notify_on_earn:
|
||
selector:
|
||
boolean:
|
||
|
||
remove_badge:
|
||
name: Remove Badge
|
||
description: Remove a custom badge. Built-ins cannot be removed.
|
||
fields:
|
||
badge_id:
|
||
name: Badge ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
award_badge_manually:
|
||
name: Award Badge Manually
|
||
description: Manually award a badge to a child.
|
||
fields:
|
||
badge_id:
|
||
name: Badge ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
revoke_badge:
|
||
name: Revoke Badge
|
||
description: Revoke an awarded badge. If a point bonus was credited, it is reversed.
|
||
fields:
|
||
awarded_badge_id:
|
||
name: Awarded Badge ID
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
rebuild_badges:
|
||
name: Rebuild Badges
|
||
description: Re-evaluate all badges across all children silently (no notifications, no point bonuses).
|
||
|
||
# Wishlist (#932)
|
||
add_wish:
|
||
name: Add Wish
|
||
description: A child adds something they want to save for. It waits for a parent to approve it.
|
||
fields:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child making the wish
|
||
required: true
|
||
selector:
|
||
text:
|
||
name:
|
||
name: Name
|
||
description: What the child wants
|
||
required: true
|
||
selector:
|
||
text:
|
||
target:
|
||
name: Target
|
||
description: Suggested number of points it costs. The parent can change it when approving.
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 100000
|
||
mode: box
|
||
link:
|
||
name: Link
|
||
description: Optional web address (http or https) for the thing
|
||
required: false
|
||
selector:
|
||
text:
|
||
type: url
|
||
photo_url:
|
||
name: Picture
|
||
description: Optional picture just uploaded through the TaskMate photo endpoint
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
withdraw_wish:
|
||
name: Withdraw Wish
|
||
description: A child takes back a wish that is still waiting for approval, or clears one that was declined.
|
||
fields:
|
||
wish_id:
|
||
name: Wish ID
|
||
description: The ID of the wish
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child whose wish it is
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
move_points_to_wish:
|
||
name: Move Points to Wish
|
||
description: Move points from a child's spendable balance into one of their approved wishes.
|
||
fields:
|
||
wish_id:
|
||
name: Wish ID
|
||
description: The ID of the wish
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child whose wish it is
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: How many points to move (capped at the balance and at what the wish still needs)
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 100000
|
||
mode: box
|
||
|
||
take_points_from_wish:
|
||
name: Take Points from Wish
|
||
description: Give some of a child's own saved points back from a wish. Pledged points never come out.
|
||
fields:
|
||
wish_id:
|
||
name: Wish ID
|
||
description: The ID of the wish
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child whose wish it is
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: How many saved points to take back (capped at what the child saved)
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 100000
|
||
mode: box
|
||
|
||
request_wish_redeem:
|
||
name: Ask to Redeem Wish
|
||
description: A fully funded wish becomes a reward claim waiting for the parent's approval.
|
||
fields:
|
||
wish_id:
|
||
name: Wish ID
|
||
description: The ID of the wish
|
||
required: true
|
||
selector:
|
||
text:
|
||
child_id:
|
||
name: Child ID
|
||
description: The ID of the child whose wish it is
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
approve_wish:
|
||
name: Approve Wish
|
||
description: Turn a waiting wish into a savings goal, optionally at a different target.
|
||
fields:
|
||
wish_id:
|
||
name: Wish ID
|
||
description: The ID of the wish
|
||
required: true
|
||
selector:
|
||
text:
|
||
target:
|
||
name: Target
|
||
description: Points the wish costs. Leave empty to keep the child's suggestion.
|
||
required: false
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 100000
|
||
mode: box
|
||
|
||
decline_wish:
|
||
name: Decline Wish
|
||
description: Say no to a wish. Saved points go back to the child and pledges are voided.
|
||
fields:
|
||
wish_id:
|
||
name: Wish ID
|
||
description: The ID of the wish
|
||
required: true
|
||
selector:
|
||
text:
|
||
reason:
|
||
name: Reason
|
||
description: Optional reason shown to the child
|
||
required: false
|
||
selector:
|
||
text:
|
||
multiline: true
|
||
|
||
pledge_to_wish:
|
||
name: Pledge to Wish
|
||
description: Record points a relative chips in towards a child's wish. They never touch any balance.
|
||
fields:
|
||
wish_id:
|
||
name: Wish ID
|
||
description: The ID of the wish
|
||
required: true
|
||
selector:
|
||
text:
|
||
name:
|
||
name: From
|
||
description: Who the pledge is from, e.g. Grandma
|
||
required: true
|
||
selector:
|
||
text:
|
||
points:
|
||
name: Points
|
||
description: How many points to pledge (capped at what the wish still needs)
|
||
required: true
|
||
selector:
|
||
number:
|
||
min: 1
|
||
max: 100000
|
||
mode: box
|
||
message:
|
||
name: Message
|
||
description: Optional message for the child
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
remove_wish_pledge:
|
||
name: Remove Wish Pledge
|
||
description: Undo a pledge. Allowed until the wish is redeemed.
|
||
fields:
|
||
wish_id:
|
||
name: Wish ID
|
||
description: The ID of the wish
|
||
required: true
|
||
selector:
|
||
text:
|
||
pledge_id:
|
||
name: Pledge ID
|
||
description: The ID of the pledge to remove
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
remove_wish:
|
||
name: Remove Wish
|
||
description: Delete a wish. Saved points go back to the child and pledges are voided.
|
||
fields:
|
||
wish_id:
|
||
name: Wish ID
|
||
description: The ID of the wish
|
||
required: true
|
||
selector:
|
||
text:
|
||
|
||
start_inspection:
|
||
name: Start Inspection
|
||
description: >-
|
||
Flag a chore approved in the last 24 hours for a surprise inspection. Pass or fail it before the window closes; an undecided inspection closes quietly.
|
||
fields:
|
||
completion_id:
|
||
name: Completion ID
|
||
description: The ID of the approved chore completion to inspect
|
||
required: true
|
||
selector:
|
||
text:
|
||
bonus:
|
||
name: Bonus
|
||
description: Points paid if it passes. Defaults to the Settings value.
|
||
required: false
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 10000
|
||
mode: box
|
||
window:
|
||
name: Window
|
||
description: "How long you have to check it: 1h, 2h, 4h or bed (until bedtime). Defaults to the Settings value."
|
||
required: false
|
||
selector:
|
||
select:
|
||
options:
|
||
- "1h"
|
||
- "2h"
|
||
- "4h"
|
||
- "bed"
|
||
tell_child:
|
||
name: Tell the child
|
||
description: Show "Inspection coming" on the child's card now. Turn off for a secret check.
|
||
required: false
|
||
selector:
|
||
boolean:
|
||
|
||
pass_inspection:
|
||
name: Pass Inspection
|
||
description: The inspected chore passed. Pays the bonus as a normal points entry and celebrates on the child's card.
|
||
fields:
|
||
inspection_id:
|
||
name: Inspection ID
|
||
description: The ID of the open inspection
|
||
required: true
|
||
selector:
|
||
text:
|
||
bonus:
|
||
name: Bonus
|
||
description: Points to pay. Defaults to the bonus set when the inspection started.
|
||
required: false
|
||
selector:
|
||
number:
|
||
min: 0
|
||
max: 10000
|
||
mode: box
|
||
note:
|
||
name: Note
|
||
description: Optional note shown to the child
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
fail_inspection:
|
||
name: Fail Inspection
|
||
description: The inspected chore didn't pass. No points are taken. It can be sent back to redo; the redo earns nothing extra.
|
||
fields:
|
||
inspection_id:
|
||
name: Inspection ID
|
||
description: The ID of the open inspection
|
||
required: true
|
||
selector:
|
||
text:
|
||
redo:
|
||
name: Send back to redo
|
||
description: Put the chore back on the child's list as not done for today. Defaults to the Settings value.
|
||
required: false
|
||
selector:
|
||
boolean:
|
||
note:
|
||
name: Note
|
||
description: Optional note shown to the child (what needs fixing)
|
||
required: false
|
||
selector:
|
||
text:
|
||
|
||
cancel_inspection:
|
||
name: Cancel Inspection
|
||
description: Call off an open inspection, as if it never started.
|
||
fields:
|
||
inspection_id:
|
||
name: Inspection ID
|
||
description: The ID of the open inspection
|
||
required: true
|
||
selector:
|
||
text:
|