Chore Wheel Card
A Home Assistant Lovelace custom card that spins a carnival-style wheel to pick who does chores. Each option appears twice on opposite sides to keep things playful and unpredictable.
Install
- Build the card:
npm install
npm run build
-
Copy
dist/chore-wheel-card.jsto your Home Assistantwww/folder. -
Add a resource in Lovelace:
url: /local/chore-wheel-card.js
type: module
Usage
type: custom:chore-wheel-card
title: Chore Wheel
options:
- Felix
- Jenny
- label: Felix
rewardLabel: Gets a reward
- label: Jenny
rewardLabel: Gets a reward
Configuration
| Name | Type | Default | Description |
|---|---|---|---|
title |
string | - | Optional card title |
options |
array | - | List of options (string or object) |
repeat_mode |
string | mirror |
Duplicates options to opposite sides |
spin |
object | { min_rotations: 4, max_rotations: 7, duration_ms: [3500, 5500] } |
Spin behavior |
reward_effects |
object | { enabled: true, confetti: true, shimmer: true, sound: false } |
Reward animations |
backend |
object | - | Optional Home Assistant service/entity hook |
style |
object | - | Optional visual overrides |
Option object
- label: Felix
rewardLabel: Gets a reward
color: "#F5B041"
textColor: "#2B201C"
If `textColor` is omitted, the card will auto-pick a readable light/dark color based on the slice color.
Backend hook (optional)
backend:
service: input_text.set_value
service_data:
entity_id: input_text.chore_winner
The card will set value to a JSON string containing the label, optional reward label, and timestamp.
Development
npm run dev
Load dist/chore-wheel-card.js as a resource and refresh Lovelace.
Description
Languages
TypeScript
97.6%
JavaScript
2.4%