mirror of
https://github.com/basnijholt/adaptive-lighting.git
synced 2026-09-16 08:44:03 +02:00
Device page sorts entities alphabetically by name, so 'Min/Max …' always
listed max above min ('a' < 'i'). Rename the four range numbers to
'Brightness lower/upper' and 'Color temp lower/upper' so each quantity's
lower bound sorts first. Pin suggested_object_id to the field key so new
profiles keep slugging number.<profile>_min_brightness etc., identical to
profiles created before the rename; existing entity_ids are registry-
preserved via unchanged unique_ids.
New-profile defaults: brightness 5-100% -> 10-90% (5% proved too dim on
gloomy days; 90% leaves manual-boost headroom), min color temp 2200K ->
2000K (deeper warm tone won in practice). Existing profiles unaffected —
saved options and restored slider values take precedence.
Specs synced: runtime-range-controls naming table + scenarios,
output-sensors collision references. Two new tests cover the slug pin
and the lower/upper friendly-name composition.
292 lines
12 KiB
JSON
292 lines
12 KiB
JSON
{
|
|
"config": {
|
|
"step": {
|
|
"user": {
|
|
"title": "Name this Adaptive Lighting profile",
|
|
"description": "Each profile controls one set of lights. You'll be able to add more profiles later for other rooms or scenes.",
|
|
"data": {
|
|
"name": "Profile name"
|
|
},
|
|
"data_description": {
|
|
"name": "A short label like \"Kitchen\" or \"Living room\"."
|
|
}
|
|
}
|
|
},
|
|
"abort": {
|
|
"already_configured": "[%key:common::config_flow::abort::already_configured_device%]",
|
|
"no_data": "Cannot import without configuration data."
|
|
},
|
|
"error": {
|
|
"incompatible_version": "This entry was created with an older, incompatible version of Adaptive Lighting. Delete the entry and create a new one."
|
|
}
|
|
},
|
|
"options": {
|
|
"step": {
|
|
"init": {
|
|
"title": "Adaptive Lighting options",
|
|
"description": "Tune how this profile adjusts its lights through the day. Hover labels for more detail; the Advanced and Diagnostics sections are collapsed because most households never need to touch them.",
|
|
"sections": {
|
|
"targets": {
|
|
"name": "Targets",
|
|
"description": "Which lights this profile controls.",
|
|
"data": {
|
|
"lights": "Lights"
|
|
},
|
|
"data_description": {
|
|
"lights": "Pick every light that should follow this profile's curve."
|
|
}
|
|
},
|
|
"daytime_curve": {
|
|
"name": "Daytime curve",
|
|
"description": "How bright these lights get, and how warm or cool they feel, between sunrise and sunset.",
|
|
"data": {
|
|
"min_brightness": "Minimum brightness",
|
|
"max_brightness": "Maximum brightness",
|
|
"min_color_temp": "Warmest color temperature",
|
|
"max_color_temp": "Coolest color temperature",
|
|
"prefer_rgb_color": "Prefer RGB color"
|
|
},
|
|
"data_description": {
|
|
"min_brightness": "Brightness at the lowest point of the day (deep night).",
|
|
"max_brightness": "Brightness at the peak of the day (mid-day).",
|
|
"min_color_temp": "The night-time tone — lower numbers are warmer (more orange).",
|
|
"max_color_temp": "The mid-day tone — higher numbers are cooler (more blue).",
|
|
"prefer_rgb_color": "When a light supports both color temperature and RGB, send RGB."
|
|
}
|
|
},
|
|
"sun_schedule": {
|
|
"name": "Sun schedule",
|
|
"description": "When morning and evening start. Defaults to your home's sunrise and sunset; point these at Sun2 sensors for civil, nautical, or astronomical twilight.",
|
|
"data": {
|
|
"sunrise_entity": "Sunrise entity",
|
|
"sunset_entity": "Sunset entity"
|
|
},
|
|
"data_description": {
|
|
"sunrise_entity": "Any sensor that returns the next sunrise timestamp.",
|
|
"sunset_entity": "Any sensor that returns the next sunset timestamp."
|
|
}
|
|
},
|
|
"ambient_lux": {
|
|
"name": "Ambient lux",
|
|
"description": "Save energy when daylight is bright enough. Your sensor currently reads: {current_lux}.",
|
|
"data": {
|
|
"lux_sensor": "Lux sensor",
|
|
"target_lux": "Target illuminance (lux)"
|
|
},
|
|
"data_description": {
|
|
"lux_sensor": "An illuminance sensor near these lights. Leave empty to use the sun curve alone.",
|
|
"target_lux": "Lights dim when ambient light exceeds this value. Below min brightness they turn off entirely."
|
|
}
|
|
},
|
|
"light_control": {
|
|
"name": "Light control",
|
|
"description": "How this integration talks to your lights when you turn them on by hand or by voice.",
|
|
"data": {
|
|
"intercept": "Intercept light.turn_on calls",
|
|
"multi_light_intercept": "Intercept multi-light calls"
|
|
},
|
|
"data_description": {
|
|
"intercept": "Apply the curve the moment a light turns on, instead of waiting up to one interval.",
|
|
"multi_light_intercept": "Also intercept calls that target several lights at once. Requires the option above."
|
|
}
|
|
},
|
|
"advanced": {
|
|
"name": "Advanced",
|
|
"description": "Timing knobs. Most households never need to touch these.",
|
|
"data": {
|
|
"interval": "Update interval (s)",
|
|
"transition": "Transition time (s)",
|
|
"initial_transition": "First-on fade (s)",
|
|
"adapt_delay": "Delay before adapting (s)",
|
|
"separate_turn_on_commands": "Split brightness and color into separate calls",
|
|
"send_split_delay": "Pause between split calls (ms)",
|
|
"skip_redundant_commands": "Skip redundant commands"
|
|
},
|
|
"data_description": {
|
|
"interval": "How often to recompute and re-apply the curve.",
|
|
"transition": "Fade time for each scheduled curve update.",
|
|
"initial_transition": "Fade time when a light first turns on.",
|
|
"adapt_delay": "Wait this long after a light reports 'on' before applying the curve. Helps lights that report state before they have settled.",
|
|
"separate_turn_on_commands": "Required by lights that cannot accept brightness and color in the same call.",
|
|
"send_split_delay": "Only used when the option above is on.",
|
|
"skip_redundant_commands": "Don't send a command if the light is already at the target state."
|
|
}
|
|
},
|
|
"diagnostics": {
|
|
"name": "Diagnostics",
|
|
"description": "Verbose entity attributes for debugging.",
|
|
"data": {
|
|
"include_config_in_attributes": "Expose all options as switch attributes"
|
|
},
|
|
"data_description": {
|
|
"include_config_in_attributes": "Useful for templating and dashboards that read the integration's state."
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"abort": {
|
|
"yaml_managed": "This Adaptive Lighting profile is managed by YAML. To change its options, edit configuration.yaml."
|
|
},
|
|
"error": {
|
|
"option_error": "One of the options has an invalid value.",
|
|
"entity_missing": "One or more of the selected light entities are not currently registered in Home Assistant."
|
|
}
|
|
},
|
|
"services": {
|
|
"apply": {
|
|
"name": "Apply settings",
|
|
"description": "Apply this profile's current curve values to its lights immediately, without waiting for the next scheduled update.",
|
|
"fields": {
|
|
"entity_id": {
|
|
"name": "Master switch",
|
|
"description": "The master switch entity whose profile settings to apply."
|
|
},
|
|
"lights": {
|
|
"name": "Lights",
|
|
"description": "Lights to apply the settings to. If empty, applies to all lights the profile controls."
|
|
},
|
|
"transition": {
|
|
"name": "Transition time (s)",
|
|
"description": "Fade time for this one application."
|
|
},
|
|
"adapt_brightness": {
|
|
"name": "Adapt brightness",
|
|
"description": "Adjust brightness on supporting lights."
|
|
},
|
|
"adapt_color": {
|
|
"name": "Adapt color",
|
|
"description": "Adjust color temperature on supporting lights."
|
|
},
|
|
"prefer_rgb_color": {
|
|
"name": "Prefer RGB",
|
|
"description": "Send RGB when the light supports both color temperature and RGB."
|
|
},
|
|
"turn_on_lights": {
|
|
"name": "Turn on lights that are off",
|
|
"description": "If true, also turn on lights that are currently off before applying."
|
|
}
|
|
}
|
|
},
|
|
"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": {
|
|
"name": "Master switch",
|
|
"description": "The master switch entity whose profile to update."
|
|
},
|
|
"use_defaults": {
|
|
"name": "Defaults source",
|
|
"description": "Where to pull unsupplied values from: 'current' keeps existing values, 'factory' resets to documented defaults, 'configuration' reverts to the profile's configured defaults."
|
|
},
|
|
"include_config_in_attributes": {
|
|
"name": "Expose config in attributes",
|
|
"description": "Show all options as attributes on the master switch."
|
|
},
|
|
"turn_on_lights": {
|
|
"name": "Turn on lights that are off",
|
|
"description": "If true, also turn on lights that are currently off before applying."
|
|
},
|
|
"initial_transition": {
|
|
"name": "First-on fade (s)",
|
|
"description": "Fade time when a light first turns on."
|
|
},
|
|
"max_brightness": {
|
|
"name": "Maximum brightness",
|
|
"description": "Brightness at the peak of the day."
|
|
},
|
|
"max_color_temp": {
|
|
"name": "Coolest color temperature",
|
|
"description": "The mid-day tone."
|
|
},
|
|
"min_brightness": {
|
|
"name": "Minimum brightness",
|
|
"description": "Brightness during the night."
|
|
},
|
|
"min_color_temp": {
|
|
"name": "Warmest color temperature",
|
|
"description": "The night-time tone."
|
|
},
|
|
"prefer_rgb_color": {
|
|
"name": "Prefer RGB",
|
|
"description": "When a light supports both, send RGB."
|
|
},
|
|
"separate_turn_on_commands": {
|
|
"name": "Split brightness and color into separate calls",
|
|
"description": "Required by some lights."
|
|
},
|
|
"send_split_delay": {
|
|
"name": "Pause between split calls (ms)",
|
|
"description": "Only used when the option above is on."
|
|
},
|
|
"sunrise_entity": {
|
|
"name": "Sunrise entity",
|
|
"description": "Any sensor that returns the next sunrise timestamp."
|
|
},
|
|
"sunset_entity": {
|
|
"name": "Sunset entity",
|
|
"description": "Any sensor that returns the next sunset timestamp."
|
|
},
|
|
"transition": {
|
|
"name": "Transition time (s)",
|
|
"description": "Fade time for each scheduled curve update."
|
|
},
|
|
"adapt_delay": {
|
|
"name": "Delay before adapting (s)",
|
|
"description": "Wait this long after a light reports 'on' before applying."
|
|
},
|
|
"skip_redundant_commands": {
|
|
"name": "Skip redundant commands",
|
|
"description": "Don't send a command if the light is already at the target state."
|
|
},
|
|
"intercept": {
|
|
"name": "Intercept light.turn_on calls",
|
|
"description": "Apply the curve the moment a light turns on."
|
|
},
|
|
"multi_light_intercept": {
|
|
"name": "Intercept multi-light calls",
|
|
"description": "Also intercept calls that target several lights at once."
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"exceptions": {
|
|
"incompatible_version": {
|
|
"message": "Adaptive Lighting v{current_version} (CDiT fork) is incompatible with the existing config entry (version {entry_version}). Delete the entry from Settings → Devices & Services and create a new one."
|
|
}
|
|
},
|
|
"entity": {
|
|
"number": {
|
|
"min_brightness": {
|
|
"name": "Brightness lower"
|
|
},
|
|
"max_brightness": {
|
|
"name": "Brightness upper"
|
|
},
|
|
"min_color_temp": {
|
|
"name": "Color temp lower"
|
|
},
|
|
"max_color_temp": {
|
|
"name": "Color temp upper"
|
|
}
|
|
},
|
|
"sensor": {
|
|
"output_brightness": {
|
|
"name": "Output brightness"
|
|
},
|
|
"output_color_temp": {
|
|
"name": "Output color temp"
|
|
},
|
|
"sun_elevation": {
|
|
"name": "Sun elevation"
|
|
},
|
|
"ambient_lux": {
|
|
"name": "Ambient lux"
|
|
},
|
|
"lux_reduction": {
|
|
"name": "Lux reduction"
|
|
}
|
|
}
|
|
}
|
|
}
|