Z-Wave has been quietly powering reliable smart homes for over 20 years. It runs on its own radio frequency, never competes with your Wi-Fi, and every certified device is guaranteed to work with every other Z-Wave device. Here's how to set it up right in Home Assistant.
Zigbee gets most of the attention, but Z-Wave has some genuine advantages that make it the better choice for certain devices. It operates on a completely separate frequency from everything else in your home, which means zero interference.
Z-Wave runs at 868/908 MHz, completely separate from your 2.4 GHz Wi-Fi and Zigbee. No competition for bandwidth, no dropped signals when your microwave is on.
Every Z-Wave device must pass certification before it can be sold. A Z-Wave switch from 2015 is guaranteed to work with a Z-Wave hub from 2026. No "maybe compatible" guessing games.
Z-Wave S2 encryption is mandatory for all new devices. This matters a lot for door locks and security sensors. Zigbee encryption is optional and sometimes poorly implemented.
Z-Wave's mesh network automatically reroutes when a device goes offline. With enough mains-powered repeaters spread around your home, the network handles itself.
Z-Wave 800 series introduced Long Range mode: up to 400 meters line of sight and up to 4,000 devices per network. Perfect for outbuildings, garages, and large properties.
No cloud. No internet dependency. No subscription fees. Z-Wave devices communicate directly with your controller. Your smart home keeps running during outages.
You need a USB Z-Wave controller (sometimes called a stick or dongle) to connect Z-Wave devices to Home Assistant. Here are the best options in 2026.
~$35
~$30
~$13
Important: The Home Assistant SkyConnect does NOT support Z-Wave. It only handles Zigbee and Thread. If you want both Z-Wave and Zigbee, you need two separate controllers. They work fine side by side. Also, always use a USB extension cable (even a short 1m one) to move the controller away from your server. USB 3.0 ports generate radio interference that kills Z-Wave range.
Z-Wave JS is the only officially supported Z-Wave integration in Home Assistant. The old OpenZWave integration was removed in 2024. Here's how to get up and running.
Connect your USB Z-Wave stick to your Home Assistant server. Use a USB extension cable to keep it away from the USB port. Home Assistant should auto-detect it.
Go to Settings > Add-ons > Add-on Store and install "Z-Wave JS". If you run Home Assistant Container (Docker), install Z-Wave JS UI as a separate Docker container instead. Start the add-on and select your USB device in the configuration tab.
Go to Settings > Devices & Services > Add Integration > Z-Wave. Home Assistant will auto-detect the Z-Wave JS server running on your add-on. Click submit and you're connected.
Click "Add Device" in the Z-Wave integration, then put your Z-Wave device in inclusion mode (usually pressing a button 3 times). Choose S2 security when prompted for locks and security devices. The device will appear in Home Assistant within a few seconds.
If you run Home Assistant in Docker, add Z-Wave JS UI as a companion container in your Docker Compose file. Pass through your USB device with /dev/ttyUSB0:/dev/ttyUSB0 (or use /dev/serial/by-id/ for a stable path). Point the Home Assistant Z-Wave integration to ws://zwave-js-ui:3000. Check our Docker guide for the full compose file.
This isn't a "pick one" situation. Most serious Home Assistant users run both. But understanding the tradeoffs helps you pick the right protocol for each device type.
Z-Wave for locks, switches, dimmers, and security devices. Zigbee for sensors, bulbs, buttons, and anything budget-sensitive. Two USB controllers work perfectly side by side in Home Assistant. Each protocol has its own radio frequency, so they never interfere with each other. Read our complete Zigbee guide to set up the other half of your smart home.
These are tried and tested devices with great Home Assistant support. Every recommendation here works reliably with Z-Wave JS.
Z-Wave 800 series. Scene control with multi-tap. LED indicator customization. Direct association for instant response. ~$30-35
LED notification bar with 16 million colors. Smart bulb mode. Energy monitoring. Multi-tap scenes. Premium build quality. ~$40-45
Built-in Z-Wave 700. Touchscreen keypad. 30 unique codes. S2 security. Rock-solid Home Assistant integration. The gold standard for Z-Wave locks. ~$200
Z-Wave 800 module. Keypad or key-free. DoorSense detects if door is actually closed. Auto-lock. Sleek modern design. ~$180-250
Motion, temperature, humidity, and light level in one device. Z-Wave 700. Battery or USB powered. Great for room-level monitoring. ~$30
Motion, temperature, and light. Compact magnetic mount. 2-year battery life. USB power option. ~$40
Tiny door/window sensors and water leak detectors. Z-Wave 800. Battery lasts 3+ years. Great for security automations. ~$20-25
Heavy-duty smart plug with energy monitoring. Handles up to 15A. Reports watts, kWh, voltage, and current. Perfect for dryers, space heaters, or server racks. ~$30
Z-Wave 700 smart plug with energy monitoring. Compact design. Also acts as a Z-Wave repeater to strengthen your mesh. ~$35
Two dry contact relays. Controls garage doors, gate openers, fireplaces, irrigation valves, or anything with a switch contact. Endlessly versatile. ~$28
Z-Wave Long Range (ZWLR) is an extension of the Z-Wave 800 series that significantly increases range and network capacity. If you have a larger property or outbuildings, this is a big deal.
Maximum range (line of sight). Through walls, expect 100 to 200 meters. Still way better than standard Z-Wave's 30 to 50 meter range.
Maximum devices per network. Standard Z-Wave caps at 232. Long Range blows that limit wide open for commercial-scale deployments.
First, try exclusion mode. The device might be paired to a previous controller. In Z-Wave JS, click "Remove device (exclusion)" and trigger the device's button sequence. Then try including again. Also make sure you're within 3 meters of the controller during initial pairing.
Your mesh network probably needs more repeaters. Every mains-powered Z-Wave device (plug, switch, dimmer) acts as a repeater. If you have dead spots, add a Z-Wave smart plug in between. After adding new repeaters, do a "Heal Network" in Z-Wave JS to let the network rebuild its routing tables. This can take 30 to 60 minutes for larger networks.
Check ls /dev/serial/by-id/ on your host machine. If the stick shows up there but not in Home Assistant, you may need to pass it through in your VM or Docker config. On Proxmox, add the USB device to the VM's hardware tab. In Docker, add it to your compose file's devices section.
Move the USB controller away from your server with an extension cable. USB 3.0 ports generate interference at frequencies that directly impact Z-Wave signals. A 1 to 2 meter USB extension cable often doubles your effective range. Also check that your Z-Wave network doesn't have "ghost nodes" from failed inclusions. Remove them in the Z-Wave JS control panel.
Reduce the device's reporting frequency. Most Z-Wave sensors let you configure how often they send temperature, humidity, or other readings. A sensor reporting every 5 minutes drains batteries much faster than one reporting every 30 minutes. Adjust these settings in the Z-Wave JS device configuration panel.
Not sure which devices are compatible with Home Assistant? Our free scan checks your current setup and recommends the best migration path. Takes 60 seconds.