Files
HomeAssistantVS/custom_components/maintenance_supporter/services.yaml
T

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