mirror of
https://github.com/basnijholt/adaptive-lighting.git
synced 2026-09-16 16:54:04 +02:00
strings.json + translations/en.json:
- Rewritten from scratch with plain-language labels and one-sentence
framers per section (Targets / Daytime curve / Sun schedule / Light
control / Advanced / Diagnostics).
- Per-field `data_description` for every visible option in the options
flow.
- New translations for `yaml_managed` abort and the version-incompatible
error.
- Removed every key for the 21 dropped fields and the sleep switch.
- Services section updated for the trimmed surface: dropped
`set_manual_control` entirely, removed all sleep / take-over /
sunrise-sunset-time keys from `change_switch_settings`.
services.yaml: rewritten by hand (was auto-generated upstream). Now
matches the fork's actual service surface: `apply` and
`change_switch_settings` only, with native HA selectors and units.
README: added a CDiT preamble at the top covering the five core
differences from upstream, the strict-version-break warning, the
recommended Sun2 companion, and the minimum HA version pin. Crucially,
also added a "🙏 Huge thanks to the upstream team" block that names
@basnijholt and the 130+ upstream contributors, points users at the
upstream repo for the canonical install, and routes core-curve / light-
handling bugs to upstream's tracker. Open-source credit done right.
CHANGELOG.md: new file. Header credits upstream up front; v2.0.0-cdit.1
section lists every Added / Changed / Removed item by name, the
migration / upgrade steps in numbered form, internal refactors, and
known limitations (Manager bridge stubs, locale drift, astral as
transitive dep).
tasks.md: 8.1-8.6 and 9.1-9.3 marked complete; 9.4 (GitHub repo
description) deferred to a separate `gh repo edit` step.
openspec validate cdit-config-redesign --strict: green.
JSON + YAML syntax: validated.
Module import: clean.
186 lines
5.3 KiB
YAML
186 lines
5.3 KiB
YAML
# CDiT Adaptive Lighting service surface.
|
|
# Hand-written for the fork — upstream's services.yaml was auto-generated
|
|
# from a wider config schema. See design.md decisions 7 + 8.
|
|
apply:
|
|
name: Apply settings
|
|
description: Apply this profile's current curve values to its lights immediately.
|
|
fields:
|
|
entity_id:
|
|
description: The master switch entity whose profile settings to apply.
|
|
selector:
|
|
entity:
|
|
integration: adaptive_lighting
|
|
domain: switch
|
|
multiple: false
|
|
lights:
|
|
description: Lights to apply the settings to. If empty, applies to all lights the profile controls.
|
|
selector:
|
|
entity:
|
|
domain: light
|
|
multiple: true
|
|
transition:
|
|
description: Fade time for this one application, in seconds.
|
|
example: 10
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 300
|
|
unit_of_measurement: s
|
|
mode: box
|
|
adapt_brightness:
|
|
description: Adjust brightness on supporting lights.
|
|
default: true
|
|
selector:
|
|
boolean:
|
|
adapt_color:
|
|
description: Adjust color temperature on supporting lights.
|
|
default: true
|
|
selector:
|
|
boolean:
|
|
prefer_rgb_color:
|
|
description: Send RGB when the light supports both color temperature and RGB.
|
|
default: false
|
|
selector:
|
|
boolean:
|
|
turn_on_lights:
|
|
description: Also turn on lights that are currently off before applying.
|
|
default: false
|
|
selector:
|
|
boolean:
|
|
|
|
change_switch_settings:
|
|
name: Change profile settings
|
|
description: Change one or more of this profile's settings at runtime. The change persists until the next options-flow save or HA restart.
|
|
fields:
|
|
entity_id:
|
|
description: The master switch entity whose profile to update.
|
|
required: true
|
|
selector:
|
|
entity:
|
|
integration: adaptive_lighting
|
|
domain: switch
|
|
use_defaults:
|
|
description: 'Where to pull unsupplied values from: "current" keeps existing values, "factory" resets to documented defaults, "configuration" reverts to the profile''s configured defaults.'
|
|
default: current
|
|
selector:
|
|
select:
|
|
options:
|
|
- current
|
|
- configuration
|
|
- factory
|
|
include_config_in_attributes:
|
|
description: Expose all options as attributes on the master switch.
|
|
selector:
|
|
boolean:
|
|
turn_on_lights:
|
|
description: Also turn on lights that are currently off before applying.
|
|
selector:
|
|
boolean:
|
|
initial_transition:
|
|
description: Fade time when a light first turns on.
|
|
example: 1
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 300
|
|
unit_of_measurement: s
|
|
mode: box
|
|
transition:
|
|
description: Fade time for each scheduled curve update.
|
|
example: 45
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 300
|
|
unit_of_measurement: s
|
|
mode: box
|
|
interval:
|
|
description: How often to recompute and re-apply the curve.
|
|
example: 90
|
|
selector:
|
|
number:
|
|
min: 1
|
|
max: 3600
|
|
unit_of_measurement: s
|
|
mode: box
|
|
adapt_delay:
|
|
description: Wait this long after a light reports 'on' before applying.
|
|
example: 0
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 300
|
|
unit_of_measurement: s
|
|
mode: box
|
|
min_brightness:
|
|
description: Brightness during the night.
|
|
selector:
|
|
number:
|
|
min: 1
|
|
max: 100
|
|
unit_of_measurement: "%"
|
|
mode: slider
|
|
max_brightness:
|
|
description: Brightness at the peak of the day.
|
|
selector:
|
|
number:
|
|
min: 1
|
|
max: 100
|
|
unit_of_measurement: "%"
|
|
mode: slider
|
|
min_color_temp:
|
|
description: The night-time tone (warmer = lower).
|
|
selector:
|
|
number:
|
|
min: 1000
|
|
max: 10000
|
|
unit_of_measurement: K
|
|
mode: box
|
|
max_color_temp:
|
|
description: The mid-day tone (cooler = higher).
|
|
selector:
|
|
number:
|
|
min: 1000
|
|
max: 10000
|
|
unit_of_measurement: K
|
|
mode: box
|
|
prefer_rgb_color:
|
|
description: When a light supports both color temperature and RGB, send RGB.
|
|
selector:
|
|
boolean:
|
|
sunrise_entity:
|
|
description: Any sensor that returns the next sunrise timestamp.
|
|
selector:
|
|
entity:
|
|
domain: sensor
|
|
device_class: timestamp
|
|
sunset_entity:
|
|
description: Any sensor that returns the next sunset timestamp.
|
|
selector:
|
|
entity:
|
|
domain: sensor
|
|
device_class: timestamp
|
|
separate_turn_on_commands:
|
|
description: Required by some lights.
|
|
selector:
|
|
boolean:
|
|
send_split_delay:
|
|
description: Only used when separate_turn_on_commands is true.
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 10000
|
|
unit_of_measurement: ms
|
|
mode: box
|
|
skip_redundant_commands:
|
|
description: Don't send a command if the light is already at the target state.
|
|
selector:
|
|
boolean:
|
|
intercept:
|
|
description: Apply the curve the moment a light turns on.
|
|
selector:
|
|
boolean:
|
|
multi_light_intercept:
|
|
description: Also intercept calls that target several lights at once.
|
|
selector:
|
|
boolean:
|