Quick Answer
Z-Wave is still the gold standard for smart locks — interference-free 900MHz band, strong security, excellent battery life. Zigbee locks are also available and work with Zigbee2MQTT. Matter locks are starting to appear and will be the future. For HA, a Z-Wave JS stick + Z-Wave lock is the most reliable local control setup today.
Table of Contents
What You Need
- Compatible smart lock (Schlage, Yale, Kwikset)
- Z-Wave USB stick (Zooz ZST10 700 or Aeotec Z-Stick)
- Home Assistant with Z-Wave JS integration
Protocol Overview: Z-Wave vs Zigbee vs Matter
| Feature | Z-Wave | Zigbee | Matter (Thread) |
|---|---|---|---|
| Frequency | 908MHz (US) | 2.4GHz | 2.4GHz |
| Interference risk | Very low | Medium (Wi-Fi overlap) | Medium |
| Mesh networking | ✅ Yes | ✅ Yes | ✅ Yes (Thread) |
| Security certification | S2 (strong) | Zigbee 3.0 | Matter security |
| Lock brands | Schlage, Yale, Kwikset | Yale, some Schlage | Emerging (2024+) |
| HA integration | Z-Wave JS (excellent) | Z2M/ZHA (good) | Matter integration |
| Battery life | 1–2 years | 6–18 months | Similar to Zigbee |
Best Locks for Local Home Assistant Control
Z-Wave Locks (Recommended)
- Schlage BE469ZP: Z-Wave Plus (700 series), S2 security, built-in alarm, works flawlessly with Z-Wave JS
- Yale YRD256: Z-Wave Plus, touchscreen, 25 user codes, excellent Z-Wave JS support
- Kwikset SmartCode 888: Z-Wave Plus, auto-lock, very affordable, broad compatibility
Zigbee Locks
- Yale YRD256-ZW2: Also available in Zigbee flavor — works with Zigbee2MQTT
- Kwikset 620: Zigbee version, compatible with Z2M and ZHA
Setup Per Protocol
Z-Wave Lock Setup:
- Install the Z-Wave JS add-on in HA (Settings → Add-ons → Z-Wave JS)
- Plug in your Z-Wave USB stick
- In HA: Settings → Integrations → Z-Wave JS → configure with your USB stick path
- Go to the Z-Wave JS UI → Add Node (inclusion mode)
- Follow your lock's inclusion instructions (usually hold a button on the lock for 3 seconds)
- The lock appears in HA with lock/unlock entities and battery sensor
Zigbee Lock Setup:
- Enable Permit Join in Zigbee2MQTT
- Enter inclusion mode on the lock (typically hold the program button)
- Lock pairs and appears in Z2M device list and HA
Auto-Lock After 5 Minutes (YAML)
automation:
- alias: "Auto-lock front door"
description: "Lock front door 5 minutes after it's unlocked"
trigger:
- platform: state
entity_id: lock.front_door
to: "unlocked"
for:
minutes: 5
condition:
- condition: state
entity_id: lock.front_door
state: "unlocked"
action:
- service: lock.lock
target:
entity_id: lock.front_door
- service: notify.mobile_app_your_phone
data:
title: "Front Door Locked"
message: "Front door auto-locked after 5 minutes."
Arrival Notification (YAML)
automation:
- alias: "Front door unlocked - arrival notification"
description: "Alert when lock is unlocked with keypad code"
trigger:
- platform: state
entity_id: lock.front_door
to: "unlocked"
attribute: changed_by
condition:
- condition: template
value_template: >
{{ trigger.to_state.attributes.changed_by is not none
and trigger.to_state.attributes.changed_by != 'HA' }}
action:
- service: notify.mobile_app_your_phone
data:
title: "Front Door Unlocked"
message: >
Door unlocked at {{ now().strftime('%H:%M') }}
{% if trigger.to_state.attributes.changed_by %}
by code {{ trigger.to_state.attributes.changed_by }}
{% endif %}
Troubleshooting
- Entities don’t appear in Home Assistant: Confirm the integration is loaded correctly and double-check that the device is supported by the platform you chose.
- Commands feel delayed: This is usually caused by cloud polling, weak Wi-Fi, or a slow Zigbee mesh rather than Home Assistant itself.
- Things work in the vendor app but not in HA: Re-check credentials, local API permissions, and whether the device is using the correct network path.
- Automations misfire: Open the automation trace in Home Assistant and verify the exact entity IDs and state changes being used.
FAQ
Can a smart lock be controlled when my internet is down?
Yes — Z-Wave and Zigbee locks communicate locally. As long as your HA server is running (even with no internet), you can lock/unlock via the HA app on your local Wi-Fi. The physical keypad always works regardless of power to HA.
Are smart locks secure against hacking?
Z-Wave S2 security is strong and uses AES-128 encryption with key exchange. The physical lock cylinder is the weakest link in most cases. A determined attacker will pick the lock before exploiting Z-Wave. Use a high-quality deadbolt.
Can I use door codes in Home Assistant automations?
Yes — Z-Wave JS exposes "last used code slot" as an attribute. Combine with the notify service to get alerts like "Code slot 3 (Guest) used at 3:47 PM." You can also set/delete codes via the lock service in HA.
SmartWired uses affiliate links. If you buy through our links, we may earn a commission at no extra cost to you. See our Affiliate Disclosure.