Skip to content

iluebbe/maintenance_supporter

Repository files navigation

Maintenance Supporter

hacs_badge 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.

What can it do for you?

"The HVAC filter is due every 3 months." Create the object once (or pick it from 13 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.

"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 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. Attach a photo of the meter display when completing — it lands in the task's history.

"What did the car cost me this year?" Every completion records cost and duration. Budgets with alerts, per-object cost history, a printable PDF report, 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 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 for your notification service — everything else has sensible defaults.
  3. Create your first object: open the new Maintenance entry in the sidebar and click From template — pick Car, HVAC, Washing machine, Pool, … and get an object with typical tasks pre-configured. Or click New Object and build your own.
  4. Done. Tasks show up on the panel dashboard, in the calendar, in the To-do list, and as sensors you can automate on. When something is due, you'll hear about it.

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
Scheduling Intervals (days→years), calendar patterns (weekdays, nth weekday, day of month, last/business day ±offset), one-time, manual; drift-free planned anchoring; time-of-day precision Features → Task Management
Sensor triggers Threshold, counter, runtime, state-change, compound (AND/OR), multi-entity; auto-complete on sensor recovery Features → Triggers
Adaptive scheduling Learns real intervals (EWA + Weibull), seasonal factors, degradation prediction, feedback loop Features → Adaptive
Notifications Any notify.* target, per-user routing, actionable mobile buttons, quiet hours, bundling, lead-time reminders, weekly digest, warranty reminders, vacation mode Features → Notifications
Household Priorities, labels, checklists, user assignment + rotation, operator (read-only) mode, native To-do entity Features → Task Management
History & money Full history with cost/duration/photos, Missed-vs-skipped, budgets + alerts, PDF report, CSV/JSON import & export Features → Data Management
Documents Attach manuals/invoices/photos per object — backup-safe, deduplicated, searchable, linkable to tasks (PDF page jump) Features → Documents
Quick actions QR codes (view / complete / one-tap quick-complete), NFC tags, on-complete service calls back to the device Features → Completion Actions
Dashboards Sidebar panel (Today view, / command palette, bulk actions), Lovelace card, calendar card, auto-generated dashboard strategies Examples → Dashboards
Localization Full UI in 18 languages across panel, config flow, and notifications Features → Frontend

Entities & automation hooks

Each task is a sensor (ok / due_soon / overdue / triggered) plus a binary sensor (device_class: problem) and complete/skip/reset buttons. Global summary sensors count what needs attention, 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 four services (complete, skip, reset, export_data) cover scripting.

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
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 (59 commands), tests
ROADMAP.md What's planned and what shipped — ideas welcome via Discussions
CHANGELOG.md Release history

Requirements

  • Home Assistant 2025.7.0 or newer
  • No external dependencies

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 — currently Silver, 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

License

Contributing

Security policy

Stars

40 stars

Watchers

3 watching

Forks

Packages

 
 
 

Contributors