Zigbee2MQTTZigbee2MQTT
  • Getting started
  • Supported Adapters
  • Supported Devices
  • Installation
  • Configuration
  • Usage
  • FAQ
Devices
  • Zigbee

    • Zigbee network
    • Improve network range and stability
    • Secure your Zigbee network
    • Sniff Zigbee traffic
    • Create a CC2530 router
  • Support new devices

    • Support new devices
    • Support new Tuya devices
    • Find Tuya Data Points
  • Remote Adapter

    • Connect to a remote adapter
    • Connect to a remote Sonoff ZBBridge
  • More

    • 3D cases
    • External converters
    • External extensions
    • Switch to the dev branch
    • Get Tuya and Xiaomi OTA url
  • Forum
  • Discord
  • Issues
  • Donate
GitHub
GitHub (docs)
  • Getting started
  • Supported Adapters
  • Supported Devices
  • Installation
  • Configuration
  • Usage
  • FAQ
Devices
  • Zigbee

    • Zigbee network
    • Improve network range and stability
    • Secure your Zigbee network
    • Sniff Zigbee traffic
    • Create a CC2530 router
  • Support new devices

    • Support new devices
    • Support new Tuya devices
    • Find Tuya Data Points
  • Remote Adapter

    • Connect to a remote adapter
    • Connect to a remote Sonoff ZBBridge
  • More

    • 3D cases
    • External converters
    • External extensions
    • Switch to the dev branch
    • Get Tuya and Xiaomi OTA url
  • Forum
  • Discord
  • Issues
  • Donate
GitHub
GitHub (docs)
  • Getting started
  • Supported Hardware
    • Adapters
    • Devices
  • Installation
    • Linux
    • Docker
    • Home Assistant addon
    • openHABian
    • Windows
    • FreeBSD jail
    • Kubernetes
    • Watchdog
    • /guide/installation/20_zigbee2mqtt-fails-to-start.html
    • Zigbee2MQTT fails to start/crashes runtime
  • Configuration
    • Adapter settings
    • MQTT
    • Zigbee network
    • Frontend
    • Devices and Groups
    • Logging
    • Device blocklist / passlist
    • OTA device firmware update
    • Device Availability
    • Home Assistant integration
    • More configuration options
    • Configuration update
    • All settings
  • Usage
    • Allowing devices to join
    • Integrations
    • Touchlink
    • Scenes
    • Binding
    • Groups
    • OTA updates
    • MQTT Topics and Messages
    • Exposes
    • Health
  • FAQ

Touchlink

Touchlink (or ZLL) is a feature that allows Zigbee devices to communicate, without necessarily being in the same network.

Devices must be physically close to each other, and have Touchlink enabled in their firmware.
Range depends on devices: normally 10cm, but up to 1m on strong adapters.

Example uses:

  • Identify or reset devices near the coordinator via Zigbee2MQTT
  • Reset devices via a Touchlink-capable device, e.g. Hue dimmer switch gen 1
  • Setup device-to-device binding (e.g. remote to light) without involving the coordinator and Zigbee2MQTT

Support

Coordinator

Texas Instruments adapters (zStack, CCxxxx) are fully supported.

Silicon Labs adapters (EmberZNet, EFR32xxxx) are partially supported.
2026-03-18: The Scan operation does not produce responses with some firmware versions. Philips Hue reset is not affected. Under investigation

Other adapters/drivers are currently not supported.

Devices

Compatible devices expose the Touchlink cluster, which includes most Philips and IKEA devices, some Tuya light bulbs, Namron relays and more.

Warning

Some devices may disable Touchlink after a few minutes! (security measure)
Power-cycle the device to make sure it's active.

Tips

All commands below can also be executed via the frontend Touchlink tab.

Scan

Scan for Touchlink-enabled devices near the coordinator.
The outcome of this scan can be used later, to choose which device to reset or identify.

This can take up to 1 minute. This is a disruptive operation, during the scan, communication with devices is unavailable (be sure to account for that, prefer times of lesser usage if necessary).

To scan, send an MQTT message to zigbee2mqtt/bridge/request/touchlink/scan with an empty payload.

The response will be sent to zigbee2mqtt/bridge/response/touchlink/scan, example payload: {"data":{"found":[{"ieee_address": "0x12345678", "channel": 12}, {"ieee_address": "0x12654321", "channel": 24}]},"status":"ok"}.

Identify

Identify a nearby device via Touchlink (e.g. bulb blinking).

Send an MQTT message to zigbee2mqtt/bridge/request/touchlink/identify with payload e.g. {"ieee_address": "0x12345678", "channel": 12}
(Use scan from above to determine ieee_address and channel).

Factory reset device

Factory reset nearby devices through Touchlink. Demonstration: video

If the device does not enter pairing mode after one of the following methods, it may additionally need one power-cycle.

To pair the device again, permit joining after the reset is done.

Any device

Without targeting a specific device, it is advised to power-off devices that should not be reset or ensure they are out of range (the first device found becomes the target). Send an MQTT message to zigbee2mqtt/bridge/request/touchlink/factory_reset with an empty payload.

Zigbee2MQTT will start scanning. After some time the device will identify itself and reset.

Specific device

IEEE address + channel

Target a specific device by adding a payload to the above message, e.g. {"ieee_address": "0x12345678", "channel": 12}. (Obtain the values from a scan)

Serial number (Philips Hue only)

Most Philips Hue devices can be targeted without scanning, by using the serial number written on the device. More info on device-specific pages, e.g. Hue white ambiance E27

Help to make the docu better and edit this page on Github ✌
Last Updated: 4/11/26, 11:08 AM
Prev
Integrations
Next
Scenes