401 lines
12 KiB
YAML
401 lines
12 KiB
YAML
complete:
|
|
name: Complete Maintenance
|
|
description: Mark a maintenance task as completed.
|
|
fields:
|
|
entity_id:
|
|
name: Entity
|
|
description: One or more maintenance sensor entities to complete.
|
|
required: true
|
|
selector:
|
|
entity:
|
|
domain: sensor
|
|
integration: maintenance_supporter
|
|
multiple: true
|
|
notes:
|
|
name: Notes
|
|
description: Optional notes about the maintenance performed.
|
|
selector:
|
|
text:
|
|
cost:
|
|
name: Cost
|
|
description: Cost of the maintenance performed. A negative amount is a credit — money back, such as the old unit sold.
|
|
selector:
|
|
number:
|
|
min: -1000000
|
|
max: 1000000
|
|
step: 0.01
|
|
mode: box
|
|
duration:
|
|
name: Duration (minutes)
|
|
description: Duration of the maintenance in minutes.
|
|
selector:
|
|
number:
|
|
min: 0
|
|
# Keep in step with MAX_DURATION_MINUTES (const.py) — the service
|
|
# schema accepts up to a year; a lower UI ceiling rejected multi-day
|
|
# jobs the WS/panel path accepts (bug review 2026-09-04).
|
|
max: 525600
|
|
step: 1
|
|
mode: box
|
|
reading_value:
|
|
name: Reading value
|
|
description: Recorded value for reading-type tasks (meter reading, level check).
|
|
selector:
|
|
number:
|
|
mode: box
|
|
step: any
|
|
reading_values:
|
|
name: Readings
|
|
description: "Values for a task with several named readings, keyed by reading name (e.g. Water cold: 123.4)."
|
|
selector:
|
|
object:
|
|
completed_by:
|
|
name: Completed by
|
|
description: Person who performed the maintenance (must be linked to a Home Assistant user). When omitted, the user triggering the call is recorded.
|
|
selector:
|
|
entity:
|
|
domain: person
|
|
completed_at:
|
|
name: Completed at
|
|
description: When the maintenance was actually performed — use it to backfill a past completion. Must not be in the future; when omitted, now is recorded.
|
|
selector:
|
|
datetime:
|
|
via_tag_scan:
|
|
name: Via tag scan
|
|
description: Assert that this completion came from a physical tag/QR scan the automation handled itself — satisfies a task's "Only complete by scanning the tag" setting.
|
|
selector:
|
|
boolean:
|
|
|
|
reset:
|
|
name: Reset Maintenance
|
|
description: Reset the last performed date of a maintenance task.
|
|
fields:
|
|
entity_id:
|
|
name: Entity
|
|
description: The maintenance sensor entity to reset.
|
|
required: true
|
|
selector:
|
|
entity:
|
|
domain: sensor
|
|
integration: maintenance_supporter
|
|
multiple: true
|
|
date:
|
|
name: Date
|
|
description: The date to set as last performed. Defaults to today.
|
|
selector:
|
|
date:
|
|
|
|
skip:
|
|
name: Skip Maintenance
|
|
description: Skip the current maintenance cycle.
|
|
fields:
|
|
entity_id:
|
|
name: Entity
|
|
description: The maintenance sensor entity to skip.
|
|
required: true
|
|
selector:
|
|
entity:
|
|
domain: sensor
|
|
integration: maintenance_supporter
|
|
multiple: true
|
|
reason:
|
|
name: Reason
|
|
description: Optional reason for skipping.
|
|
selector:
|
|
text:
|
|
|
|
export_data:
|
|
name: Export Data
|
|
description: Export all maintenance data as JSON or YAML to maintenance_export.json / maintenance_export.yaml in the Home Assistant config folder, then fire maintenance_supporter_export_completed with the file path. Admin only.
|
|
fields:
|
|
format:
|
|
name: Format
|
|
description: Output format for the exported data.
|
|
default: "json"
|
|
selector:
|
|
select:
|
|
options:
|
|
- "json"
|
|
- "yaml"
|
|
include_history:
|
|
name: Include History
|
|
description: Whether to include task history entries in the export.
|
|
default: true
|
|
selector:
|
|
boolean:
|
|
|
|
add_object:
|
|
name: Add Object
|
|
description: Create a new maintenance object (device). Returns the new entry_id.
|
|
fields:
|
|
name:
|
|
name: Name
|
|
description: Name of the object/device.
|
|
required: true
|
|
selector:
|
|
text:
|
|
area_id:
|
|
name: Area
|
|
description: Area to assign the device to.
|
|
selector:
|
|
area:
|
|
manufacturer:
|
|
name: Manufacturer
|
|
description: The manufacturer of the object.
|
|
selector:
|
|
text:
|
|
model:
|
|
name: Model
|
|
description: The model name or number.
|
|
selector:
|
|
text:
|
|
serial_number:
|
|
name: Serial number
|
|
description: The serial number of the object.
|
|
selector:
|
|
text:
|
|
installation_date:
|
|
name: Installation date
|
|
description: When this object was installed or purchased.
|
|
selector:
|
|
date:
|
|
warranty_expiry:
|
|
name: Warranty expiry
|
|
description: Warranty expiry date (used for asset tracking and reminders).
|
|
selector:
|
|
date:
|
|
documentation_url:
|
|
name: Documentation URL
|
|
description: Link to a manual or vendor page (http/https only).
|
|
selector:
|
|
text:
|
|
notes:
|
|
name: Notes
|
|
description: Free-form notes about the object — part numbers, procedures, settings reminders, etc.
|
|
selector:
|
|
text:
|
|
multiline: true
|
|
|
|
add_task:
|
|
name: Add Task
|
|
description: Add a maintenance task to an existing object. Returns the new task_id.
|
|
fields:
|
|
entry_id:
|
|
name: Object
|
|
description: The maintenance object to add the task to.
|
|
required: true
|
|
selector:
|
|
config_entry:
|
|
integration: maintenance_supporter
|
|
name:
|
|
name: Name
|
|
description: Name of the task.
|
|
required: true
|
|
selector:
|
|
text:
|
|
task_type:
|
|
name: Task type
|
|
description: Free-form category (e.g. inspection, service, custom).
|
|
selector:
|
|
text:
|
|
schedule_type:
|
|
name: Schedule type
|
|
description: "time_based (needs interval_days), one_time (needs due_date) or manual. Left out, the other fields decide: an interval makes it time_based, a due date one_time, neither manual. Sensor-triggered tasks need a trigger and are created in the panel."
|
|
selector:
|
|
select:
|
|
options: ["time_based", "one_time", "manual"]
|
|
interval_days:
|
|
name: Interval
|
|
description: Interval length between occurrences (for time-based tasks), combined with interval_unit.
|
|
selector:
|
|
number:
|
|
min: 1
|
|
max: 3650
|
|
step: 1
|
|
mode: box
|
|
interval_unit:
|
|
name: Interval unit
|
|
description: "Unit for the interval: days, weeks, months or years. Default: days."
|
|
selector:
|
|
select:
|
|
options:
|
|
- days
|
|
- weeks
|
|
- months
|
|
- years
|
|
due_date:
|
|
name: Due date
|
|
description: Due date (YYYY-MM-DD) for a one-time task (schedule_type one_time).
|
|
selector:
|
|
text:
|
|
schedule:
|
|
name: Calendar schedule
|
|
description: >-
|
|
Nested recurrence for the calendar kinds, e.g. {"kind": "nth_weekday",
|
|
"nth": 1, "weekday": 5} for the 1st Saturday (weekday 0=Mon … 6=Sun),
|
|
{"kind": "weekdays", "weekdays": [0, 3]} for Mon & Thu, or {"kind":
|
|
"day_of_month", "day": 15}. Takes precedence over interval_days /
|
|
schedule_type.
|
|
selector:
|
|
object:
|
|
warning_days:
|
|
name: Warning (days)
|
|
description: "Days before due to enter the due-soon window. Default: the integration-wide setting."
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 365
|
|
step: 1
|
|
mode: box
|
|
enabled:
|
|
name: Enabled
|
|
description: When disabled, scheduling and triggers are paused. The task is not deleted.
|
|
default: true
|
|
selector:
|
|
boolean:
|
|
notes:
|
|
name: Notes
|
|
description: Additional notes or instructions for this task.
|
|
selector:
|
|
text:
|
|
multiline: true
|
|
|
|
update_task:
|
|
name: Update Task
|
|
description: Update the common fields of an existing maintenance task. Only the provided fields change.
|
|
fields:
|
|
entry_id:
|
|
name: Object
|
|
description: The maintenance object the task belongs to.
|
|
required: true
|
|
selector:
|
|
config_entry:
|
|
integration: maintenance_supporter
|
|
task_id:
|
|
name: Task ID
|
|
description: The id of the task to update (see list_tasks).
|
|
required: true
|
|
selector:
|
|
text:
|
|
name:
|
|
name: Name
|
|
description: New name of the task.
|
|
selector:
|
|
text:
|
|
task_type:
|
|
name: Task type
|
|
description: Category (cleaning, inspection, replacement, calibration, service, reading, custom).
|
|
selector:
|
|
text:
|
|
schedule_type:
|
|
name: Schedule type
|
|
description: "time_based (needs interval_days unless the task already has an interval), one_time (needs due_date) or manual. Switching to manual or one_time drops the old interval."
|
|
selector:
|
|
select:
|
|
options: ["time_based", "one_time", "manual"]
|
|
interval_days:
|
|
name: Interval
|
|
description: Interval length between occurrences, combined with interval_unit.
|
|
selector:
|
|
number:
|
|
min: 1
|
|
max: 3650
|
|
mode: box
|
|
interval_unit:
|
|
name: Interval unit
|
|
description: days, weeks, months or years.
|
|
selector:
|
|
select:
|
|
options: ["days", "weeks", "months", "years"]
|
|
due_date:
|
|
name: Due date
|
|
description: Due date for one-time tasks (YYYY-MM-DD).
|
|
selector:
|
|
date:
|
|
schedule:
|
|
name: Schedule (calendar recurrence)
|
|
description: "Nested recurrence object for the calendar kinds, e.g. {\"kind\": \"day_of_month\", \"day\": -1, \"business\": true}. Takes precedence over the flat fields."
|
|
selector:
|
|
object:
|
|
warning_days:
|
|
name: Warning days
|
|
description: Days before due when the task turns due-soon.
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 365
|
|
mode: box
|
|
enabled:
|
|
name: Enabled
|
|
description: Whether the task is active.
|
|
selector:
|
|
boolean:
|
|
notes:
|
|
name: Notes
|
|
description: Free-form notes on the task.
|
|
selector:
|
|
text:
|
|
priority:
|
|
name: Priority
|
|
description: low, normal or high.
|
|
selector:
|
|
select:
|
|
options: ["low", "normal", "high"]
|
|
labels:
|
|
name: Labels
|
|
description: List of tags for filtering and reporting.
|
|
selector:
|
|
object:
|
|
responsible_user:
|
|
name: Responsible user
|
|
description: Assign the task to this person (must be linked to a Home Assistant user).
|
|
selector:
|
|
entity:
|
|
domain: person
|
|
clear_responsible_user:
|
|
name: Clear responsible user
|
|
description: Remove the current assignment. Cannot be combined with "Responsible user".
|
|
selector:
|
|
boolean:
|
|
|
|
delete_task:
|
|
name: Delete Task
|
|
description: Delete a maintenance task including its history. This cannot be undone — consider archiving via the panel instead.
|
|
fields:
|
|
entry_id:
|
|
name: Object
|
|
description: The maintenance object the task belongs to.
|
|
required: true
|
|
selector:
|
|
config_entry:
|
|
integration: maintenance_supporter
|
|
task_id:
|
|
name: Task ID
|
|
description: The id of the task to delete (see list_tasks).
|
|
required: true
|
|
selector:
|
|
text:
|
|
|
|
list_tasks:
|
|
name: List Tasks
|
|
description: Return a snapshot of active maintenance tasks (ids, sensor entity_id, name, status, next due, last completion, live trigger reading with target and unit, who is responsible) for automations, scripts and voice. Supports filtering by object, status and person.
|
|
fields:
|
|
entry_id:
|
|
name: Object
|
|
description: Only return tasks of this maintenance object.
|
|
selector:
|
|
config_entry:
|
|
integration: maintenance_supporter
|
|
status:
|
|
name: Status
|
|
description: Only return tasks with this status.
|
|
selector:
|
|
select:
|
|
options: ["ok", "due_soon", "overdue", "triggered", "paused"]
|
|
person:
|
|
name: Person
|
|
description: Only return the tasks meant for this person (the ones they are responsible for, and the ones shared with them that nobody is responsible for). The person must be linked to a Home Assistant user.
|
|
selector:
|
|
entity:
|
|
domain: person
|