In some smart homes,
users notice that Home Assistant automations stop triggering whenever the Z-Wave
JS network begins a heal process. While this issue may seem confusing at
first, the root cause is usually related to how Z-Wave manages routes, device
availability, and controller workload during network maintenance.
This article explains the key reasons behind this behavior and how to fix it
efficiently.
1. Z-Wave Heal
Temporarily Suspends Device Communication
A Z-Wave heal
recalculates routing paths for every device in the mesh. During the process:
- Nodes stop normal communication
- Some devices go into query mode
- Traffic becomes diagnostic-only
- Automations depending on device states
temporarily lose data
Because Home Assistant
requires real-time device reports to trigger automations, any temporary
communication pause causes them not to fire.
2. Network Flooding
Delays Event Delivery
During a heal, the
Z-Wave controller processes heavy internal traffic:
- Route rediscovery
- Neighbor table updates
- Signal quality checks
- Device ping requests
This creates traffic
congestion, delaying or dropping:
- Motion events
- Switch on/off commands
- Door lock reports
- Sensor values
Automations fail
simply because the events never reach Home Assistant in time.
3. Z-Wave JS
Prioritizes Mesh Maintenance Over User Commands
The Z-Wave protocol
gives mesh stability higher priority than:
- Automations
- User-triggered actions
- Event broadcasting
This means that while
the network heal is running, your controller focuses on building clean routes.
As a result, Home Assistant may not receive enough node updates to evaluate
conditions or fire actions.
4. Battery-Powered
Devices Go Temporarily Offline
Battery devices
(motion sensors, door sensors, locks) sleep most of the time.
During a heal:
- The controller attempts to communicate
- Many devices ignore the command if they
are asleep
- They are marked as “not responding”
- Their events cannot be used to trigger
automations
If your automation
depends on these devices, it will not run until the heal completes.
5. Z-Wave JS Heal
Can Take Several Minutes
Large or dense Z-Wave
networks may require 5–20 minutes for a complete heal.
During this window:
- Automations relying on Z-Wave inputs may
fail
- Event-based triggers become unreliable
- Conditional checks involving Z-Wave
entities may time out
This is normal
behavior and not an indication of hardware failure.
How to Fix the
Issue
1. Avoid Running
Heals Automatically
Disable auto-healing
in Z-Wave JS unless absolutely necessary.
Heals should be performed only when:
- Devices have moved
- Routes have become unreliable
- You removed multiple nodes
- You've added many new devices at once
2. Schedule Heals
Only at Night
If you must run heals:
- Do it at 3–4 AM
- Ensure no routine depends on Z-Wave events
during that time
3. Use
Mixed-Technology Triggers
For critical
automations, add redundancy:
- Wi-Fi presence sensors
- Thread sensors
- Local Bluetooth triggers
This ensures
automations still fire even if Z-Wave is busy.
4. Reduce Z-Wave
Mesh Load
If your network is
large, optimize it by:
- Using more Z-Wave repeaters
- Distributing devices evenly
- Moving the controller to a central
location
5. Update Z-Wave JS
and Firmware
Newer versions often
include:
- Better heal performance
- Reduced blocking behavior
- Faster queue processing
Conclusion
Home Assistant
automations fail during a Z-Wave JS heal because the controller temporarily
shifts its focus from event processing to mesh maintenance. This is expected
behavior and not a system malfunction. By scheduling heals manually, optimizing
the network, and using mixed triggers, you can ensure your automations remain
stable and responsive.