Smart Bulb Routine not Working Home Assistant: Causes & Fixes
If your smart bulb isn’t responding to a Home Assistant automation, the most likely culprit is an integration mismatch—your bulb is paired through one protocol (e.g., Zigbee2MQTT) but your automation is calling a service from another (e.g., ZHA). The fix is usually a one-line change in the service call or re-pairing the bulb under the correct integration. Below, you’ll find the exact steps to diagnose that mismatch and fix it, plus a checklist to rule out common causes fast.
Why Your Smart Bulb Routine Won’t Run
Home Assistant supports multiple ways to control bulbs—ZHA, Zigbee2MQTT, deCONZ, Matter, Wi‑Fi, and manufacturer bridges. Each integration uses its own service domain. When your automation tries to turn on `light.bedroom` but the bulb is actually registered under `switch.bedroom` (common with some plug-in bulbs or certain Zigbee endpoints), or when the entity is tied to a coordinator that has gone offline, the routine will silently fail. Consider these specific failure modes.
Integration or Protocol Mismatch
- ZHA vs. Zigbee2MQTT vs. deCONZ – You cannot mix domains. If your bulb was paired via ZHA, the entity lives under `light.` or `switch.` controlled by ZHA’s service (`zha.light.turnon`). Using a generic `light.turnon` call works only if the bulb is exposed to that service.
- Matter / Thread – Bulbs paired via Matter appear as `light.` but require a Matter controller (e.g., the Home Assistant Matter add-on) to be running. If the add-on stopped, the entity goes unavailable.
- Wi‑Fi bulbs (Tuya/Smart Life) – These often need the local Tuya or LocalTuya integration. The cloud-based automation may lag or fail if the internet is down.
Missing or Offline Coordinator
- Zigbee coordinator (Sonoff, Conbee, SkyConnect) – If the coordinator USB disconnected or the stick’s firmware crashed, all paired bulbs show as “unavailable” in Home Assistant. The routine won’t fire because the entity state is missing.
- Zigbee2MQTT broker – If the MQTT server isn’t running, Zigbee2MQTT can’t report state, and bulbs appear offline.
Automation Configuration Errors
Even when the bulb is online, a misconfigured automation can silently fail. Here are the two most common real-world traps:
- Service call domain mismatch – A bulb that exposes only a `switch` entity (common with IKEA TRÅDFRI outlets or some Aqara bulbs) will do nothing when you call `light.turn_on`. The automation will succeed in the trace but the bulb won’t react. Always check the entity domain in Settings → Devices & Services → Entities before writing the action.
- Group member offline – Light groups are convenient, but if one member bulb is unavailable (e.g., unplugged), the entire group command may fail silently. Home Assistant does not throw an error by default for partial group failures. Test the group’s entity individually.
Bulb Firmware or Hardware Fault
Less common, but a bulb stuck after a brownout or one with corrupted firmware can report “on” but ignore commands. If the bulb responds to a physical power cycle but not Home Assistant, firmware may be the issue. Some older Zigbee bulbs (e.g., early Osram Lightify) are known to lose their network credentials and need re-pairing.
Troubleshooting Steps: Find and Fix the Problem
Follow this ordered flow. Stop at the step that resolves the problem, then verify the fix works before moving on.
Step 1 – Verify the bulb is reachable
In Home Assistant, go to Settings → Devices & Services → Entities. Search for your bulb’s name.
- If the entity shows Unavailable, your coordinator or bridge is offline. Physically check the USB dongle / hub, restart the container/add-on (Zigbee2MQTT or ZHA), and wait 30 seconds.
- If the entity shows a numeric brightness value and a state (on/off), the bulb is reachable. Move to Step 2.
Step 2 – Test manual control
From the same entity page, toggle the bulb on/off using the UI slider.
- If the light doesn’t respond, the issue is between Home Assistant and the bulb (integration, coordinator, or hardware). Restart the integration (ZHA → reconfigure / Zigbee2MQTT → restart).
- If it does respond, the problem is with your automation, not the bulb.
Step 3 – Check automation triggers and actions
Go to Settings → Automations & Scenes, edit your routine.
- Trigger – Does it rely on a sensor (motion, door) that is also offline? Check that sensor’s entity.
- Action – Open the action editor. Make sure the Target field lists the correct entity ID (not an old alias). Use the Action dropdown: `light.turnon` for standard bulbs, `switch.turnon` for bulbs exposed as switches.
- Trace – Click the three dots on your automation and select Traces. Run the routine manually (use “Run” in the automation page) and see if the trace logs show “condition passed” then “action executed”. If it says “action failed”, the trace details indicate why (e.g., “entity not found”, “timeout”).
Step 4 – Examine the Home Assistant logs
Settings → System → Logs. Filter by your bulb’s entity ID. Look for errors like:
- `Unable to find service light.turn_on` – service call is using a wrong domain.
- `Entity light.bedroom is not a valid entity` – the entity doesn’t exist under that integration.
- `Zigbee device 0x1234 is not in the network` – coordinator lost the device; re-pair the bulb.
Step 5 – Recreate the routine from scratch
Sometimes config cache or hidden YAML issues corrupt a routine. Delete the automation, create a fresh one with the simplest possible trigger (e.g., a Home Assistant “Home” event) and one action (`light.turn_on` with your bulb’s entity). If that works, gradually add your desired conditions.
Verify the fix: After each change (Steps 2–5), run the automation manually and watch the trace. Confirm that the trace shows “action executed” and the bulb changes state within 2 seconds. If the trace succeeds but the bulb doesn’t respond, the issue is likely a domain mismatch or a hardware problem—double-check the entity type in Step 1.
Smart Bulb Routine Triage Checklist
Run through these five checks before diving into deeper troubleshooting.
- [ ] Bulb entity shows a numeric state – not “unavailable” or “unknown” – in the Home Assistant dashboard.
- [ ] Bulb toggles correctly when you manually click the on/off button on the dashboard.
- [ ] Automation trigger is active – for time-based triggers, verify the time/date are in the future; for sensor triggers, confirm the sensor entity reports the expected state.
- [ ] Automation action uses the exact entity ID you see in the entities list (no old groups or renamed aliases).
- [ ] There are no recent errors in the Home Assistant logs mentioning your bulb or its integration.
If any checkbox is not met, address that item first. If all pass, the routine should work; if it still doesn’t, the cause is likely deeper (firmware, coordinator, or hardware).
When to Escalate Beyond Home Assistant
If you’ve completed all checks and the bulb still won’t follow the routine, consider these deeper issues:
- Coordinator firmware is out of date – Update your Zigbee stick’s firmware (e.g., using the official Elelabs or Silicon Labs flasher). Some coordinators (especially older Conbee II) have known bugs with certain bulbs.
- Bulb is incompatible with your coordinator – Some bulbs (especially older or proprietary Zigbee models) don’t expose the standard ZCL clusters. Check the Zigbee2MQTT device page for unsupported attributes. If the bulb pairs but never reports state, it might be a compatibility dead end.
- Bulb hardware failure – A bulb that physically resets (blinks when power-cycled) but never pairs again is likely dead. Replace it.
- Home Assistant version bug – Rare, but check the release notes of your current HA version for known automation issues. Rolling back or applying a patch may help.
A concrete red flag: if the bulb works with its own manufacturer app (e.g., Philips Hue app) but not through Home Assistant, it’s almost always an integration or coordinator issue—not the bulb itself. Focus on the bridge or coordinator path.
Frequently Asked Questions
Why does my bulb show as unavailable after a power outage?
Home Assistant’s integration may not have reconnected. Restart the integration (e.g., ZHA → configure → restart) and if the bulb is still missing, re-pair it by putting the bulb in pairing mode.
Can I use a generic `light.turn_on` service for any bulb?
Yes, as long as the bulb’s entity is of type `light`. If the integration exposes it as `switch`, you must use `switch.turn_on`. Check the entity’s domain in the entity registry.
My routine works for one bulb but not another that’s the same model. Why?
Compare their entity details. One may be on a different coordinator channel or have a different firmware version. Also check that the failing bulb is not part of a light group that includes an offline device.
Do I need to restart Home Assistant after changing an automation?
No. Automation changes take effect immediately when you save the automation. Only restart if you change core integration settings or if the bulb remains unavailable after a coordinator restart.
Explore This Topic
- Back to Smart Home Troubleshooting
- Back to Automation & Routine Fixes
Related guides in this cluster:
- Smart Bulb Routine not Working Alexa: Causes & Fixes
- Smart Doorbell Routine not Working Google Home: Causes & Fixes
- Smart Doorbell Pairing Mode not Working Home Assistant: Causes & Fixes
Smart home integrator and troubleshooting specialist with 8+ years of hands-on experience across Zigbee, Z-Wave, Wi-Fi, Matter, and Thread protocols. Works daily with Home Assistant, Alexa, Google Home, and Apple HomeKit ecosystems. Believes that no smart home problem should require a factory reset as the first step.
