Ongoing discussion can be found here: Koenkk/zigbee2mqtt#764
Zigbee2mqtt has support for Zigbee groups. By using Zigbee groups you can control multiple devices simultaneously with one command.
Add the following to your configuration.yaml
.
groups:
# ID, each group should have a different numerical ID
'1':
# Name which will be used to control the group
friendly_name: group_1
# Devices of this group,
# Note: this has to be the ieeeAddr of the device, not the friendly_name!
devices:
- '0x00158d00018255df'
The group ID (in the above example '1'
) should be a numerical string. In case you want to use a hexadecimal group ID (e.g. 0xe24c
) you should first convert it to a numerical string (e.g. 57932
).
If using the Hassio add-on, restart it after modifying your configuration.yaml
as above.
The group of a device can also be configured using the following commands:
zigbee2mqtt/bridge/group/[GROUP_FRIENDLY_NAME]/add
with payloadDEVICE_FRIENDLY_NAME
will add a device to a group.zigbee2mqtt/bridge/group/[GROUP_FRIENDLY_NAME]/remove
with payloadDEVICE_FRIENDLY_NAME
will remove a device from a group.zigbee2mqtt/bridge/group/[GROUP_FRIENDLY_NAME]/remove_all
with payloadDEVICE_FRIENDLY_NAME
will remove a device from all groups.
Controlling a group is similar to controlling a single device. For example to turn on all devices that are part of group send a MQTT message to zigbee2mqtt/[GROUP_FRIENDLY_NAME]/set
with payload:
{
"state": "ON",
}
When one of the devices in a group changes it's state, the group state will also update. E.g. device A is in group 1
with friendly_name: my_group
, when group A turns off, a message to zigbee2mqtt/my_group
with payload {"state": "OFF"}
will be published.
By using the above add
command above, a device will be added to a group. The device itself is responsible for storing to which groups it belongs. Others, e.g. the coordinator, do not have knowledge to which device a groups belongs.
When using the set
command, e.g. to turn on all devices in a group, a broadcast request is send to *all devices in the network. The device itself then determines if it belongs to that group and if it should execute the command.