adaptive-lighting/custom_components/adaptive_lighting/strings.json
Casey ada3538449 Rename range sliders to lower/upper + friendlier new-profile defaults
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.
2026-06-05 10:49:40 +02:00

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"
}
}
}
}