Set a Zigbee cluster attribute

Use this action to write a value directly to a Zigbee cluster attribute on a device. This is a low-level tool for fine-tuning device behavior or working around device quirks that aren’t exposed through the regular entities. You need to know the device’s IEEE address, the endpoint, the cluster, and the attribute you want to change.

Only users with administrator rights can run this action.

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 cluster attribute from an automation or a script:

  1. Go to Settings > Automations & scenes.
  2. Open an existing automation or script, or select Create automation > Create new automation.
  3. 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.
  4. In the Then do section, select Add action.
  5. Search for and select Set Zigbee cluster attribute.
  6. Fill in the device, endpoint, cluster, attribute, and value.
  7. Select Save.

Options in the UI

IEEE

The IEEE address of the device.

Endpoint ID

The endpoint on the device that holds the cluster.

Cluster ID

The cluster that holds the attribute.

Cluster type (Optional)

Whether the cluster is an input (server) or output (client) cluster. Defaults to input.

Attribute

The ID of the attribute to write.

Value

The value to write to the attribute.

Manufacturer (Optional)

The manufacturer code to use for the write. Use -1 to force no manufacturer code.

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 zha.set_zigbee_cluster_attribute. A basic example looks like this:

ActionActions are used in several places in Home Assistant. As part of a script or automation, actions define what is going to happen once a trigger is activated. In scripts, an action is called *sequence*. [Learn more]
action: zha.set_zigbee_cluster_attribute
data:
  ieee: "00:0d:6f:00:05:7d:2d:34"
  endpoint_id: 1
  cluster_id: 8
  attribute: 17
  value: 50

Options in YAML

ieee string Required

The IEEE address of the device.

endpoint_id integer Required

The endpoint on the device that holds the cluster.

cluster_id integer Required

The cluster that holds the attribute.

cluster_type string

Whether the cluster is an input (server) or output (client) cluster, set as in or out. Defaults to in.

attribute integer Required

The ID of the attribute to write.

value integer Required

The value to write to the attribute.

manufacturer integer

The manufacturer code to use for the write. Use -1 to force no manufacturer code.

Good to know

  • Cluster, attribute, and endpoint IDs are specific to each device. You can look them up on the device’s page under Manage clusters.
  • Writing the wrong value to an attribute can cause a device to behave unexpectedly. Double-check the values before you run the action.

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.

Tip

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: