-
-
Notifications
You must be signed in to change notification settings - Fork 5
Technical: Dashboard Generation
Target audience: Developers and advanced maintainers Covers: Generator contract, view model behavior, overwrite semantics, and diagnostics
This page is the technical contract for ChoreOps dashboard generation.
Use it to:
- Understand create/update/delete behavior
- Diagnose missing/stale/broken generated dashboards
- Build custom UI or automation flows that rely on generated entities/views
Dashboard generation is managed through ChoreOps Options Flow:
-
Manage Dashboard→Create Dashboard -
Manage Dashboard→Update Dashboard -
Manage Dashboard→Delete Dashboard
The generator writes/updates Lovelace dashboard definitions via Home Assistant dashboard APIs.
Dashboard release handling is flow-scoped and deterministic:
- Step 1 resolves release mode to one concrete
effective_release_ref. - Step 1 prepares release assets (registry, templates, translations, preferences).
- Prepared assets are applied to local vendored runtime dashboard paths.
- Step 3 executes with the prepared release context (no dynamic re-resolution).
Mode behavior:
- Explicit release tag: strict pin
- Latest stable/latest compatible: resolve once, then pin
- Current installed: use local registry
release_version
Use this workflow for template/registry updates.
- Update canonical assets in
choreops-dashboards:dashboard_registry.jsontemplates/translations/preferences/
- In
choreops, mirror assets into vendored runtime:python utils/sync_dashboard_assets.py
- Verify parity gate locally:
python utils/sync_dashboard_assets.py --check
- Run integration validation gates before merge:
./utils/quick_lint.sh --fix- targeted dashboard tests
Authoritative references:
- Dashboard template guide (repo)
- Dashboard registry gap remediation plan (repo)
- Dashboard registry architecture standards (repo)
- Dashboard repo README
Depending on selected options, the generator can produce:
- Assignee views (for selected assignees/profiles)
- Optional admin views
Admin view path conventions commonly include:
- Shared admin path:
admin - Per-assignee admin path:
admin-<assignee-slug>
Paths may vary when Home Assistant resolves collisions.
Generator-managed content is authoritative for generated dashboards.
-
Update Dashboardmay replace generated view/card sections - Manual edits inside generated sections are not guaranteed to persist
- Custom long-lived modifications are safer in separately managed custom dashboards
This is the expected tradeoff for deterministic regeneration.
Generated dashboards rely on frontend cards documented in the canonical prerequisites list:
Dependency handling is template-driven:
- missing recommended dependencies warn and allow continue,
- each missing dependency row is prefixed with
❌, - missing required dependencies trigger a confirmation step before continuing.
Generated dashboard templates use translation sensors to render localized terms across languages.
- Dashboard helper entities provide a
translation_sensorreference - Templates resolve localized strings from the referenced sensor (for example from translation attributes)
- This allows one generated dashboard model to adapt to different user language settings
If translation-sensor references are missing or stale, labels can fall back to placeholder/error text.
Generated cards consume runtime entities and attributes created by ChoreOps.
Primary references:
Do not hardcode assumptions about entity IDs. Resolve from Home Assistant runtime/registry.
Shared admin layouts may depend on a selector entity for assignee context switching.
If admin switching appears broken:
- Verify selector entity exists and is enabled
- Verify selected assignees still exist and are active
- Re-run
Update Dashboard
Before troubleshooting dashboard rendering/layout behavior, verify core ChoreOps operations are healthy:
- Confirm core entities are present and updating in Developer Tools
- Confirm basic action flows (for example claim/redeem/approve paths) operate correctly
- Confirm related helper entities exist for the affected assignee/profile
If these core checks fail, troubleshoot integration state first using:
Likely missing frontend dependencies. Install cards and reload dashboard.
Likely mismatch between selected assignees/admin layout and current options. Re-run update with corrected selections.
Possible path/name collision or browser cache masking.
- Check dashboard list and paths in Home Assistant
- Hard refresh browser
- Re-run update and inspect logs
Generator rework includes dedupe/idempotent handling for historical duplicate paths. If behavior still looks inconsistent, run update/delete/create from the generator and re-check dashboard registry state.
Implementation details are tracked in the in-repo dashboard initiative documents.
Last Updated: February 2026
🚀 Getting Started
- Home
- Installation
- Migration from KidsChores
- Quick Start
- Quick Start Scenarios
- Dashboard Generation
- Backup & Restore
⚙️ Configuration
- General Options
- Points
- Users
- Chores
- Rewards
- Badges - Overview
- Badges - Cumulative
- Badges - Periodic
- Achievements
- Challenges
- Notifications
🔧 Services
💡 Tips & Tricks
- Template Cookbook for Chores, Rewards, and Approvals
- Auto-Approve Chores
- Calendar Event Due Dates
- NFC Claim Workflow
- Overdue Penalty Automation
- Critical Overdue Alerts
📖 Advanced Topics
- Dashboard Integration
- Access Control
- Chores - Advanced
- Badge Cumulative - Advanced
- Badge Periodic - Advanced
📚 Technical Reference
- Points
- Users
- Entities & States
- Chores
- Badges
- Configuration Detail
- Dashboard Generation
- Notifications
- Weekly Activity Reports
👩🔧 Troubleshooting