Skip to content

About

Home Assistant custom integration for tracking and managing maintenance tasks with adaptive scheduling, sensor-based triggers, and notifications

Topics

Resources

Contributing

Security policy

Stars

139 stars

Watchers

1 watching

Forks

Latest commit

 

History

1,484 Commits

Folders and files

Repository files navigation

Maintenance Supporter

hacs_badge Active installs GitHub Release Tests Coverage Community Forum

Everything in your home that needs regular upkeep — filters, pumps, cars, appliances, smoke detectors — tracked in one place inside Home Assistant. Schedule by time or by real sensor data, get reminded, check things off from your phone, and keep the full history of what was done and what it cost.

Not the same as HA's built-in Maintenance Dashboard (2026.5+). That dashboard auto-discovers low-battery devices — narrow scope, zero config. Maintenance Supporter tracks user-defined maintenance with schedules, sensor triggers, history, costs, and notifications. They pair well: HA's built-in handles batteries, this integration handles everything else.

Dashboard Task Detail Mobile
Overview Task Detail Mobile

More screenshots in the feature reference.

See it in action

Create an object from a template

Pick a template, get a fully configured object with tasks — more short clips (completing a task, filtering the calendar) in FEATURES.md → In action.

What can it do for you?

"The HVAC filter is due every 3 months." Create the object once (or pick it from 97 ready-made templates), give it a task with an interval — days, weeks, months, or specific patterns like first Saturday or last business day of the month. You get a reminder before it's due, and completing it takes one tap — optionally with notes, cost, duration, and a photo of the work. Tapped the wrong row? Undo in the toast takes it back.

"My vacuum already knows when its filter is worn." Suggested setups (Beta) discovers devices of 262 supported integrations — vacuums, robotic mowers, printers, kitchen appliances, heating, 3D printers, cars, e-bikes, wallboxes, locks, pool and spa, NAS — and sets them up in one click with sensor triggers pre-wired: percent remaining, countdowns, wear counters, usage intervals (service every 15,000 km / blades every 100 mowing-hours), appliance events (dishwasher "salt nearly empty"), and even engine-counted runtime for devices that expose no counters at all. Every signature is verified against the integration's source code. Where the device counts a consumable itself (robot vacuums, mowers, litter boxes, air handlers), completing the task also presses the device's own reset button, so its counter starts again at full life.

"Service the pump after 200 hours of runtime — not by the calendar." Bind a task to a real sensor: accumulated runtime, a counter (e.g. odometer kilometers), a threshold (filter airflow below 60 %), state-change cycles, or a combination with AND/OR logic. The task triggers when the device says it's time. With adaptive scheduling (Settings → Advanced Features) it even learns your real intervals from history and suggests better ones.

"Whose turn is it to mow the lawn?" Assign tasks to household members with per-user notifications — or share a task between several people and let responsibility rotate automatically on each completion. Non-admin users get a safe read-only panel where they can still check things off. Tasks also appear in a native To-do list, so "Assist, mark the filter change done" just works.

