custom_components/omni_pca/services.yaml — declares 7 services with config_entry selectors so HA's UI gives users a panel picker: bypass_zone, restore_zone, execute_program, show_message, clear_message, acknowledge_alerts, send_command (raw escape hatch) custom_components/omni_pca/services.py — async handlers wired via async_setup_services on entry setup; idempotent across multiple entries. Each handler validates entry_id, looks up the right coordinator, calls the matching OmniClient method. CommandFailedError wrapped to HomeAssistantError; unknown Command codes raise ServiceValidationError. async_unload_services removes them when the last entry unloads. custom_components/omni_pca/diagnostics.py — async_get_config_entry_ diagnostics dumps a redacted snapshot for bug reports: panel model + firmware, discovered/live counts per object type, sha256-hashed zone/ unit/area names (so uniqueness is visible without leaking PII), last event class, controller key REDACTED via async_redact_data. custom_components/omni_pca/__init__.py — wires async_setup_services on entry setup and async_unload_services on the last entry unload. custom_components/omni_pca/README.md — full entity table, service list, example automation, troubleshooting section, link to JOURNEY.md. Top-level README — entity rundown updated to reflect the full v1.0 surface (was: 'binary_sensor for zones'). 331 tests still pass; ruff clean across src/ tests/ custom_components/. hacs.json already in place from initial scaffold.
160 lines
3.8 KiB
YAML
160 lines
3.8 KiB
YAML
bypass_zone:
|
|
name: Bypass zone
|
|
description: Bypass a single zone (panel ignores it until restored).
|
|
fields:
|
|
entry_id:
|
|
name: Panel
|
|
description: Config entry ID of the Omni panel.
|
|
required: true
|
|
selector:
|
|
config_entry:
|
|
integration: omni_pca
|
|
zone_index:
|
|
name: Zone index
|
|
description: 1-based zone number on the panel.
|
|
required: true
|
|
selector:
|
|
number:
|
|
min: 1
|
|
max: 176
|
|
mode: box
|
|
|
|
restore_zone:
|
|
name: Restore zone
|
|
description: Restore a previously-bypassed zone.
|
|
fields:
|
|
entry_id:
|
|
name: Panel
|
|
description: Config entry ID of the Omni panel.
|
|
required: true
|
|
selector:
|
|
config_entry:
|
|
integration: omni_pca
|
|
zone_index:
|
|
name: Zone index
|
|
description: 1-based zone number on the panel.
|
|
required: true
|
|
selector:
|
|
number:
|
|
min: 1
|
|
max: 176
|
|
mode: box
|
|
|
|
execute_program:
|
|
name: Execute program
|
|
description: Run a stored program on the panel by its 1-based index.
|
|
fields:
|
|
entry_id:
|
|
name: Panel
|
|
description: Config entry ID of the Omni panel.
|
|
required: true
|
|
selector:
|
|
config_entry:
|
|
integration: omni_pca
|
|
program_index:
|
|
name: Program index
|
|
description: 1-based program number on the panel.
|
|
required: true
|
|
selector:
|
|
number:
|
|
min: 1
|
|
max: 1024
|
|
mode: box
|
|
|
|
show_message:
|
|
name: Show panel message
|
|
description: Display a stored message on panel consoles by message index.
|
|
fields:
|
|
entry_id:
|
|
name: Panel
|
|
description: Config entry ID of the Omni panel.
|
|
required: true
|
|
selector:
|
|
config_entry:
|
|
integration: omni_pca
|
|
message_index:
|
|
name: Message index
|
|
description: 1-based stored message number.
|
|
required: true
|
|
selector:
|
|
number:
|
|
min: 1
|
|
max: 128
|
|
mode: box
|
|
|
|
clear_message:
|
|
name: Clear panel message
|
|
description: Clear the currently-displayed message on panel consoles.
|
|
fields:
|
|
entry_id:
|
|
name: Panel
|
|
description: Config entry ID of the Omni panel.
|
|
required: true
|
|
selector:
|
|
config_entry:
|
|
integration: omni_pca
|
|
message_index:
|
|
name: Message index
|
|
description: 1-based stored message number to clear.
|
|
required: true
|
|
selector:
|
|
number:
|
|
min: 1
|
|
max: 128
|
|
mode: box
|
|
|
|
acknowledge_alerts:
|
|
name: Acknowledge alerts
|
|
description: Acknowledge all outstanding alerts and trouble conditions on the panel.
|
|
fields:
|
|
entry_id:
|
|
name: Panel
|
|
description: Config entry ID of the Omni panel.
|
|
required: true
|
|
selector:
|
|
config_entry:
|
|
integration: omni_pca
|
|
|
|
send_command:
|
|
name: Send raw command
|
|
description: >
|
|
Send a raw Omni Command (opcode 20). Power-user escape hatch — see
|
|
omni_pca.commands.Command for the full enumeration.
|
|
fields:
|
|
entry_id:
|
|
name: Panel
|
|
description: Config entry ID of the Omni panel.
|
|
required: true
|
|
selector:
|
|
config_entry:
|
|
integration: omni_pca
|
|
command:
|
|
name: Command code
|
|
description: Numeric Command enum value (0-255).
|
|
required: true
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 255
|
|
mode: box
|
|
parameter1:
|
|
name: Parameter 1
|
|
description: First command parameter (single byte 0-255).
|
|
required: false
|
|
default: 0
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 255
|
|
mode: box
|
|
parameter2:
|
|
name: Parameter 2
|
|
description: Second command parameter (BE uint16, 0-65535).
|
|
required: false
|
|
default: 0
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 65535
|
|
mode: box
|