Z-Wave event
The Z-Wave event trigger fires on Z-Wave JS controller, driver, or node events. Use it to react to events that the Z-Wave JS layer reports but that Home Assistant does not surface as a regular state change.
This trigger is useful when:
- You want to react to controller or driver lifecycle events, like inclusion or interview progress.
- You want to react to a node event that is not exposed as an entity state.
- You need to match a specific event by name and, optionally, by event data.
This trigger is configured in YAML only. It cannot be added from the automation editor in the UI.
There is strict validation in place based on all known event types. If you come across an event type that is not supported, open a GitHub issue in the home-assistant/core repository.
Using this trigger in YAML
If you work directly in YAML, or you want to know exactly what Home Assistant does under the hood, this section has the technical reference. It lists the field names you use in YAML, their types, and which ones are required.
In YAML, refer to this trigger as zwave_js.event. A basic example looks like this:
trigger: zwave_js.event
device_id: 45d7d3230dbb7441473ec883dab294d4
event_source: node
event: "interview failed"
This fires when the interview failed event is reported for the targeted device.
Options in YAML
For node events, at least one of device_id or entity_id must be set. For controller and driver events, config_entry_id must be set instead.
The event name. Refer to the Z-Wave JS documentation for the available events.
One or more device IDs of Z-Wave devices to watch. Required for node events when entity_id is not set.
One or more entity IDs whose devices should be watched. Required for node events when device_id is not set.
The config entry ID of the Z-Wave network. Required for controller and driver events.
Good to know
- Event names and the structure of event data come from Z-Wave JS. The set of available fields depends on the event.
- When an event includes nested fields (for example, an
argsmapping insideevent_data), usepartial_dict_match: trueif you only want to match a subset of those fields. - This trigger does not appear in the automation editor in the UI. You can add it by editing the automation in YAML mode.
Available trigger data
In addition to the standard automation trigger data, this trigger exposes the following template variables:
-
trigger.device_id: Device ID for the device in the device registry. Only included fornodeevents. -
trigger.node_id: Z-Wave node ID. Only included fornodeevents. -
trigger.event_source: Source of the event (node,controller, ordriver). -
trigger.event: Name of the event. -
trigger.event_data: Any data included in the event.
More examples
Real scenarios where this trigger fires in automations and scripts. Copy any example and adapt it to your setup.
You don’t need to edit YAML to use these examples. Copy a YAML snippet from this page, open the automation editor in Home Assistant, and press Ctrl+V (or Cmd+V on Mac). Home Assistant automatically converts the pasted YAML into the visual editor format, whether it’s a full automation, a single trigger, a condition, or an action.
Automation: notify when a node interview fails
This automation fires when the interview failed event is reported for one of the listed devices, and only when the failure is final.
-
Trigger: Z-Wave event
- Device: Garage door lock
-
Entities:
lock.front_lock,lock.back_door -
Event source:
node -
Event:
interview failed -
Event data:
args.isFinal: truewith Partial dict match enabled
- Action: Send a notification
YAML example for a final interview failure notification
alias: "Notify on Z-Wave interview failure"
triggers:
- trigger: zwave_js.event
device_id: 45d7d3230dbb7441473ec883dab294d4
entity_id:
- lock.front_lock
- lock.back_door
event_source: node
event: "interview failed"
event_data:
args:
isFinal: true
partial_dict_match: true
actions:
- action: notify.send_message
target:
entity_id: notify.my_device
data:
message: "A Z-Wave node failed its interview."
Still stuck?
The Home Assistant community is quick to help: join Discord for real-time chat, post on the community forum with the trigger you’re using and what you expected to happen, or share on our subreddit /r/homeassistant.
AI assistants like ChatGPT or Claude can also explain triggers or suggest the right one when you describe what you want in plain language.
Related triggers
These triggers work well alongside this one:
-
Z-Wave value updated: Triggers when a Z-Wave value updates, including values that are not exposed as Home Assistant entities.
-
Manual event received: Triggers when an event is received.