"Read the utility meters at the end of every month." The Reading task type is made for recording values, and the schedule supports last day of the month, last business day (public-holiday-aware when HA's Workday integration is set up), and ±N-day offsets. One task can carry several named readings (water cold, water warm, electricity, …) — one field each when completing, each with its own delta in the history. Attach photos of the meter displays when completing — they land in the task's history.

"What did the car cost me this year?" Every completion records cost and duration. Budgets with alerts (Advanced Features), per-object cost history, history and costs per Home Assistant area (the whole garage, the whole flat) with a printable area report, a printable PDF report per object, and CSV/JSON export for your spreadsheet. Warranty dates get a colour-coded chip — and an optional reminder before they expire.

"I'm standing at the machine — I don't want to open an app." Print a QR code and stick it on the device: scanning opens the task, or with quick-complete (defaults set on the task, with Completion actions on in Advanced Features) records the completion in one tap. NFC tags work too. Manuals and invoices can be attached to any object (backup-safe, deduplicated) so the PDF is one click away from the task you're doing.

Get started in 5 minutes

Maintenance Supporter is in the HACS default store — no custom repository needed.

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

  1. Install: open HACS, search for "Maintenance Supporter", install, and restart Home Assistant. (Manual install: copy custom_components/maintenance_supporter/ into your config/custom_components/.)
  2. Set up: Settings → Devices & Services → Add Integration → "Maintenance Supporter". The short wizard asks whether to send notifications (off until you tick it) and where — everything else has sensible defaults.
  3. Create your first object: open the new Maintenance entry in the sidebar and pick Add ▾ → From template — choose Car, HVAC, Washing machine, Pool, … and get an object with typical tasks pre-configured. Or Add ▾ → New object and build your own. Where a template mentions legal duties or intervals, that is guidance researched in September 2026, not legal advice — rules vary by region and change; local regulations and the manufacturer's instructions take precedence.
  4. Done. Tasks show up on the panel dashboard, in the calendar, in the To-do list, and as sensors you can automate on. With notifications switched on, you'll hear about it when something is due.

New here? The Getting started guide takes you from the first task to the full toolbox in seven levels — reminders, sensor triggers, sharing chores, parts and costs, automations — each one building on the last.

Prefer talking to an assistant? A portable LLM setup skill lets Claude Code / Assist / any MCP-style agent discover your devices and create objects + tasks for you — always previewing before it writes.

Feature overview

Area What you get Details
Suggested setups 288 integrations / 603 verified signatures with pre-wired sensor triggers — boilers, vacuums, cars, locks, printers, purifiers and more; completing a task presses the device's own counter reset where it has one (2.95) Supported integrations
Battery fleet One task for all 30–70+ batteries — grouped shopping list, discharge-trend forecast with per-battery sparklines, mark-all-replaced, spare-part stock; rechargeables are tracked for charging, never shopped. Best with Battery Notes; native device_class: battery devices work too (degraded) Features → Battery Fleet
Scheduling Intervals (days→years), calendar patterns (weekdays, nth weekday, day of month, last/business day ±offset), the events of a Home Assistant calendar entity (once per event — waste collection), one-time, manual; seasonal month windows, finite series (ends after N times / on a date), postpone a single occurrence; drift-free planned anchoring; time-of-day precision (Advanced Features); live "next three dates" preview while editing Features → Task Management
Sensor triggers Threshold, counter, runtime, state-change, compound (AND/OR), multi-entity; auto-complete on sensor recovery; adopt HA device_class: problem sensors as tasks Features → Triggers
Adaptive scheduling Learns real intervals (EWA + Weibull), seasonal factors, feedback loop — switched on in Settings → Advanced Features; sensor degradation predictions run for every sensor task Features → Adaptive
Notifications Any notify.* target, per-user routing, actionable mobile buttons, icons per maintenance type (overridable per task), quiet hours, bundling, lead-time reminders, weekly digest, warranty reminders, vacation mode Features → Notifications
Places An object can live at another Home Assistant zone (allotment, holiday home, boat): its reminders wait until somebody is there, and whoever arrives gets a message with what is due Features → Places
Household Objects inside objects (both cars inside Vehicles), priorities, labels, checklists (Advanced Features), user assignment + rotation (whose turn it is shows on the card), operator (read-only) mode, native To-do entity, Markdown notes on tasks and objects Features → Task Management
History & money Full history with cost/duration/photos, Missed-vs-skipped, budgets + alerts (Advanced Features), PDF report per object, history + costs per area with an area report (2.95), CSV/JSON import & export Features → Areas
Documents Attach manuals/invoices/photos per object — backup-safe, deduplicated, searchable, linkable to tasks (PDF page jump) Features → Documents
Spare parts Parts inventory: identifiers (MPN, GTIN/EAN), storage location, stock + reorder threshold, auto “buy” tasks with shopping links, restock on completion, Use for what goes outside a task, stock sensors, buy reminders mirrored into the HA shopping list you pick in Settings (check one off at the store, the part is restocked). Several objects can share one stock, so identical appliances draw on one real pile Features → Task Management
Quick actions QR codes (view / complete / one-tap quick-complete), NFC tags — optionally as proof of presence (a task only a scan at the thing itself may complete), on-complete service calls back to the device (quick-complete defaults and your own service calls need Completion actions in Advanced Features) Features → Completion Actions
Dashboards Sidebar panel (Today view, global search across objects, tasks, parts, document contents and notes, bulk actions, saved filter views), Lovelace card, calendar card, battery-fleet card, the whole panel as a card for a dashboard subview (2.84+), auto-generated dashboard strategies Examples → Dashboards
Localization Full UI in 22 languages across panel, config flow, and notifications; dates, times and numbers follow your HA profile formats Features → Frontend

Entities & automation hooks

Each task is a sensor (ok / due_soon / overdue / triggered, plus paused / archived) with a binary sensor (device_class: problem), complete/skip/reset buttons and two opt-in companions — a next-due timestamp and a numeric days-until-due countdown for gauge and progress-bar cards (both disabled by default). Global summary sensors count what needs attention, alongside parts to reorder, batteries to replace and document storage; spare parts get their own stock sensors, a calendar entity feeds your calendar cards, and a to-do entity mirrors open work. Lifecycle events (…_task_completed, …_trigger_activated, …) fire on every path, and fourteen services — complete / skip / reset / export_data, full task CRUD (add_object, add_task, update_task, delete_task, list_tasks) and the spare-part actions (part_restock, part_use, part_purchase, part_ready_again, part_dispose) — cover scripting. 15 Assist intents answer "what maintenance is due?" (this week, in the kitchen), complete, skip, postpone or snooze tasks, record readings and notes, read out instructions, say whose turn it is, check stock, what to buy and which batteries are low, and undo a misheard command by voice — LLM-based Assist picks them up automatically; classic Assist uses the shipped sentence files (Features → Voice & Assist).

On HA 2026.7+ the new automation editor additionally offers ready-made building blocks — "A maintenance task became overdue" as a pickable trigger, "…needs attention" as a condition — so automations need neither entity names nor YAML.

Entity IDs follow sensor.<object>_<task> (no shared prefix) — filter with integration_entities('maintenance_supporter') in templates. Full reference with copy-paste automations: EXAMPLES.md.

Documentation

Document Contents
GETTING_STARTED.md Onboarding: the features in seven levels of increasing complexity, from the first task to automations
FEATURES.md The complete feature catalogue + screenshots + platform/entity reference
CONFIGURATION.md Every configurable parameter (global, per-object, per-task, triggers)
EXAMPLES.md Use-case recipes, automation YAML, cards & dashboard strategies
TROUBLESHOOTING.md Known limitations, common issues, debug logging, uninstalling
ARCHITECTURE.md Internals: data flow, trigger engine, WebSocket API (114 commands), tests
ROADMAP.md What's planned and what shipped — ideas welcome via Discussions
CHANGELOG.md Release history

Requirements

  • Home Assistant 2026.7.0 or newer
  • One Python dependency, installed automatically by Home Assistant: pypdf (used to cut a single page out of a linked manual for the work sheet)

Development

bash scripts/init-dev.sh     # one-command Docker dev setup (login: dev/dev at :8125)
docker exec ha-maint sh -c "cd /config && python -m pytest tests/ -q"

The integration tracks HA's integration quality scale — self-assessed Platinum (every Bronze → Platinum rule done or exempt with a reason), with the per-rule self-assessment in quality_scale.yaml.

Details (faketime, demo data, e2e): ARCHITECTURE.md → Development.

Community

Questions, feedback, or want to share your setup? Join the Home Assistant Community Forum thread or open a Discussion.

License

MIT

About

Home Assistant custom integration for tracking and managing maintenance tasks with adaptive scheduling, sensor-based triggers, and notifications

Topics

Resources

Contributing

Security policy

Stars

139 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages