Files
2026-07-08 10:43:39 -04:00

500 lines
12 KiB
YAML

# Static service definitions for Climate Scheduler.
# These provide UI documentation and selectors. The services are still
# registered dynamically in Python; keep this file up-to-date when fields
# or selectors change.
recreate_all_sensors:
name: Recreate all sensors
description: >-
Delete ALL Climate Scheduler sensor entities and reload the integration to
recreate them cleanly. Requires confirmation.
fields:
confirm:
description: Must be set to true to confirm deletion of all sensors
example: true
required: true
selector:
boolean: {}
cleanup_malformed_sensors:
name: Cleanup malformed sensors
description: >-
Scan for unexpected Climate Scheduler sensor entities and optionally remove
them. Returns expected and unexpected sensor entity lists.
fields:
delete:
description: Whether to actually delete the unexpected entities (default
is false for dry-run)
required: false
example: true
selector:
boolean: {}
cleanup_orphaned_climate_entities:
name: Cleanup orphaned entities
description: >-
Scan for orphaned Climate Scheduler entities (climate, sensor, and switch entities without matching
groups or climate entities in storage) and optionally remove them. Returns expected count and orphaned entity lists.
fields:
delete:
description: Whether to actually delete the orphaned entities (default
is false for dry-run)
required: false
example: true
selector:
boolean: {}
set_schedule:
name: Set climate schedule
description: Configure temperature schedule for a schedule target
fields:
schedule_id:
description: Schedule ID
required: true
example: climate.living_room
selector:
entity:
domain: climate
nodes:
description: >-
List of schedule nodes with time and temperature (JSON string).
required: true
example: '[{"time": "07:00", "temp": 21}, {"time": "23:00", "temp": 18}]'
day:
description: Day of week for this schedule (all_days, mon, tue, wed, thu,
fri, sat, sun, weekday, weekend)
required: false
default: all_days
selector:
text: {}
schedule_mode:
description: Schedule mode (all_days, 5/2, individual)
required: false
default: all_days
selector:
text: {}
get_schedule:
name: Get climate schedule
description: Retrieve the current schedule for a schedule target
fields:
schedule_id:
description: Schedule ID
required: true
selector:
entity:
domain: climate
clear_schedule:
name: Clear climate schedule
description: Clear the schedule for a schedule target
fields:
schedule_id:
description: Schedule ID
required: true
selector:
entity:
domain: climate
enable_schedule:
name: Enable schedule
description: Enable the schedule for a schedule target
fields:
schedule_id:
description: Schedule ID
required: true
selector:
text: {}
disable_schedule:
name: Disable schedule
description: Disable the schedule for a schedule target
fields:
schedule_id:
description: Schedule ID
required: true
selector:
text: {}
set_ignored:
name: Set ignored status
description: Mark a schedule target as ignored or not
fields:
schedule_id:
description: Schedule ID
required: true
selector:
text: {}
ignored:
description: True to ignore, False to un-ignore
required: true
selector:
boolean: {}
sync_all:
name: Sync all
description: Force immediate sync of all thermostats managed by Climate Scheduler
fields: {}
create_group:
name: Create group
description: Create a new Climate Scheduler group
fields:
schedule_id:
description: New group name
required: true
selector:
text: {}
delete_group:
name: Delete group
description: Delete an existing group
fields:
schedule_id:
description: Group name to delete
required: true
selector:
text: {}
rename_group:
name: Rename group
description: Rename an existing group
fields:
old_name:
description: Existing group name
required: true
selector:
text: {}
new_name:
description: New group name
required: true
selector:
text: {}
add_to_group:
name: Add entity to group
description: Add a climate entity to a group
fields:
schedule_id:
description: Target group name
required: true
selector:
text: {}
entity_id:
description: Climate entity id to add
required: true
selector:
entity:
domain: climate
remove_from_group:
name: Remove entity from group
description: Remove a climate entity from a group
fields:
schedule_id:
description: Target group name
required: true
selector:
text: {}
entity_id:
description: Climate entity id to remove
required: true
selector:
entity:
domain: climate
get_groups:
name: Get groups
description: Return stored groups data
fields: {}
list_groups:
name: List groups
description: Return a simple list of group names
fields: {}
list_profiles:
name: List profiles
description: Return a list of profiles across all groups
fields: {}
set_group_schedule:
name: Set group schedule
description: Set schedule for a whole group
fields:
schedule_id:
description: Target group name
required: true
selector:
text: {}
nodes:
description: JSON string of schedule nodes
required: true
selector:
text: {}
day:
description: Day identifier
required: false
selector:
text: {}
schedule_mode:
description: Schedule mode
required: false
selector:
text: {}
enable_group:
name: Enable group
description: Enable a group's schedule
fields:
schedule_id:
description: Group name
required: true
selector:
text: {}
disable_group:
name: Disable group
description: Disable a group's schedule
fields:
schedule_id:
description: Group name
required: true
selector:
text: {}
get_settings:
name: Get settings
description: Retrieve current integration settings and version info
fields: {}
save_settings:
name: Save settings
description: Save integration settings (JSON string)
fields:
settings:
description: Settings JSON string
required: true
selector:
text: {}
reload_integration:
name: Reload integration
description: Reload the Climate Scheduler integration
fields: {}
reregister_card:
name: Reregister card
description: >-
Automatically registers the Climate Scheduler card in Lovelace resources.
Removes any existing registrations and creates a fresh entry.
Use this if the card is not appearing in the card picker.
fields:
resource_url:
description: >-
(Optional) Custom URL for the card resource. If not provided,
automatically uses the bundled card with the current integration version.
required: false
example: /climate_scheduler/static/climate-scheduler-card.js
selector:
text: {}
resource_type:
description: Resource type (e.g. `module` or `js`)
required: false
default: module
selector:
text: {}
advance_schedule:
name: Advance schedule
description: Temporarily advance a schedule for a schedule target
fields:
schedule_id:
description: Schedule ID
required: true
selector:
text: {}
advance_group:
name: Advance group
description: Advance schedule for a group
fields:
schedule_id:
description: Group name
required: true
selector:
text: {}
cancel_advance:
name: Cancel advance
description: Cancel an advanced schedule for a schedule target
fields:
schedule_id:
description: Schedule ID (entity id)
required: true
selector:
text: {}
get_advance_status:
name: Get advance status
description: Get current advance status for a schedule target
fields:
schedule_id:
description: Schedule ID (entity id)
required: true
selector:
text: {}
clear_advance_history:
name: Clear advance history
description: Clear the advance history for a schedule target
fields:
schedule_id:
description: Schedule ID (entity id)
required: true
selector:
text: {}
test_fire_event:
name: Test fire event
description: Fire a test node_activated event with specific node settings for testing automations
fields:
schedule_id:
description: Group name or entity ID to fire event for
required: true
example: Downstairs
selector:
text: {}
node:
description: Node data (time, temp, hvac_mode, etc.) as JSON string
required: false
example: '{"time": "08:00", "temp": 21, "hvac_mode": "heat"}'
selector:
text: {}
day:
description: Day of week (mon, tue, wed, thu, fri, sat, sun)
required: false
example: mon
selector:
text: {}
create_profile:
name: Create profile
description: Create a profile for a schedule
fields:
schedule_id:
description: Schedule ID (entity id or group id)
required: true
selector:
text: {}
profile_name:
description: New profile name
required: true
selector:
text: {}
delete_profile:
name: Delete profile
description: Delete a profile from a schedule
fields:
schedule_id:
description: Schedule ID (entity id or group id)
required: true
selector:
text: {}
profile_name:
description: Profile name to delete
required: true
selector:
text: {}
rename_profile:
name: Rename profile
description: Rename a profile
fields:
schedule_id:
description: Schedule ID (entity id or group id)
required: true
selector:
text: {}
old_name:
description: Existing profile name
required: true
selector:
text: {}
new_name:
description: New profile name
required: true
selector:
text: {}
set_active_profile:
name: Set active profile
description: Set the active profile for a schedule
fields:
schedule_id:
description: Schedule ID (entity id or group id)
required: true
selector:
text: {}
profile_name:
description: Profile name to set active
required: true
selector:
text: {}
get_profiles:
name: Get profiles
description: Get profiles for a schedule
fields:
schedule_id:
description: Schedule ID (entity id or group id)
required: true
selector:
text: {}
cleanup_derivative_sensors:
name: Cleanup derivative sensors
description: Remove derivative sensors based on auto-creation setting
fields:
confirm_delete_all:
description: Confirm deletion of all derivative sensors
required: false
default: false
example: false
selector:
boolean: {}
cleanup_unmonitored_storage:
name: Cleanup unmonitored storage
description: >-
Remove stale storage references for unmonitored or missing entities,
including obsolete groups, invalid profiles, stale entity references,
and orphaned advance history entries.
fields:
delete:
description: Execute deletion; set false to preview only
required: false
default: false
example: true
selector:
boolean: {}
factory_reset:
name: Factory reset
description: Reset all stored data
fields:
confirm:
description: Must be set to true to confirm factory reset
required: true
selector:
boolean: {}
diagnostics:
name: Run diagnostics
description: >-
Run comprehensive diagnostics to troubleshoot card visibility issues.
Returns integration version, card registration status, and accessibility checks.
Use this when users report they cannot find the card in Lovelace.