How to Fix Smart Lock Routine not Working Home Assistant: Troubleshooting Guide
If your smart lock routine stops working in Home Assistant, the fault is almost always a low battery, a stale integration connection, or an automation trigger that no longer matches the lock’s state. Start by checking the lock’s battery level in the Home Assistant dashboard, then verify that the lock’s integration (ZHA, Zigbee2MQTT, deCONZ, or native Wi‑Fi) shows “Connected” without errors. A dead routine is often fixed in under two minutes once you know where to look.
Quick Checks Before Diving into Automations
Spend 60 seconds on these four checks before you touch any YAML or automation editor. They catch the most common causes.
Check Battery Level
Most smart locks (including the ULTRALOQ U‑Bolt Pro WiFi and the Aqara Smart Lock U100) report battery voltage through their integration. In Home Assistant, go to Developer Tools → States and search for your lock entity. Look for an attribute like `batterylevel`, `batterypercentage`, or `voltage`. If the battery is below 20% or the voltage is at the low end of the manufacturer’s range, the lock may reject automation commands while still working manually. Replace with fresh alkaline batteries (avoid “heavy duty” carbon‑zinc cells).
If your lock doesn’t expose a battery sensor (older models), proactively replace the batteries every 6–9 months—especially if you see intermittent routine failures.
Verify Integration Health
Open Settings → Devices & Services → Integrations and locate your smart lock’s entry.
- ZHA / Zigbee2MQTT / deCONZ: The lock’s device card should show “Online” with a recent last‑seen timestamp. If the lock is marked “Unavailable” or last seen hours ago, the mesh is failing.
- Native Wi‑Fi (e.g., ULTRALOQ U‑Bolt Pro WiFi): The integration should display “Connected” with no red warning badges. If Home Assistant can’t reach the lock’s cloud API, automations that rely on status changes will break.
- Matter: Verify that the Matter controller (Apple Home, Google Home, or Amazon) shows the lock online. Home Assistant needs a stable bridge to that controller.
A quick restart of the integration (click the three dots → “Reload”) often re‑establishes the connection without a full Home Assistant reboot.
What to do next depends on the integration status. If the integration shows “Connected” and the battery is fine, the next action changes based on a direct test: try locking/unlocking from the lock’s own app. If the app works, the problem is inside Home Assistant (automation logic or trigger entity). If the app also fails, the trouble is with the lock’s WiFi connection or local network—not Home Assistant. Follow the network checks below rather than editing automations.
Test the Lock Directly
Use the lock’s own app or a manual keypad press to lock or unlock. If the lock responds instantly but the routine still fails, the problem is in the automation configuration or the Home Assistant communication path. If the lock does not respond to direct commands, you have a hardware or connectivity issue that needs fixing before any routine will work.
Check Wi‑Fi Band and Network
Many Wi‑Fi smart locks (including ULTRALOQ models) only support 2.4 GHz. If your Home Assistant server is on a 5 GHz network or the lock is connected to a guest VLAN that blocks local traffic, the routine may fail. Confirm both devices are on the same subnet and that the lock’s IP address is reachable from the Home Assistant machine (`ping
Common Causes of Broken Smart Lock Routines
If the quick checks didn’t pinpoint the issue, work through these likely culprits.
Battery Drain and Low Voltage
Even a lock that unlocks manually can refuse automation commands when the battery dips below 4.5 V (for most 4‑AA or 8‑AA models). Home Assistant sends a lock/unlock command as a single pulse; if the voltage sags during that pulse, the lock ignores it. Battery issues are the single most common reason for routine failures—check the voltage attribute, not just the percentage.
Integration Timeouts or Reconnects
Zigbee locks sometimes go silent after a coordinator firmware update or a network key change. In Zigbee2MQTT, look at the log for “Device left network” or “Unresponsive” messages. In ZHA, check the Cluster tab for any failed commands. If the lock dropped off the mesh, you’ll need to re‑pair it (tap the device → “Remove” then re‑interview). For Wi‑Fi locks, check the router’s device list; if the lock’s IP changed, update the integration’s host setting.
Automation Trigger or Action Errors
A routine that worked before may break after a Home Assistant core update. Common problems:
- The trigger entity changed name (e.g., `binarysensor.mydoor` → `binarysensor.mydoor_contact`).
- The action expects a service that no longer exists (e.g., `lock.lock` vs. `lock.set_state`).
- Conditions are too strict: a “state” condition that checks for `unlocked` when the lock reports `open` (for deadbolts that report both) will never fire.
Open the automation in the YAML editor and look for red error markers. If you see “Service not found” or “Entity not defined,” those are the root cause.
Protocol‑Specific Issues
- Zigbee/Z‑Wave: A new device added to the mesh may cause interference or a routing change that delays commands. Move the lock closer to a mains‑powered router device (like a smart plug) or reduce the mesh size to under 40 devices.
- Wi‑Fi (direct to cloud): Routines that rely on the lock’s cloud API will fail if the internet is down or the manufacturer’s server is unreachable. Test by running the same command from the lock’s app while disconnected from Wi‑Fi—if it still works locally, the routine can use local API calls if supported (check manufacturer documentation).
- Matter: Ensure the Matter fabric is still intact. A hub firmware update can break the bridge; re‑pairing the lock into Home Assistant via the Matter controller usually resolves it.
Recurrence Pattern: Intermittent Routine Failure After Battery Change
You replace the batteries, the routine works for three days, then stops again. The symptom is sporadic—sometimes the automation fires, sometimes it doesn’t. The likely cause is a weak spring contact or corrosion on the battery terminals. Touching the terminals with a pencil eraser or fine sandpaper can remove film that builds up over time, restoring solid contact. The safer next move is to inspect the terminals inside the lock’s battery compartment. If you see white or green corrosion, clean it with a cotton swab dipped in white vinegar, then dry thoroughly before reinstalling new batteries. Do not use rechargeable NiMH cells in any smart lock unless the manufacturer explicitly supports them—their lower voltage (1.2 V vs. 1.5 V alkaline) often causes the exact intermittent failures you’re chasing.
Step‑by‑Step Fix for Routine Failures
Follow these steps in order. Each step has a checkpoint—if the routine works after that step, you’re done.
1. Replace batteries with fresh alkaline cells.
- Checkpoint: Test the routine after 30 seconds. If it works, the issue was low voltage.
2. Reboot the lock (remove and reinsert batteries, or press the physical reset button for 5 seconds) and restart Home Assistant Core.
- Checkpoint: Force‑run the automation from the Developer Tools → Actions page. If it executes, the restart cleared a stale connection.
3. Re‑authenticate the lock’s integration – For Wi‑Fi locks, remove the integration and re‑add it using the lock’s Wi‑Fi setup process. For Zigbee/Z‑Wave, “Reconfigure” the device in ZHA or Zigbee2MQTT.
- Checkpoint: Verify the lock entity shows “Available” and check the last‑updated timestamp in the states page.
4. Review the automation logic – Export the automation YAML and look for:
- `entity_id:` pointing to a retired entity.
- `service:` using `lock.lock` when the lock expects `lock.set_state` with `state: locked`.
- `condition:` that checks `state` instead of `attribute` (e.g., `state: ‘locked’` vs. `attributes.lock_state: ‘locked’`).
- Checkpoint: Test the automation manually. If it still fails, create a simple test automation: “When I press a button, lock the door.” If that works, the original automation has a logic bug.
5. Update the lock’s firmware – Check the manufacturer’s app or website for updates. Some locks (like the ULTRALOQ Bolt Fingerprint) require a firmware flash via the app to fix known Home Assistant compatibility issues.
- Checkpoint: Re‑test the routine after the update finishes.
6. Check network interference – Temporarily move the lock closer to your Wi‑Fi router or Zigbee coordinator. If the routine starts working, you need a stronger signal. Add a Zigbee router (a mains‑powered smart plug) or a Wi‑Fi extender.
Decision Criterion: Protocol vs. Battery
If you’re unsure whether to blame the battery or the integration, use this rule:
- If the lock works manually but fails only when Home Assistant sends a command, the problem is likely an integration timeout or automation error (battery is usually fine).
- If the lock works manually sometimes and fails at random times, the battery is the prime suspect.
When to Stop Troubleshooting
Escalate to a factory reset or hardware support if you see any of these signs:
- The lock does not respond to any command—manual, app, or Home Assistant—even after new batteries.
- The integration refuses to discover the lock after three re‑pair attempts.
- The lock’s motor makes a buzzing sound but the deadbolt doesn’t move (mechanical failure).
- The lock’s LED flashes an error code that matches a hardware fault in the user manual.
In these cases, contact the manufacturer or replace the unit. Spending more time on software fixes won’t help.
Success Check
After applying the steps above, your smart lock routine should reliably:
- Lock and unlock when the trigger condition is met.
- Update the Home Assistant entity state within 2–5 seconds of the lock physically changing position.
- Survive a Home Assistant restart without needing a manual re‑pair.
If the routine still fails occasionally, log the exact time and error message using the Home Assistant system log (`/config/home-assistant.log`) and open a support issue on the integration’s GitHub repository.
Decision Aid: Is Your Lock Battery or Integration at Fault?
| Check Item | Pass | Fail → Next Action |
|---|---|---|
| Battery voltage ≥ 4.5 V (or manufacturer spec) | ☐ | Replace batteries |
| Lock responds to manual keypad or app | ☐ | Check lock hardware |
| Integration shows “Available” in Home Assistant | ☐ | Restart integration |
| Automation trigger entity exists in Dev‑Tools States | ☐ | Update trigger entity |
| Automation action service call runs from Dev‑Tools | ☐ | Correct service/action |
| Lock and Home Assistant are on same network subnet | ☐ | Move to same VLAN |
| Last firmware update ≤ 12 months old | ☐ | Update firmware |
| Zigbee/Z‑Wave mesh has no “unavailable” devices | ☐ | Re‑pair or add router |
| Lock is within 30 ft of Wi |
Explore This Topic
- Back to Smart Home Troubleshooting
- Back to Automation & Routine Fixes
Related guides in this cluster:
- How to Fix Smart Light Routine not Working Home Assistant: Troubleshooting Guide
- How to Fix Smart Lock Routine not Working Alexa: Troubleshooting Guide
- How to Fix Smart Light Routine not Working Google Home: Troubleshooting Guide
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.
