Search Suggest

Why Do Home Assistant Automations Not Fire When the Z-Wave JS Network Performs a Heal?

Why Do Home Assistant Automations Not Fire When the Z-Wave JS Network Performs a Heal

 


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.