Set a value
Use this action to change any value that Z-Wave recognizes on a device. It is for advanced use cases where you need to change the state of a node and can’t do it through a regular Home Assistant entity.
Correctly using this action requires advanced knowledge of Z-Wave. It performs minimal validation and passes your input straight to the Z-Wave JS API, so trouble usually means an incorrect value somewhere. To change a configuration parameter, use the Set device configuration parameter or Bulk set partial configuration parameters action instead.
You can target the action at one or more entities, devices, or areas. At least one of those must be provided.
Using this action from the user interface
If you prefer building automations and scripts visually, Home Assistant walks you through this action step by step. You pick what to target, tweak a few options, and save. No YAML knowledge required.
To set a value from an automation or a script:
- Go to Settings > Automations & scenes.
- Open an existing automation or script, or select Create automation > Create new automation.
- If you’re setting up a new automation, add a trigger in the When section. Scripts don’t need a trigger. They run when something else calls them.
- In the Then do section, select Add action.
- From the list of actions, search for and select Set a value.
- Select the Z-Wave entities, devices, or areas to target, then set the Command class, Property, and Value.
- Select Save.
Options in the UI
The area, or areas, to target. All Z-Wave devices and entities in the area are targeted.
A map of set value options. Refer to the Z-Wave JS documentation for the available options.
Using this action 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 action as zwave_js.set_value. A basic example looks like this:
action: zwave_js.set_value
target:
entity_id: switch.kitchen
data:
command_class: 117
property: local
value: 2
Options in YAML
The area ID, or list of area IDs, to target. All Z-Wave devices and entities in the area are targeted. At least one of entity_id, device_id, or area_id is required.
The device ID, or list of device IDs, to target. At least one of entity_id, device_id, or area_id is required.
The entity ID, or list of entity IDs, to target. At least one of entity_id, device_id, or area_id is required.
A map of set value options. Refer to the Z-Wave JS documentation for the available options.
Good to know
- You must target at least one entity, device, or area.
- This action does minimal validation. If it isn’t working, double-check the command class, property, and value against the Z-Wave JS documentation.
Still stuck?
The Home Assistant community is quick to help: join Discord for real-time chat, post on the community forum with the action you’re calling and what you expected to happen, or share on our subreddit /r/homeassistant.
AI assistants like ChatGPT or Claude can also explain actions or suggest the right one when you describe what you want in plain language.
Related actions
These actions work well alongside this one:
-
Set a value on multiple devices via multicast: Changes a value on multiple Z-Wave devices at once using multicast.
-
Invoke a Command Class API on a node: Calls a Command Class API directly on a Z-Wave node.