HA Light Controller adds state verification and automatic retries to light commands.
When you call light.turn_on, Home Assistant sends the command once and assumes
success. This integration verifies that entities actually reached the target state and
retries if they didn't.
This solves the common problem of lights occasionally missing commands due to network congestion, Zigbee/Z-Wave mesh issues, or unresponsive devices. Instead of building retry logic into every script and automation, HA Light Controller handles verification centrally with configurable tolerances and backoff strategies.
- Sends the light command (on/off, brightness, color, etc.)
- Waits a configurable delay for the state to update
- Verifies entity attributes match target values within tolerance
- Retries with exponential backoff if verification fails
- Optionally logs success to the Home Assistant logbook
- State verification - Confirms entities reached target brightness, color, and temperature within configurable tolerances
- Automatic retries - Configurable retry attempts with exponential backoff
- Group expansion - Automatically expands
light.*andgroup.*entities to individual lights - Per-entity overrides - Set different attributes for each light in a single service
call via the
targetsparameter - Presets - Store light configurations as button entities for one-tap activation
- Add
https://github.com/L3DigitalNet/HA-Light-Controlleras a custom repository (Integration) - Install "HA Light Controller"
- Restart Home Assistant
- Copy
custom_components/ha_light_controllerto yourconfig/custom_components/directory - Restart Home Assistant
- Go to Settings → Devices & Services → Light Controller
- Click the three-dot menu → Delete
- Restart Home Assistant
- (Optional) Remove the
custom_components/ha_light_controllerdirectory
All preset entities (buttons and sensors) are automatically removed when the integration is deleted.
Add the integration via Settings → Devices & Services → Add Integration → "Light Controller".
Configuration options include default brightness, transition time, verification tolerances (brightness, RGB, Kelvin), retry settings, and success logging.
service: ha_light_controller.ensure_state
data:
entities:
- light.living_room_ceiling
- light.living_room_lamp
state: 'off'service: ha_light_controller.ensure_state
data:
entities:
- light.ceiling
- light.lamp
brightness_pct: 50
targets:
- entity_id: light.ceiling
brightness_pct: 100
color_temp_kelvin: 4000
- entity_id: light.lamp
brightness_pct: 30
rgb_color: [255, 200, 150]Create and edit presets via the integration options UI or programmatically. The UI supports per-entity configuration - set different brightness, color, and state for each light in the preset. Preset deletion includes a confirmation step.
service: ha_light_controller.create_preset
data:
name: 'Movie Night'
entities:
- light.living_room
- light.tv_backlight
brightness_pct: 20
color_temp_kelvin: 2700Each preset creates a button.* entity for activation and a sensor.* entity for
status tracking.
See the Usage Guide for complete service parameters, configuration options, and examples.