From 396b18fcafe2207d063b6d18689399e078236697 Mon Sep 17 00:00:00 2001 From: Derek Miller <1340081+derek-miller@users.noreply.github.com> Date: Tue, 25 Aug 2026 07:54:20 -0500 Subject: [PATCH 01/69] feat: generic Zigbee 3.0 device driver Generic Control4 driver for Zigbee 3.0 devices, with per-device support generated from zigbee2mqtt (zigbee-herdsman-converters) rather than hand-written per model. - tools/generator: extracts z2m device definitions and maps their exposes to Control4 capability descriptors, emitting generated device data consumed at build time via the preprocessor #embed. - src/zigbee3: shared ZCL runtime (clusters, attributes, type codecs). - generic zigbee3_device driver with dynamic bindings (ESPHome-style model): sensors, actuators (relay/light/lock), buttons/remotes, device settings, and alerts, driven off the generated descriptors. - Settings web UI tab for device configuration outside the property sheet. - generated SUPPORTED_DEVICES list and installer-facing documentation. --- .github/dependabot.yml | 48 + CHANGELOG.md | 54 +- Makefile | 16 + README.md | 257 + SUPPORTED_DEVICES.md | 3465 + drivers/zigbee3_device/driver.c4zproj | 7 + drivers/zigbee3_device/driver.lua | 315 + drivers/zigbee3_device/driver.xml | 216 + .../zigbee3_device/generated/binding_keys.xml | 30822 +++ drivers/zigbee3_device/generated/devices.lua | 146366 +++++++++++++++ .../documentation/images/check-drivers.png | Bin 0 -> 48864 bytes .../documentation/images/finite-labs-logo.png | Bin 0 -> 34107 bytes .../www/documentation/images/header.png | Bin 0 -> 138181 bytes .../documentation/images/search-drivers.png | Bin 0 -> 32801 bytes .../zigbee3_device/www/documentation/index.md | 324 + drivers/zigbee3_device/www/html/index.html | 309 + .../zigbee3_device/www/icons/device_lg.png | Bin 0 -> 2190 bytes .../zigbee3_device/www/icons/device_sm.png | Bin 0 -> 900 bytes .../www/icons/experience_100.png | Bin 0 -> 9660 bytes .../www/icons/experience_1024.png | Bin 0 -> 248475 bytes .../www/icons/experience_110.png | Bin 0 -> 11130 bytes .../www/icons/experience_120.png | Bin 0 -> 12203 bytes .../www/icons/experience_130.png | Bin 0 -> 13915 bytes .../www/icons/experience_140.png | Bin 0 -> 15106 bytes .../www/icons/experience_20.png | Bin 0 -> 1215 bytes .../www/icons/experience_30.png | Bin 0 -> 2024 bytes .../www/icons/experience_300.png | Bin 0 -> 42452 bytes .../www/icons/experience_40.png | Bin 0 -> 2967 bytes .../www/icons/experience_50.png | Bin 0 -> 3937 bytes .../www/icons/experience_512.png | Bin 0 -> 90778 bytes .../www/icons/experience_60.png | Bin 0 -> 5017 bytes .../www/icons/experience_70.png | Bin 0 -> 5997 bytes .../www/icons/experience_80.png | Bin 0 -> 7207 bytes .../www/icons/experience_90.png | Bin 0 -> 8526 bytes drivers/zigbee3_light/driver.c4zproj | 7 + drivers/zigbee3_light/driver.lua | 2454 + drivers/zigbee3_light/driver.xml | 219 + .../zigbee3_light/www/documentation/index.md | 58 + drivers/zigbee3_lock/driver.c4zproj | 7 + drivers/zigbee3_lock/driver.lua | 241 + drivers/zigbee3_lock/driver.xml | 162 + .../zigbee3_lock/www/documentation/index.md | 64 + images/check-drivers.png | Bin 0 -> 48864 bytes images/finite-labs-logo.png | Bin 0 -> 34107 bytes images/header.png | Bin 0 -> 138181 bytes images/search-drivers.png | Bin 0 -> 32801 bytes resources/Driver Icons.sketch | Bin 0 -> 496344 bytes src/constants.lua | 25 +- src/zigbee3/capabilities/button.lua | 65 + src/zigbee3/capabilities/contact.lua | 48 + src/zigbee3/capabilities/light.lua | 272 + src/zigbee3/capabilities/lock.lua | 140 + src/zigbee3/capabilities/measurement.lua | 109 + src/zigbee3/capabilities/relay.lua | 89 + src/zigbee3/channels.lua | 88 + src/zigbee3/config.lua | 65 + src/zigbee3/decoders/init.lua | 64 + src/zigbee3/decoders/standard.lua | 153 + src/zigbee3/decoders/tuya.lua | 140 + src/zigbee3/decoders/xiaomi.lua | 155 + src/zigbee3/device.lua | 1063 + src/zigbee3/light_protocol.lua | 44 + src/zigbee3/lock_protocol.lua | 37 + src/zigbee3/zcl.lua | 211 + tools/generator/.gitignore | 2 + tools/generator/README.md | 123 + tools/generator/analyze-mfg.mjs | 74 + tools/generator/extract-z2m.mjs | 831 + tools/generator/gen-compat.mjs | 159 + tools/generator/gen-devices.mjs | 225 + tools/generator/gen-drivers.mjs | Bin 0 -> 3813 bytes tools/generator/map-c4.mjs | 712 + tools/generator/package-lock.json | 279 + tools/generator/package.json | 9 + 74 files changed, 190574 insertions(+), 19 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 README.md create mode 100644 SUPPORTED_DEVICES.md create mode 100644 drivers/zigbee3_device/driver.c4zproj create mode 100644 drivers/zigbee3_device/driver.lua create mode 100644 drivers/zigbee3_device/driver.xml create mode 100644 drivers/zigbee3_device/generated/binding_keys.xml create mode 100644 drivers/zigbee3_device/generated/devices.lua create mode 100644 drivers/zigbee3_device/www/documentation/images/check-drivers.png create mode 100644 drivers/zigbee3_device/www/documentation/images/finite-labs-logo.png create mode 100644 drivers/zigbee3_device/www/documentation/images/header.png create mode 100644 drivers/zigbee3_device/www/documentation/images/search-drivers.png create mode 100644 drivers/zigbee3_device/www/documentation/index.md create mode 100644 drivers/zigbee3_device/www/html/index.html create mode 100644 drivers/zigbee3_device/www/icons/device_lg.png create mode 100644 drivers/zigbee3_device/www/icons/device_sm.png create mode 100644 drivers/zigbee3_device/www/icons/experience_100.png create mode 100644 drivers/zigbee3_device/www/icons/experience_1024.png create mode 100644 drivers/zigbee3_device/www/icons/experience_110.png create mode 100644 drivers/zigbee3_device/www/icons/experience_120.png create mode 100644 drivers/zigbee3_device/www/icons/experience_130.png create mode 100644 drivers/zigbee3_device/www/icons/experience_140.png create mode 100644 drivers/zigbee3_device/www/icons/experience_20.png create mode 100644 drivers/zigbee3_device/www/icons/experience_30.png create mode 100644 drivers/zigbee3_device/www/icons/experience_300.png create mode 100644 drivers/zigbee3_device/www/icons/experience_40.png create mode 100644 drivers/zigbee3_device/www/icons/experience_50.png create mode 100644 drivers/zigbee3_device/www/icons/experience_512.png create mode 100644 drivers/zigbee3_device/www/icons/experience_60.png create mode 100644 drivers/zigbee3_device/www/icons/experience_70.png create mode 100644 drivers/zigbee3_device/www/icons/experience_80.png create mode 100644 drivers/zigbee3_device/www/icons/experience_90.png create mode 100644 drivers/zigbee3_light/driver.c4zproj create mode 100644 drivers/zigbee3_light/driver.lua create mode 100644 drivers/zigbee3_light/driver.xml create mode 100644 drivers/zigbee3_light/www/documentation/index.md create mode 100644 drivers/zigbee3_lock/driver.c4zproj create mode 100644 drivers/zigbee3_lock/driver.lua create mode 100644 drivers/zigbee3_lock/driver.xml create mode 100644 drivers/zigbee3_lock/www/documentation/index.md create mode 100644 images/check-drivers.png create mode 100644 images/finite-labs-logo.png create mode 100644 images/header.png create mode 100644 images/search-drivers.png create mode 100644 resources/Driver Icons.sketch create mode 100644 src/zigbee3/capabilities/button.lua create mode 100644 src/zigbee3/capabilities/contact.lua create mode 100644 src/zigbee3/capabilities/light.lua create mode 100644 src/zigbee3/capabilities/lock.lua create mode 100644 src/zigbee3/capabilities/measurement.lua create mode 100644 src/zigbee3/capabilities/relay.lua create mode 100644 src/zigbee3/channels.lua create mode 100644 src/zigbee3/config.lua create mode 100644 src/zigbee3/decoders/init.lua create mode 100644 src/zigbee3/decoders/standard.lua create mode 100644 src/zigbee3/decoders/tuya.lua create mode 100644 src/zigbee3/decoders/xiaomi.lua create mode 100644 src/zigbee3/device.lua create mode 100644 src/zigbee3/light_protocol.lua create mode 100644 src/zigbee3/lock_protocol.lua create mode 100644 src/zigbee3/zcl.lua create mode 100644 tools/generator/.gitignore create mode 100644 tools/generator/README.md create mode 100644 tools/generator/analyze-mfg.mjs create mode 100644 tools/generator/extract-z2m.mjs create mode 100644 tools/generator/gen-compat.mjs create mode 100644 tools/generator/gen-devices.mjs create mode 100644 tools/generator/gen-drivers.mjs create mode 100644 tools/generator/map-c4.mjs create mode 100644 tools/generator/package-lock.json create mode 100644 tools/generator/package.json diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..aad7f32 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,48 @@ +version: 2 + +# tools/generator is the only npm manifest in this repo. It builds the device +# database from the zigbee2mqtt definitions and never ships inside a .c4z, so +# these are build-time dependencies only. The root package.json was retired in +# the v0.9.11 template update (docs now render with Python and WeasyPrint), so +# there is nothing left to watch at "/". +# +# Bumping zigbee-herdsman-converters does not update the shipped device tables +# on its own. After merging one of these PRs run `make generate && make build` +# and commit the regenerated drivers/zigbee3_device/generated/* and +# SUPPORTED_DEVICES.md, otherwise the pinned converter version and the +# generated data drift apart. +# +# Both halves are required. `make generate` writes unformatted output, while the +# committed files are post-`make fmt`: stylua wraps devices.lua and mdformat pads +# the SUPPORTED_DEVICES.md tables. Committing raw generator output makes CI fail +# its dirty-tree check, because `make build` runs fmt and rewrites everything. +# It also makes the diff unreadable: raw output reads as roughly 10k insertions +# against 78k deletions, where the real change after formatting is a few +# thousand lines. +# +# CI cannot catch this drift. build.yml runs `make init` and `make build`, never +# `make generate`, so its dirty-tree check only proves the committed files are +# already formatted, not that they match the pinned converters version. A green +# build says nothing about whether this step was run. The local run is the +# verification. +# +# Read the formatted diff before merging, and check more than the channel list. +# A converters release can: +# * re-key a model. DEVICES lookup in src/zigbee3/device.lua is an exact, +# case-sensitive index and Device:restoreModel() re-resolves the persisted +# string on every reload, so a re-key silently drops an already-installed +# device to generic handling on the next driver update. +# * drop a model outright, same effect. +# * drop channels, settings or Tuya datapoint maps from a retained model. +# * drop button wire keys from a retained model, which silently kills any +# Composer programming bound to those actions. +# * narrow a binding key in binding_keys.xml from a ManufacturerName wildcard +# to specific strings, which changes whether Director claims the device at +# all on a fresh pair. +updates: + - package-ecosystem: npm + directory: /tools/generator + schedule: + interval: monthly + commit-message: + prefix: chore diff --git a/CHANGELOG.md b/CHANGELOG.md index 20d14ed..e04026f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,21 +1,43 @@ -# Changelog +# Changelog - -## v[Version] - YYYY-MM-DD + -### Added -- Added - -### Fixed -- Fixed - -### Changed -- Changed +## Unreleased -### Removed -- Removed ---> +### Added -## Unreleased +- Initial release. +- A single generic driver for each joined Zigbee 3.0 device: it speaks ZCL + directly, so adding a device is a data refresh from the zigbee2mqtt database + rather than new code, and thousands of devices are supported. The driver + resolves the joined device's model and builds its proxies, readings, and + settings automatically. +- Sensor support: security sensors (motion, contact, and similar) are enrolled + automatically, and each device's live readings are published as Control4 + variables for programming. +- Per-device configuration from a Settings tab, delivered reliably to + battery-powered (sleepy) devices and enforced across driver reloads. +- Battery, trouble, and offline/online alerts, plus Identify and other device + actions from the Actions tab. +- Button and remote support: wireless remotes and scene controllers fire + Control4 programming events (one per button action, e.g. "1 Single", "2 + Hold"). Actions are decoded from standard ZCL commands (Scenes, On/Off, + Level); the device's button map is captured from the zigbee2mqtt database at + generate time. +- Lock support via a new **Zigbee 3 Lock** companion driver: bind it to a joined + Zigbee 3 Device to control a deadbolt or lever as a standard Control4 lock. + Lock, unlock, and toggle drive ZCL DoorLock; state is tracked from attribute + reports and operation-event notifications (so manual and keypad operation show + up too). An optional Lock Code is sent with commands for locks that require + it. +- Light support via a new **Zigbee 3 Light** companion driver: bind it to a + joined Zigbee 3 Device to control a bulb or fixture as a standard Control4 + light. On/off, dimming, color temperature, and color are enabled automatically + from what the device reports (ZCL On/Off, Level, and Color Control). The + companion owns the light proxy; the device driver translates. +- Switch and relay support: any device with a switch expose is presented as a + Control4 relay connection, one per gang, driven over standard ZCL On/Off. + Multi-gang devices resolve their named endpoints (l1/l2, left/right) to real + Zigbee endpoints from the zigbee2mqtt database. diff --git a/Makefile b/Makefile index c03d3cd..7cc8e14 100644 --- a/Makefile +++ b/Makefile @@ -233,6 +233,22 @@ zip: $(VENV_STAMP) ## Zip the c4z/, docs/, and source/ subfolders per distributi "$$repo.zip" c4z docs source); \ done +# ─── Generate ───────────────────────────────────────────────────────────────── +# Project-specific: regenerate driver device data from the zigbee2mqtt database. +# Runs before `preprocess`; the generated fragments are #embed-ed into the +# hand-authored driver sources. Kept out of `build` so drivers/ stays reviewable +# source, regenerated deliberately when refreshing device support. + +GEN := tools/generator + +$(GEN)/node_modules: $(GEN)/package.json + cd $(GEN) && npm install + @touch $@ + +.PHONY: generate +generate: $(GEN)/node_modules ## Regenerate drivers/ device data from the zigbee2mqtt database + cd $(GEN) && node extract-z2m.mjs && node map-c4.mjs && node gen-drivers.mjs && node gen-devices.mjs && node gen-compat.mjs + # ─── Test ───────────────────────────────────────────────────────────────────── .PHONY: test diff --git a/README.md b/README.md new file mode 100644 index 0000000..a6c9549 --- /dev/null +++ b/README.md @@ -0,0 +1,257 @@ +Zigbee 3 Device + +______________________________________________________________________ + +# Overview + +> DISCLAIMER: This software is neither affiliated with nor endorsed by Control4 +> or the Zigbee Alliance. + +The Zigbee 3 Device driver brings generic **Zigbee 3.0** devices into Control4, +with device support generated from the +[zigbee2mqtt](https://www.zigbee2mqtt.io/) database. Join a device to the +controller's Zigbee 3.0 mesh and the driver resolves its model, wires the right +Control4 proxies and variables, exposes its readings, and lets you configure it +from the **Settings** tab - no per-device driver to hand-write. + +# Index + +
+ +- [System Requirements](#system-requirements) + +- [Features](#features) + +- [Installer Setup](#installer-setup) + + - [Driver Installation](#driver-installation) + - [Joining a Device](#joining-a-device) + - [Driver Setup](#driver-setup) + - [Driver Tabs](#driver-tabs) + - [Settings](#settings) + - [Driver Properties](#driver-properties) + - [Cloud Settings](#cloud-settings) + - [Driver Settings](#driver-settings) + - [Driver Actions](#driver-actions) + +- [Programming](#programming) + + - [Events](#events) + - [Variables](#variables) + +- [Support](#support) + +- [Changelog](#changelog) + +
+ +# System Requirements + +- Control4 OS 4.2.0 or later +- A controller running the **Zigbee 3.0** stack with an open network +- A Zigbee 3.0 device listed in the + [supported devices](https://github.com/finitelabs/control4-zigbee3/blob/main/SUPPORTED_DEVICES.md) + matrix + +# Features + +- Support for thousands of Zigbee 3.0 devices, generated from the zigbee2mqtt + database - adding a device is a data refresh, not new code +- One generic driver per joined device: it speaks ZCL directly and needs no + device-specific driver +- Automatically resolves the joined device's model and builds its proxies, + readings, and settings +- Switches and relays presented as Control4 relay connections, one per gang, so + single and multi-gang wired switches and plugs can be controlled and used in + programming +- Bulbs and fixtures controlled as standard Control4 lights through the + companion **Zigbee 3 Light** driver, with dimming, color temperature, and + color enabled automatically from what the device reports +- Deadbolts and levers controlled as standard Control4 locks through the + companion **Zigbee 3 Lock** driver, with lock, unlock, and status feedback +- Wireless remotes and scene controllers fire programming events for each button + action (single, double, hold, and more), so button presses can drive any + Control4 programming +- Per-device configuration from the **Settings** tab, enforced across driver + reloads and delivered reliably to battery-powered (sleepy) devices +- Live readings published as Control4 variables for programming +- IAS security-sensor enrollment handled automatically +- Battery, trouble, and offline/online alerts for programming +- **Identify** and other device actions from the Actions tab + +# Installer Setup + +## Driver Installation + +Driver installation and setup are similar to most other drivers. Below is an +outline of the basic steps for your convenience. + +1. Download the latest `control4-zigbee3.zip` from + [GitHub](https://github.com/finitelabs/control4-zigbee3/releases/latest). +1. Extract and + [install](https://www.control4.com/help/c4/software/cpro/dealer-composer-help/content/composerpro_userguide/adding_drivers_manually.htm) + all `.c4z` files. +1. Use the "Search" tab to find the "Zigbee 3 Device" driver and add one to your + project for each physical device you intend to join. +
Search Drivers +1. Continue to [Joining a Device](#joining-a-device). + +## Joining a Device + +Add one **Zigbee 3 Device** to the project per physical device, then join each +device to the controller's Zigbee 3.0 network: + +1. Confirm the controller is running the **Zigbee 3.0** stack. +1. Select the driver and open its **Identify** page. +1. Press **Join** to open the Zigbee network for pairing. +1. Put the device into pairing mode (usually a factory reset - see the device's + manual) and wait for it to join. +1. The device's model resolves once it reports in, and its readings, settings, + and actions populate in the **Settings** tab automatically. + +> Battery-powered devices sleep to save power. If a setting shows as _Applying_, +> the change is queued and delivered the next time the device wakes - press the +> device's pairing button once to wake it immediately. + +## Driver Setup + +### Driver Tabs + +While in +[System Design mode](https://www.control4.com/help/c4/software/cpro/dealer-composer-help/content/composerpro_userguide/system_design_view.htm), +the driver adds a **Settings** tab next to the "Properties", "Actions", and +"Lua" tabs. + +#### Settings + +The **Settings** tab is where you view and configure the joined device: + +1. **Device** - the resolved model, connection status, last-seen time, IAS + enrollment state, and the device's live readings (also published as + variables). +1. **Settings** - every configurable setting the device exposes, with the + editable ones shown as dropdowns, toggles, and number fields. Settings that + zigbee2mqtt exposes but that have no writable path are shown read-only. + Changes are enforced across driver reloads and re-sent until the device + confirms them. +1. **Driver** - a convenient mirror of the [Cloud](#cloud-settings) and + [Driver](#driver-settings) properties. + +### Driver Properties + +#### Cloud Settings + +##### Automatic Updates \[ Off | **_On_** \] + +Enables or disables automatic driver updates from GitHub releases. + +##### Update Channel \[ **_Production_** | Prerelease \] + +Sets the update channel for which releases are considered during automatic +updates from GitHub releases. + +#### Driver Settings + +##### Driver Status (read-only) + +Displays the current state of the device - for example _Waiting for device_, +_Online_, _Offline_, or a pending configuration change. + +##### Driver Version (read-only) + +Displays the current version of the driver. + +##### Log Level \[ 0 - Fatal | 1 - Error | 2 - Warning | **_3 - Info_** | 4 - Debug | 5 - Trace | 6 - Ultra \] + +Sets the logging level. Default is `3 - Info`. + +##### Log Mode \[ **_Off_** | Print | Log | Print and Log \] + +Sets the logging mode. Default is `Off`. + +### Driver Actions + +#### Identify + +Blinks the device so you can locate it during setup. Works on any Zigbee 3.0 +device. Other device-specific actions (for example a smoke detector self-test) +are run from the **Execute Action** programming command. + +#### Update Drivers + +Trigger the driver to update from the latest release on GitHub, regardless of +the current version. + +# Programming + +## Events + +| Event | Description | +| --------------- | -------------------------------------------------------------------- | +| Battery Low | Fires when the device reports a low battery | +| Trouble | Fires when the device reports a fault or tamper condition | +| Offline Warning | Fires when the device has failed to report and is considered offline | +| Back Online | Fires when the device reports again after having gone offline | + +For wireless remotes and scene controllers, the driver also adds one event per +button action (for example _1 Single_, _2 Hold_) once the device resolves, so +each press can trigger Control4 programming. + +## Variables + +The driver publishes each of the device's readings (motion, contact, +temperature, humidity, illuminance, battery, and others, depending on the +device) as Control4 variables so they can be used in programming. + +# Support + +If you have any questions, supported-device requests, or issues to report, you +can file an issue on GitHub: + +https://github.com/finitelabs/control4-zigbee3/issues/new + +Buy Me A Coffee + +# Changelog + + + + + +## Unreleased + +### Added + +- Initial release. +- A single generic driver for each joined Zigbee 3.0 device: it speaks ZCL + directly, so adding a device is a data refresh from the zigbee2mqtt database + rather than new code, and thousands of devices are supported. The driver + resolves the joined device's model and builds its proxies, readings, and + settings automatically. +- Sensor support: security sensors (motion, contact, and similar) are enrolled + automatically, and each device's live readings are published as Control4 + variables for programming. +- Per-device configuration from a Settings tab, delivered reliably to + battery-powered (sleepy) devices and enforced across driver reloads. +- Battery, trouble, and offline/online alerts, plus Identify and other device + actions from the Actions tab. +- Button and remote support: wireless remotes and scene controllers fire + Control4 programming events (one per button action, e.g. "1 Single", "2 + Hold"). Actions are decoded from standard ZCL commands (Scenes, On/Off, + Level); the device's button map is captured from the zigbee2mqtt database at + generate time. +- Lock support via a new **Zigbee 3 Lock** companion driver: bind it to a joined + Zigbee 3 Device to control a deadbolt or lever as a standard Control4 lock. + Lock, unlock, and toggle drive ZCL DoorLock; state is tracked from attribute + reports and operation-event notifications (so manual and keypad operation show + up too). An optional Lock Code is sent with commands for locks that require + it. +- Light support via a new **Zigbee 3 Light** companion driver: bind it to a + joined Zigbee 3 Device to control a bulb or fixture as a standard Control4 + light. On/off, dimming, color temperature, and color are enabled automatically + from what the device reports (ZCL On/Off, Level, and Color Control). The + companion owns the light proxy; the device driver translates. +- Switch and relay support: any device with a switch expose is presented as a + Control4 relay connection, one per gang, driven over standard ZCL On/Off. + Multi-gang devices resolve their named endpoints (l1/l2, left/right) to real + Zigbee endpoints from the zigbee2mqtt database. diff --git a/SUPPORTED_DEVICES.md b/SUPPORTED_DEVICES.md new file mode 100644 index 0000000..7c5769a --- /dev/null +++ b/SUPPORTED_DEVICES.md @@ -0,0 +1,3465 @@ + + +# Supported devices + +This driver brings generic **Zigbee 3.0** sensors into Control4. The device +knowledge below is **derived from the [zigbee2mqtt](https://www.zigbee2mqtt.io/) +project's open device database** - an enormous community effort we build on and +credit gladly. What follows is our own honest accounting of the devices this +driver can actually decode today, not a copy of theirs: a model appears here +only when the runtime has a working decode path for its primary sensor, the same +gate that decides which devices the driver claims on the mesh. + +A device that merely *joins* is not enough - the driver must be able to turn its +reports into Control4 state. Devices whose primary sensor streams over Tuya's +manufacturer cluster are supported only where we could map the triggering +datapoint (see [Not yet supported](#not-yet-supported)). + +_Generated 2026-08-05 from the zigbee2mqtt database. Regenerate with_ +`make generate`. + +## At a glance + +- **3414** device models supported, across **354** vendors +- Decode paths: Standard ZCL 3160 · Aqara/LUMI 128 · Tuya 126 + +> **Decode path** is how the runtime reads the device: **Standard ZCL** uses the +> normal Zigbee clusters (IAS Zone, Occupancy, measurement); **Aqara/LUMI** +> decodes Xiaomi's `0xFCC0` manufacturer cluster; **Tuya** decodes the `0xEF00` +> datapoint stream. + +## Supported models + +| Vendor | Model | Sensors | Decode path | +| ----------------------------------- | ------------------------------------------ | ---------------------------------------------------------------- | ------------ | +| ADEO | 83633205 | Motion, Battery, Illuminance, Temperature, Humidity | Standard ZCL | +| ADEO | 84845506 | | Standard ZCL | +| ADEO | 84845509 | | Standard ZCL | +| ADEO | 84870054 | | Standard ZCL | +| ADEO | 84870058 | | Standard ZCL | +| ADEO | 9CZA-A806ST-Q1A | | Standard ZCL | +| ADEO | 9CZA-A806ST-Q1Z | | Standard ZCL | +| ADEO | 9CZA-G1521-Q1A | | Standard ZCL | +| ADEO | 9CZA-M350ST-Q1A | | Standard ZCL | +| ADEO | 9CZA-P470T-A1A | | Standard ZCL | +| ADEO | BD05C-FL-21-G-ENK | | Standard ZCL | +| ADEO | HR-C99C-Z-C045 | Battery | Standard ZCL | +| ADEO | IA-CDZFB2AA007NA-MZN-01 | | Standard ZCL | +| ADEO | IA-CDZFB2AA007NA-MZN-02 | | Standard ZCL | +| ADEO | IA-CDZOTAAA007MA-MAN | | Standard ZCL | +| ADEO | IC-CDZFB2AC004HA-MZN | | Standard ZCL | +| ADEO | IC-CDZFB2AC005HA-MZN | | Standard ZCL | +| ADEO | IG-CDZB2AG009RA-MZN-01 | | Standard ZCL | +| ADEO | IG-CDZFB2AG010RA-MNZ | | Standard ZCL | +| ADEO | IG-CDZFB2G009RA-MZN-02 | | Standard ZCL | +| ADEO | IG-CDZOTAAG014RA-MAN | | Standard ZCL | +| ADEO | IM-CDZDGAAA0005KA_MAN | | Standard ZCL | +| ADEO | IM-CDZDGAAG005KA-MZN | | Standard ZCL | +| ADEO | IP-CDZOTAAP005JA-MAN | | Standard ZCL | +| ADEO | IST-CDZFB2AS007NA-MZN-01 | | Standard ZCL | +| ADEO | IST-CDZFB2AS007NA-MZN-02 | | Standard ZCL | +| ADEO | LDSENK01F | | Standard ZCL | +| ADEO | LDSENK01S | | Standard ZCL | +| ADEO | LDSENK02F | | Standard ZCL | +| ADEO | LDSENK02S | | Standard ZCL | +| ADEO | LDSENK08 | Contact, Vibration, Battery | Standard ZCL | +| ADEO | LDSENK10 | Motion | Standard ZCL | +| ADEO | PEZ1-042-1020-C1D1 | | Standard ZCL | +| ADEO | SIN-4-1-20_EQU | | Standard ZCL | +| ADEO | SIN-4-1-20_LEX | | Standard ZCL | +| ADEO | SIN-4-1-21_EQU | | Standard ZCL | +| ADEO | SIN-4-1-22_LEX | | Standard ZCL | +| ADEO | SIN-4-FP-21_EQU | | Standard ZCL | +| ADEO | ZB-DoorSensor-D0007 | Contact, Battery | Standard ZCL | +| ADEO | ZBEK-30 | | Standard ZCL | +| ADEO | ZBEK-32 | | Standard ZCL | +| ADEO | ZBEK-33 | | Standard ZCL | +| ADEO | ZBEK-37 | | Standard ZCL | +| AOYAN | AY-204Z | Motion, Battery | Standard ZCL | +| AOYAN | AY-601ZL | | Standard ZCL | +| AVATTO | LZWSM16-1 | | Standard ZCL | +| AVATTO | TS0601_thermostat_14 | Battery | Tuya | +| AVATTO | ZBS16 | | Standard ZCL | +| AVATTO | ZDMS16-1 | | Standard ZCL | +| AVATTO | ZDMS16-2 | | Standard ZCL | +| AVATTO | ZDMS16-US-W2 | | Standard ZCL | +| Acova | TAFFETAS2/PERCALE2 | Motion | Standard ZCL | +| Acuity Brands Lighting (ABL) | RB56AC | | Standard ZCL | +| Acuity Brands Lighting (ABL) | RB56SC | | Standard ZCL | +| Acuity Brands Lighting (ABL) | WF4C_WF6C | | Standard ZCL | +| AduroSmart | 15090054 | Battery | Standard ZCL | +| AduroSmart | 81809/81813 | | Standard ZCL | +| AduroSmart | 81809FBA | | Standard ZCL | +| AduroSmart | 81810 | | Standard ZCL | +| AduroSmart | 81812/81814 | | Standard ZCL | +| AduroSmart | 81813-V2 | | Standard ZCL | +| AduroSmart | 81825 | | Standard ZCL | +| AduroSmart | 81848 | | Standard ZCL | +| AduroSmart | 81849 | | Standard ZCL | +| AduroSmart | 81855 | | Standard ZCL | +| AduroSmart | 81863 | | Standard ZCL | +| AduroSmart | 81895 | | Standard ZCL | +| AduroSmart | 81898 | | Standard ZCL | +| AduroSmart | 81949 | | Standard ZCL | +| AduroSmart | 81998 | | Standard ZCL | +| AduroSmart | AD-CTW123001 | | Standard ZCL | +| AduroSmart | AD-RGBWH3001 | | Standard ZCL | +| AduroSmart | BPU3 | | Standard ZCL | +| AduroSmart | E1XCTW3001 | | Standard ZCL | +| Aeotec | ZGA002 | Device Temp | Standard ZCL | +| Aeotec | ZGA003 | Device Temp | Standard ZCL | +| Aeotec | ZGA004 | Device Temp | Standard ZCL | +| Airam | 4713406 | | Standard ZCL | +| Airam | 4713407 | | Standard ZCL | +| Airam | AIRAM-CTR.U | | Standard ZCL | +| Airam | CTR.UBX | | Standard ZCL | +| Airzone | AZAI6ZBEMHI | | Standard ZCL | +| Ajax Online | AJ_RGBCCT_CTRL | | Standard ZCL | +| Ajax Online | AJ_ZB_GU10 | | Standard ZCL | +| Ajax Online | AJ_ZIGPROA60 | | Standard ZCL | +| Ajax Online | Aj_Zigbee_Led_Strip | | Standard ZCL | +| Ajax Online | ZB-CCT_Filament | | Standard ZCL | +| Ajax Online | ZB_A60_RGBCW | | Standard ZCL | +| Alab | alab.switch | | Standard ZCL | +| Alchemy | AL8RGB13W-AP | | Standard ZCL | +| Alchemy | AL8TC13W-AP | | Standard ZCL | +| Aldi | 141L100RC | | Standard ZCL | +| Alecto | SMART-HEAT10 | Battery | Standard ZCL | +| Amina Distribution AS | amina S | | Standard ZCL | +| Anchor | 67200BL | | Standard ZCL | +| Aqara | CL-L02D | Device Temp | Aqara/LUMI | +| Aqara | DJT11LM | Vibration, Battery, Device Temp | Aqara/LUMI | +| Aqara | DLKZMK11LM | Device Temp | Aqara/LUMI | +| Aqara | DLKZMK12LM | | Aqara/LUMI | +| Aqara | DWZTCGQ11LM | Contact, Battery | Aqara/LUMI | +| Aqara | FP1E | Motion, Device Temp | Aqara/LUMI | +| Aqara | FP310 | Motion, Battery, Illuminance, Humidity, Temperature | Aqara/LUMI | +| Aqara | H1-EU | | Aqara/LUMI | +| Aqara | HLQDQ01LM | | Aqara/LUMI | +| Aqara | JT-BZ-01AQ/A | Gas | Aqara/LUMI | +| Aqara | JWDL001A | Device Temp | Aqara/LUMI | +| Aqara | JWSP001A | Device Temp | Aqara/LUMI | +| Aqara | JY-GZ-01AQ | Smoke, Battery | Aqara/LUMI | +| Aqara | KD-R01D | Device Temp | Aqara/LUMI | +| Aqara | LGYCDD01LM | Device Temp | Aqara/LUMI | +| Aqara | LLKZMK11LM | Device Temp | Aqara/LUMI | +| Aqara | LLKZMK12LM | Device Temp | Aqara/LUMI | +| Aqara | MCCGQ11LM | Contact, Battery, Device Temp | Aqara/LUMI | +| Aqara | MCCGQ12LM | Contact, Battery | Aqara/LUMI | +| Aqara | MCCGQ13LM | Contact, Battery | Aqara/LUMI | +| Aqara | MCCGQ14LM | Contact, Battery | Aqara/LUMI | +| Aqara | PS-S04D | Motion, Battery, Illuminance, Humidity, Temperature | Aqara/LUMI | +| Aqara | QBCZ11LM | Device Temp | Aqara/LUMI | +| Aqara | QBCZ14LM | Device Temp | Aqara/LUMI | +| Aqara | QBCZ15LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG03LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG04LM | | Aqara/LUMI | +| Aqara | QBKG11LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG12LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG17LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG18LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG19LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG20LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG21LM | | Aqara/LUMI | +| Aqara | QBKG22LM | | Aqara/LUMI | +| Aqara | QBKG23LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG24LM | | Aqara/LUMI | +| Aqara | QBKG25LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG26LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG27LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG28LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG29LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG30LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG31LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG32LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG33LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG34LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG38LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG39LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG40LM | Device Temp | Aqara/LUMI | +| Aqara | QBKG41LM | Device Temp | Aqara/LUMI | +| Aqara | RTCGQ11LM | Motion, Battery, Device Temp, Illuminance | Aqara/LUMI | +| Aqara | RTCGQ12LM | Motion, Illuminance, Device Temp, Battery | Aqara/LUMI | +| Aqara | RTCGQ13LM | Motion, Device Temp, Battery | Aqara/LUMI | +| Aqara | RTCGQ14LM | Motion, Illuminance, Device Temp, Battery | Aqara/LUMI | +| Aqara | RTCGQ15LM | Motion, Illuminance, Device Temp, Battery | Aqara/LUMI | +| Aqara | RTCZCGQ11LM | Motion, Device Temp | Aqara/LUMI | +| Aqara | SJCGQ11LM | Water, Battery, Device Temp | Aqara/LUMI | +| Aqara | SJCGQ12LM | Water, Battery | Aqara/LUMI | +| Aqara | SJCGQ13LM | Water, Battery, Device Temp | Aqara/LUMI | +| Aqara | SP-EUC01 | Device Temp | Aqara/LUMI | +| Aqara | SSM-U01 | Device Temp | Aqara/LUMI | +| Aqara | SSM-U02 | Device Temp | Aqara/LUMI | +| Aqara | SSWQD02LM | Device Temp | Aqara/LUMI | +| Aqara | SSWQD03LM | Device Temp | Aqara/LUMI | +| Aqara | SSWQD22LM | Device Temp | Aqara/LUMI | +| Aqara | SSWQDYH02 | Device Temp | Aqara/LUMI | +| Aqara | T2_E27 | Device Temp | Aqara/LUMI | +| Aqara | T2_E27_CCT | Device Temp | Aqara/LUMI | +| Aqara | TDL01LM | Device Temp | Aqara/LUMI | +| Aqara | VC-X01D | Battery | Aqara/LUMI | +| Aqara | WP-P01D | Device Temp | Aqara/LUMI | +| Aqara | WS-EUK01 | Device Temp | Aqara/LUMI | +| Aqara | WS-EUK02 | Device Temp | Aqara/LUMI | +| Aqara | WS-EUK03 | Device Temp | Aqara/LUMI | +| Aqara | WS-EUK04 | Device Temp | Aqara/LUMI | +| Aqara | WS-K01D | Device Temp | Aqara/LUMI | +| Aqara | WS-K02E | Device Temp | Aqara/LUMI | +| Aqara | WS-K03E | Device Temp | Aqara/LUMI | +| Aqara | WS-K04E | Device Temp | Aqara/LUMI | +| Aqara | WS-K05E | Device Temp | Aqara/LUMI | +| Aqara | WS-K07E | Device Temp | Aqara/LUMI | +| Aqara | WS-K08E | Device Temp | Aqara/LUMI | +| Aqara | WS-USC01 | Device Temp | Aqara/LUMI | +| Aqara | WS-USC02 | Device Temp | Aqara/LUMI | +| Aqara | WS-USC03 | Device Temp | Aqara/LUMI | +| Aqara | WS-USC04 | Device Temp | Aqara/LUMI | +| Aqara | WXCJKG11LM | Battery | Aqara/LUMI | +| Aqara | WXCJKG12LM | Battery | Aqara/LUMI | +| Aqara | WXKG15LM | Battery | Aqara/LUMI | +| Aqara | XDD11LM | Device Temp | Aqara/LUMI | +| Aqara | XDD12LM | Device Temp | Aqara/LUMI | +| Aqara | XDD13LM | Device Temp | Aqara/LUMI | +| Aqara | ZNCJMB14LM | | Aqara/LUMI | +| Aqara | ZNCZ11LM | Device Temp | Aqara/LUMI | +| Aqara | ZNCZ12LM | Device Temp | Aqara/LUMI | +| Aqara | ZNCZ15LM | Device Temp | Aqara/LUMI | +| Aqara | ZNDDMK11LM | Device Temp | Aqara/LUMI | +| Aqara | ZNDDQDQ11LM | Device Temp | Aqara/LUMI | +| Aqara | ZNDDQDQ12LM | Device Temp | Aqara/LUMI | +| Aqara | ZNDDQDQ13LM | Device Temp | Aqara/LUMI | +| Aqara | ZNLDP12LM | Device Temp | Aqara/LUMI | +| Aqara | ZNLDP13LM | Device Temp | Aqara/LUMI | +| Aqara | ZNQBCZ11LM | Device Temp | Aqara/LUMI | +| Aqara | ZNQBKG24LM | Device Temp | Aqara/LUMI | +| Aqara | ZNQBKG25LM | Device Temp | Aqara/LUMI | +| Aqara | ZNQBKG26LM | Device Temp | Aqara/LUMI | +| Aqara | ZNQBKG31LM | Device Temp | Aqara/LUMI | +| Aqara | ZNQBKG38LM | Device Temp | Aqara/LUMI | +| Aqara | ZNQBKG39LM | Device Temp | Aqara/LUMI | +| Aqara | ZNQBKG40LM | Device Temp | Aqara/LUMI | +| Aqara | ZNQBKG41LM | Device Temp | Aqara/LUMI | +| Aqara | ZNQBKG42LM | Device Temp | Aqara/LUMI | +| Aqara | ZNQBKG43LM | Device Temp | Aqara/LUMI | +| Aqara | ZNQBKG44LM | Device Temp | Aqara/LUMI | +| Aqara | ZNQBKG45LM | Device Temp | Aqara/LUMI | +| Aqara | ZNTGMK11LM | | Aqara/LUMI | +| Aqara | ZNTGMK12LM | Device Temp | Aqara/LUMI | +| Aqara | ZNXDD01LM | Device Temp | Aqara/LUMI | +| Aqara | ZNXNKG01LM | Device Temp | Aqara/LUMI | +| Aqara | ZNYB01LM | | Aqara/LUMI | +| Arteco | ZP-301Z | Motion, Illuminance | Tuya | +| Atlantic Group | 100050060900 | Motion | Standard ZCL | +| Atsmart | Z6 | | Standard ZCL | +| Aurora | AU-A1ZB2WDM-Slave | | Standard ZCL | +| Aurora Lighting | AU-A1CE14ZCX6 | | Standard ZCL | +| Aurora Lighting | AU-A1GSZ9B/27 | | Standard ZCL | +| Aurora Lighting | AU-A1GSZ9CX | | Standard ZCL | +| Aurora Lighting | AU-A1GSZ9RGBW_HV-GSCXZB269K | | Standard ZCL | +| Aurora Lighting | AU-A1GUZB5/30 | | Standard ZCL | +| Aurora Lighting | AU-A1GUZBCX5 | | Standard ZCL | +| Aurora Lighting | AU-A1GUZBRGBW | | Standard ZCL | +| Aurora Lighting | AU-A1VG125Z5E/19 | | Standard ZCL | +| Aurora Lighting | AU-A1VGSZ5E/19 | | Standard ZCL | +| Aurora Lighting | AU-A1ZB110 | | Standard ZCL | +| Aurora Lighting | AU-A1ZB2WDM | | Standard ZCL | +| Aurora Lighting | AU-A1ZBDSS | | Standard ZCL | +| Aurora Lighting | AU-A1ZBDWS | Contact, Battery | Standard ZCL | +| Aurora Lighting | AU-A1ZBMPRO1ZX | | Standard ZCL | +| Aurora Lighting | AU-A1ZBPIA | Device Temp | Standard ZCL | +| Aurora Lighting | AU-A1ZBPIAB | | Standard ZCL | +| Aurora Lighting | AU-A1ZBPIRS | Motion, Illuminance | Standard ZCL | +| Aurora Lighting | AU-A1ZBR16A | | Standard ZCL | +| Aurora Lighting | AU-A1ZBR1GW | Battery | Standard ZCL | +| Aurora Lighting | AU-A1ZBR2GW | Battery | Standard ZCL | +| Aurora Lighting | AU-A1ZBRC | Battery | Standard ZCL | +| Aurora Lighting | AU-A1ZBSCRGBCX | | Standard ZCL | +| AutomatOn | AUT000069 | | Standard ZCL | +| AwoX | 110285 | | Standard ZCL | +| AwoX | 110308 | | Standard ZCL | +| AwoX | 12226 | | Standard ZCL | +| AwoX | 33943/33944/33946 | | Standard ZCL | +| AwoX | 33952 | | Standard ZCL | +| AwoX | 33955 | | Standard ZCL | +| AwoX | 33957 | | Standard ZCL | +| AwoX | AwoX-light | | Standard ZCL | +| AwoX | EBF_RGB_Zm | | Standard ZCL | +| AwoX | EGLO_ZM_RGB_W | | Standard ZCL | +| AwoX | EPIR_Zm | Motion, Battery | Standard ZCL | +| AwoX | ERCU_WS_Zm | | Standard ZCL | +| AwoX | EZMB-RGB-TW-I2C | | Standard ZCL | +| BITUO TECHNIK | SDM01B-U01 | | Standard ZCL | +| BITUO TECHNIK | SDM01W-U01 | | Standard ZCL | +| BITUO TECHNIK | SDM02-U00 | | Standard ZCL | +| BITUO TECHNIK | SDM02-U01 | | Standard ZCL | +| BITUO TECHNIK | SPM01-U00 | | Standard ZCL | +| BITUO TECHNIK | SPM01-U01 | | Standard ZCL | +| BITUO TECHNIK | SPM02-U00 | | Standard ZCL | +| BITUO TECHNIK | SPM02-U01 | | Standard ZCL | +| BOX | ERC2201-Z | | Standard ZCL | +| BOX | EWS1154-Z | | Standard ZCL | +| BTicino | 4411C/L4411C/N4411C/NT4411C | | Standard ZCL | +| BTicino | K4003C/L4003C/N4003C/NT4003C | | Standard ZCL | +| BTicino | L4531C | | Standard ZCL | +| BYUN | M415-5C | Gas | Standard ZCL | +| BYUN | M415-6C | Smoke | Standard ZCL | +| Bacchus | Presence_Sensor_v2 | Motion, Illuminance | Standard ZCL | +| Bacchus | Presence_Sensor_v2.6 | Motion, Illuminance | Standard ZCL | +| Bacchus | Water_Station | Water | Standard ZCL | +| Bankamp | 2189/1-xx | | Standard ZCL | +| Bega | 13557 | | Standard ZCL | +| Bega | 70049 | | Standard ZCL | +| Bega | 85000 | | Standard ZCL | +| Belkin | F7C033 | | Standard ZCL | +| BlitzWolf | BW-IS3 | Motion | Standard ZCL | +| BlitzWolf | BW-SS7_1gang | | Standard ZCL | +| BlitzWolf | BW-SS7_2gang | | Standard ZCL | +| Bosch | 8750001213 | Smoke, Temperature, Humidity, Illuminance, Battery | Standard ZCL | +| Bosch | BMCT-DZ | | Standard ZCL | +| Bosch | BMCT-RZ | | Standard ZCL | +| Bosch | BSD-2 | Smoke, Battery | Standard ZCL | +| Bosch | BSEN-C2 | Contact, Battery | Standard ZCL | +| Bosch | BSEN-C2D | Contact, Battery | Standard ZCL | +| Bosch | BSEN-CV | Contact, Vibration, Battery | Standard ZCL | +| Bosch | BSEN-M | Motion, Illuminance, Temperature | Standard ZCL | +| Bosch | BSEN-W | Water, Battery | Standard ZCL | +| Bosch | BSP-FD | | Standard ZCL | +| Bosch | BSP-FZ2 | | Standard ZCL | +| Bosch | ISW-ZPR1-WP13 | Motion, Temperature, Battery | Standard ZCL | +| Bosch | RADION TriTech ZB | Motion, Temperature, Battery, Illuminance | Standard ZCL | +| Bouffalolab | RMC002 | | Standard ZCL | +| Brimate | FZB8708HD-S1 | Motion | Standard ZCL | +| Brun Holding | Fire Fence | Battery, Temperature | Standard ZCL | +| Busch-Jaeger | 6717-84 | | Standard ZCL | +| Busch-Jaeger | 6735/6736/6737 | | Standard ZCL | +| CASAIA | CCB432 | | Standard ZCL | +| CASAIA | CSAC451-WTC-E | | Standard ZCL | +| CASAIA | CSLC601-D-E | | Standard ZCL | +| CLEODE | ZPLUG_Boost | | Standard ZCL | +| CREE | B00TN589ZG | | Standard ZCL | +| CTM Lyng | 4503145 | | Standard ZCL | +| CTM Lyng | AX_Valve_Controller | Water | Standard ZCL | +| CTM Lyng | AX_Water_Sensor | Water, Battery | Standard ZCL | +| CTM Lyng | CTM_MBD_Dim | Motion, Illuminance | Standard ZCL | +| CTM Lyng | MBD-S | Motion, Illuminance | Standard ZCL | +| CTM Lyng | mStikk_Outlet | | Standard ZCL | +| CTM Lyng | mSwitch_Mic | Smoke, Temperature, Battery | Standard ZCL | +| CTM Lyng | mTouch_Astro | | Standard ZCL | +| CTM Lyng | mTouch_Bryter | Battery, Temperature | Standard ZCL | +| CTM Lyng | mTouch_Dim | | Standard ZCL | +| CTM Lyng | mkomfy25 | | Standard ZCL | +| CWD | HLL6948V1 | | Standard ZCL | +| CY-LIGHTING | DM A60F | | Standard ZCL | +| Calex | 421782 | | Standard ZCL | +| Calex | 421786 | | Standard ZCL | +| Calex | 421792 | | Standard ZCL | +| Candeo | C-RFZB-SM1 | | Standard ZCL | +| Candeo | C-ZB-DM201-2G | | Standard ZCL | +| Candeo | C-ZB-DM204 | | Standard ZCL | +| Candeo | C-ZB-DM204v2 | | Standard ZCL | +| Candeo | C-ZB-LC20-CCT | | Standard ZCL | +| Candeo | C-ZB-LC20-Dim | | Standard ZCL | +| Candeo | C-ZB-LC20-RGB | | Standard ZCL | +| Candeo | C-ZB-LC20-RGBCCT | | Standard ZCL | +| Candeo | C-ZB-LC20-RGBW | | Standard ZCL | +| Candeo | C-ZB-RD1 | | Standard ZCL | +| Candeo | C-ZB-RD1P-DIM | | Standard ZCL | +| Candeo | C-ZB-RD1P-DPM | | Standard ZCL | +| Candeo | C-ZB-RD1P-REM | | Standard ZCL | +| Candeo | C-ZB-SEDC | Contact, Battery | Standard ZCL | +| Candeo | C-ZB-SEMO | Motion, Battery, Illuminance | Standard ZCL | +| Candeo | C-ZB-SEWA | Water, Battery | Standard ZCL | +| Candeo | C-ZB-SM205-2G | | Standard ZCL | +| Candeo | C-ZB-SM30-2G | | Standard ZCL | +| Candeo | C201 | | Standard ZCL | +| Candeo | C202 | | Standard ZCL | +| Candeo | C202.1 | | Standard ZCL | +| Candeo | C203 | | Standard ZCL | +| Candeo | C204 | | Standard ZCL | +| Candeo | C205 | | Standard ZCL | +| Candeo | C210 | | Standard ZCL | +| Centralite | 3200-fr | | Standard ZCL | +| Centralite | 3315-Geu | Water, Temperature, Battery | Standard ZCL | +| Centralite | 3323-G | Contact, Temperature | Standard ZCL | +| Centralite | 3328-G | Motion, Temperature | Standard ZCL | +| Centralite | 3400-D | Motion, Battery, Temperature | Standard ZCL | +| Centralite | 3420-G | | Standard ZCL | +| Centralite | 4200-C | | Standard ZCL | +| Centralite | 4256050-RZHAC | | Standard ZCL | +| Centralite | 4256050-ZHAC | | Standard ZCL | +| Centralite | 4256251-RZHAC | | Standard ZCL | +| Centralite | 4257050-RZHAC | | Standard ZCL | +| Centralite | 4257050-ZHAC | | Standard ZCL | +| Chacon | ZB-PM-01 | | Standard ZCL | +| ClickSmart+ | CMA30651 | | Standard ZCL | +| ClickSmart+ | CSP041 | | Standard ZCL | +| ClickSmart+ | CSP042 | | Standard ZCL | +| ClickSmart+ | CSP043 | | Standard ZCL | +| ClickSmart+ | CSP051 | | Standard ZCL | +| ClickSmart+ | CSP052 | | Standard ZCL | +| Climax | CO-8ZBS | Carbon Monoxide, Battery | Standard ZCL | +| Climax | PRL-1ZBS-12/24V | | Standard ZCL | +| Climax | PSM-29ZBS | | Standard ZCL | +| Climax | PSM-29ZBSR | | Standard ZCL | +| Climax | PSS-23ZBS | | Standard ZCL | +| Climax | SD-8SCZBS | Smoke, Battery | Standard ZCL | +| Climax | WLS-15ZBS | Water, Battery | Standard ZCL | +| Climax | WS-15ZBS | Water | Standard ZCL | +| Commercial Electric | 53170161 | | Standard ZCL | +| Coswall | SM-PW801EZ | | Standard ZCL | +| Custom devices (DiY) | ACW02-ZB | | Standard ZCL | +| Custom devices (DiY) | DNCKATSD001 | | Standard ZCL | +| Custom devices (DiY) | DNCKATSW001 | | Standard ZCL | +| Custom devices (DiY) | DNCKATSW002 | | Standard ZCL | +| Custom devices (DiY) | DNCKATSW003 | | Standard ZCL | +| Custom devices (DiY) | DNCKATSW004 | | Standard ZCL | +| Custom devices (DiY) | ZG-204ZL-z | Motion, Battery, Illuminance | Standard ZCL | +| Custom devices (DiY) | ZigUP | | Standard ZCL | +| Custom devices (DiY) | m5NanoC6 | | Standard ZCL | +| Custom devices (DiY) | ptvo_counter_2ch | Battery | Standard ZCL | +| D-Link | DCH-B112 | Contact, Vibration, Battery | Standard ZCL | +| DIRECTSIGNS | DS-Z-001DE | | Standard ZCL | +| DIYRuZ | DIYRuZ_Geiger | | Standard ZCL | +| DIYRuZ | DIYRuZ_R4_5 | | Standard ZCL | +| DIYRuZ | DIYRuZ_R8_8 | | Standard ZCL | +| DIYRuZ | DIYRuZ_RT | Temperature | Standard ZCL | +| DIYRuZ | DIYRuZ_magnet | Contact, Battery | Standard ZCL | +| DIYRuZ | DIYRuZ_rspm | | Standard ZCL | +| DNAKE | CS-Z-CZ-2402 | | Standard ZCL | +| DOMRAEM | DOM-Z-105P_CCT | | Standard ZCL | +| DOMRAEM | DOM-Z-105P_DIMMER | | Standard ZCL | +| DOMRAEM | DOM-Z-105P_RGB | | Standard ZCL | +| DOMRAEM | DOM-Z-105P_RGBCCT | | Standard ZCL | +| DOMRAEM | DOM-Z-105P_RGBW | | Standard ZCL | +| DOMRAEM | DOM-Z-105P_WW/CW | | Standard ZCL | +| DQHOME | dqhome.re4 | | Standard ZCL | +| Danalock | V3-BTZB/V3-BTZBE | Battery | Standard ZCL | +| Datek | 0402946 | Battery | Standard ZCL | +| Datek | HBR2917E | Battery, Temperature | Standard ZCL | +| Datek | HLU2909K | Temperature | Standard ZCL | +| Datek | HSE2919E | Water, Battery, Temperature | Standard ZCL | +| Datek | HSE2920E | Contact, Temperature | Standard ZCL | +| Datek | HSE2927E | Motion, Temperature, Illuminance | Standard ZCL | +| Datek | HSE2936T | Contact, Temperature | Standard ZCL | +| Dawon DNS | KB-B540R-ZB | | Standard ZCL | +| Dawon DNS | PM-B430-ZB | | Standard ZCL | +| Dawon DNS | PM-B530-ZB | | Standard ZCL | +| Dawon DNS | PM-B540-ZB | Device Temp | Standard ZCL | +| Dawon DNS | PM-C140-ZB | | Standard ZCL | +| Dawon DNS | PM-C150-ZB | | Standard ZCL | +| Dawon DNS | PM-S140-ZB | | Standard ZCL | +| Dawon DNS | PM-S140R-ZB | | Standard ZCL | +| Dawon DNS | PM-S150-ZB | | Standard ZCL | +| Dawon DNS | PM-S240-ZB | | Standard ZCL | +| Dawon DNS | PM-S240R-ZB | | Standard ZCL | +| Dawon DNS | PM-S250-ZB | | Standard ZCL | +| Dawon DNS | PM-S340-ZB | | Standard ZCL | +| Dawon DNS | PM-S340R-ZB | | Standard ZCL | +| Dawon DNS | PM-S350-ZB | | Standard ZCL | +| Dawon DNS | SG-V100-ZB | Battery | Standard ZCL | +| Develco | Co019 | | Standard ZCL | +| Develco | FLSZB-110 | Water, Temperature, Battery | Standard ZCL | +| Develco | HESZB-120 | Smoke, Temperature, Battery | Standard ZCL | +| Develco | IOMZB-110 | | Standard ZCL | +| Develco | MOSZB-130 | Motion | Standard ZCL | +| Develco | MOSZB-140 | Motion, Temperature, Illuminance, Battery | Standard ZCL | +| Develco | MOSZB-141 | Motion | Standard ZCL | +| Develco | MOSZB-153 | Motion, Temperature, Illuminance, Battery | Standard ZCL | +| Develco | SBTZB-110 | Battery | Standard ZCL | +| Develco | SMRZB-143 | Device Temp | Standard ZCL | +| Develco | SMRZB-332 | | Standard ZCL | +| Develco | SMSZB-120 | Smoke, Temperature, Battery | Standard ZCL | +| Develco | SPLZB-131 | Device Temp | Standard ZCL | +| Develco | SPLZB-132 | Device Temp | Standard ZCL | +| Develco | SPLZB-134 | Device Temp | Standard ZCL | +| Develco | SPLZB-137 | | Standard ZCL | +| Develco | SPLZB-141 | | Standard ZCL | +| Develco | WISZB-120 | Contact, Temperature, Battery | Standard ZCL | +| Develco | WISZB-121 | Contact, Battery | Standard ZCL | +| Develco | WISZB-134 | Contact, Battery | Standard ZCL | +| Develco | WISZB-137 | Vibration, Temperature, Battery | Standard ZCL | +| Develco | WISZB-138 | Contact, Temperature, Battery | Standard ZCL | +| Dongguan Pinjia Technology Co.,LTD. | PJ3201A | Motion, Illuminance | Tuya | +| Dowsing & Reynolds | DR3000 | | Standard ZCL | +| Dresden Elektronik | BN-600085 | Battery | Standard ZCL | +| Dresden Elektronik | BN-600087 | Battery | Standard ZCL | +| Dresden Elektronik | FLS-A | | Standard ZCL | +| Dresden Elektronik | FLS-CT | | Standard ZCL | +| Dresden Elektronik | FLS-H | | Standard ZCL | +| Dresden Elektronik | FLS-PP | | Standard ZCL | +| Dresden Elektronik | Kobold | | Standard ZCL | +| EDP | PLUG EDP RE:DY | | Standard ZCL | +| EDP | SWITCH EDP RE:DY | | Standard ZCL | +| EFEKTA | EFEKTA_AQ_Smart_Monitor_Gen2 | Temperature, Humidity, Illuminance | Standard ZCL | +| EFEKTA | EFEKTA_CO2_Smart_Monitor_Gen2 | Temperature, Humidity, Illuminance | Standard ZCL | +| EFEKTA | Netuya_CO2_Smart_Box | | Standard ZCL | +| EFEKTA | Open_PM_Monitor | | Standard ZCL | +| EGLO | 12242 | | Standard ZCL | +| EGLO | 300686 | | Standard ZCL | +| EGLO | 900024/12253 | | Standard ZCL | +| EGLO | 900091 | | Standard ZCL | +| EGLO | 901471 | | Standard ZCL | +| EGLO | 98847 | | Standard ZCL | +| EGLO | 99099 | | Standard ZCL | +| EGLO | 99106 | | Standard ZCL | +| ELKO | 316GLEDRF | | Standard ZCL | +| ELKO | EKO05806 | | Standard ZCL | +| ETOP | HT-08 | | Standard ZCL | +| ETOP | HT-10 | | Standard ZCL | +| EVN | ZB24100VS | | Standard ZCL | +| EVN | ZBHS4RGBW | Battery | Standard ZCL | +| EVN | ZBPD23400 | | Standard ZCL | +| EasyAccess | EasyCode903G2.1 | Battery | Standard ZCL | +| Eaton/Halo LED | RL460WHZHA69 | | Standard ZCL | +| EchoStar | SAGE206611 | | Standard ZCL | +| EcoDim | ECO-DIM.06-ZGB | | Standard ZCL | +| EcoDim | ECO-DIM.13 | | Standard ZCL | +| EcoDim | ED-10010 | Battery | Standard ZCL | +| EcoDim | ED-10011 | Battery | Standard ZCL | +| EcoDim | ED-10012 | Battery | Standard ZCL | +| EcoDim | ED-10013 | Battery | Standard ZCL | +| EcoDim | ED-10014 | Battery | Standard ZCL | +| EcoDim | ED-10015 | Battery | Standard ZCL | +| EcoDim | ED-10041 | | Standard ZCL | +| EcoDim | ED-10042 | | Standard ZCL | +| EcoDim | Eco-Dim.05 | | Standard ZCL | +| EcoDim | Eco-Dim.07/Eco-Dim.10 | | Standard ZCL | +| EcoSmart | A9A19A60WESDZ02 | | Standard ZCL | +| EcoSmart | A9BR3065WESDZ02 | | Standard ZCL | +| EcoSmart | D1523 | | Standard ZCL | +| EcoSmart | D1531 | | Standard ZCL | +| EcoSmart | D1532 | | Standard ZCL | +| EcoSmart | D1533 | | Standard ZCL | +| EcoSmart | D1542 | | Standard ZCL | +| EcoSmart | D1821 | | Standard ZCL | +| Ecolink | 4655BC0-R | Contact, Temperature | Standard ZCL | +| Ekaza | EKAC-T3095Z | | Standard ZCL | +| Ekaza | EKAC-T3096Z | | Standard ZCL | +| Ekaza | Mercurio-3 | | Standard ZCL | +| Enbrighten | 43076 | | Standard ZCL | +| Enbrighten | 43078 | | Standard ZCL | +| Enbrighten | 43080 | | Standard ZCL | +| Enbrighten | 43082 | | Standard ZCL | +| Enkin | ZDM150 | | Standard ZCL | +| Ensystec | Ensystec-Leak-Protect-Zigbee | Water | Standard ZCL | +| Envilar | 1CH-HP-RELAY-7853 | | Standard ZCL | +| Envilar | 2CH-ZG-BOX-RELAY | | Standard ZCL | +| Envilar | 5463 | | Standard ZCL | +| Envilar | 5480 | | Standard ZCL | +| Envilar | 5491 | | Standard ZCL | +| Envilar | 7848 | | Standard ZCL | +| Envilar | 7859 | | Standard ZCL | +| Envilar | ZG102-BOX-UNIDIM | | Standard ZCL | +| Envilar | ZG302-BOX-RELAY | | Standard ZCL | +| Envilar | ZG50CC-CCT-DRIVER | | Standard ZCL | +| Envilar | ZGR904-S | Battery | Standard ZCL | +| Envilar | ZG_LED_DRIVER42CC | | Standard ZCL | +| EssentielB | EB-E14-FLA-CCT | | Standard ZCL | +| EssentielB | EB-E14-P45-RGBW | | Standard ZCL | +| EssentielB | EB-E27-A60-CCT | | Standard ZCL | +| EssentielB | EB-E27-A60-CCT-FC | | Standard ZCL | +| EssentielB | EB-E27-A60-RGBW | | Standard ZCL | +| EssentielB | EB-E27-G95-CCT-FV | | Standard ZCL | +| EssentielB | EB-E27-ST64-CCT-FV | | Standard ZCL | +| EssentielB | EB-GU10-MR16-CCT | | Standard ZCL | +| EssentielB | EB-GU10-MR16-RGBW | | Standard ZCL | +| EssentielB | EB-SB-1B | Battery | Standard ZCL | +| EuControls | LCM-1C09-ZB | | Standard ZCL | +| Evvr | SRB01 | | Standard ZCL | +| Excellux | ZG-101K | Battery | Tuya | +| Excellux | ZG-102MV | Contact, Vibration, Battery | Tuya | +| Excellux | ZG-103V | Vibration, Battery | Tuya | +| Excellux | ZG-104PLV | Motion, Vibration, Battery, Illuminance | Tuya | +| Excellux | ZG-301A | Illuminance | Tuya | +| EyZEE | \_TZE284_0kihjsys | | Standard ZCL | +| FORIA | F00MB00-04-1 | Vibration | Standard ZCL | +| FORIA | F00XN00-04-1 | Battery | Standard ZCL | +| Fantem | ZB003-X | Motion, Temperature, Humidity, Battery, Illuminance | Standard ZCL | +| Fantem | ZB006-X | | Standard ZCL | +| Feibit | FMRC209W | Battery | Standard ZCL | +| Feibit | FZCWD2HW-YH | | Standard ZCL | +| Feibit | FZCWF2LW-BW | | Standard ZCL | +| Feibit | NZSN421W-Q | Battery | Standard ZCL | +| Feibit | SBM01ZB | Motion, Battery | Standard ZCL | +| Feibit | SCA01ZB | Carbon Monoxide, Battery | Standard ZCL | +| Feibit | SDM01ZB | Contact, Battery | Standard ZCL | +| Feibit | SFS01ZB | | Standard ZCL | +| Feibit | SGA01ZB | Gas | Standard ZCL | +| Feibit | SKY01-TS1-101 | | Standard ZCL | +| Feibit | SLS301ZB_2 | | Standard ZCL | +| Feibit | SLS301ZB_3 | | Standard ZCL | +| Feibit | SSA01ZB | Smoke, Battery | Standard ZCL | +| Feibit | SSKT11IW-F1 | | Standard ZCL | +| Feibit | SSS401ZB | | Standard ZCL | +| Feibit | SSS401ZB-T | | Standard ZCL | +| Feibit | SWA01ZB | Water, Battery | Standard ZCL | +| Feibit | SZSN325W-Q | | Standard ZCL | +| Feibit | TSKT106W-M1 | | Standard ZCL | +| Feibit | TSKT113W-H4 | | Standard ZCL | +| Feibit | TSKT222W-H4 | | Standard ZCL | +| Feibit | TZSC302W-V1 | | Standard ZCL | +| Feibit | TZSN408W-V1 | | Standard ZCL | +| Feibit | TZSW22FW-L4 | | Standard ZCL | +| FireAngel | W2-Module | Carbon Monoxide, Battery | Standard ZCL | +| FireAngel | ZBCO-AE-10X-EUR | Carbon Monoxide | Standard ZCL | +| Fischer & Honsel | 020B0B | | Standard ZCL | +| FrankEver | FK-BV05 | | Standard ZCL | +| FrankEver | FK_V02 | | Standard ZCL | +| Frient | SIRZB-112 | Battery | Standard ZCL | +| Frient | SMRZB-153 | | Standard ZCL | +| Frient | SMRZB-342 | Device Temp | Standard ZCL | +| Frient | WISZB-131 | Contact, Battery, Temperature | Standard ZCL | +| Futurehome | 4509243 | | Standard ZCL | +| Futurehome | TS0601_futurehome_thermostat | | Standard ZCL | +| GE | 22670 | | Standard ZCL | +| GE | 45852GE | | Standard ZCL | +| GE | 45853GE | | Standard ZCL | +| GE | 45856GE | | Standard ZCL | +| GE | 45857GE | | Standard ZCL | +| GE | POTLK-WH02 | | Standard ZCL | +| GE | PQC19-DY01 | | Standard ZCL | +| GE | PSB19-SW27 | | Standard ZCL | +| GE | PTAPT-WH02 | | Standard ZCL | +| GIDEALED | ZC05M | | Standard ZCL | +| GIDERWEL | GD-ZCRGB012 | | Standard ZCL | +| GISE | GSKS-ZB | Smoke, Battery | Tuya | +| GMY Smart Bulb | B07KG5KF5R | | Standard ZCL | +| GS | BDHM8E27W70-I1 | | Standard ZCL | +| GS | BRHM8E27W70-I1 | | Standard ZCL | +| GS | SGMHM-I1 | Gas | Standard ZCL | +| GS | SGPHM-I1 | Gas | Standard ZCL | +| GS | SKHMP30-I1 | | Standard ZCL | +| GS | SMHM-I1 | Motion, Battery | Standard ZCL | +| GS | SOHM-I1 | Contact, Battery | Standard ZCL | +| GS | SSHM-I1 | Smoke, Battery | Standard ZCL | +| GS | SWHM-I1 | Water, Battery | Standard ZCL | +| Gewiss | GWA1201 | | Standard ZCL | +| Gewiss | GWA1521 | | Standard ZCL | +| Gewiss | GWA1522 | | Standard ZCL | +| Girier | JR-ZDS01 | | Standard ZCL | +| Girier | TZE284_4cqhd2ha | Vibration | Tuya | +| Gledopto | GD-CZ-006 | | Standard ZCL | +| Gledopto | GL-B-001P | | Standard ZCL | +| Gledopto | GL-B-001Z | | Standard ZCL | +| Gledopto | GL-B-001ZS | | Standard ZCL | +| Gledopto | GL-B-002P | | Standard ZCL | +| Gledopto | GL-B-003P | | Standard ZCL | +| Gledopto | GL-B-004P | | Standard ZCL | +| Gledopto | GL-B-007P | | Standard ZCL | +| Gledopto | GL-B-007Z | | Standard ZCL | +| Gledopto | GL-B-007ZS | | Standard ZCL | +| Gledopto | GL-B-008P | | Standard ZCL | +| Gledopto | GL-B-008Z | | Standard ZCL | +| Gledopto | GL-B-008ZS | | Standard ZCL | +| Gledopto | GL-C-003P | | Standard ZCL | +| Gledopto | GL-C-004P | | Standard ZCL | +| Gledopto | GL-C-006 | | Standard ZCL | +| Gledopto | GL-C-006P | | Standard ZCL | +| Gledopto | GL-C-006S | | Standard ZCL | +| Gledopto | GL-C-007-1ID | | Standard ZCL | +| Gledopto | GL-C-007-2ID | | Standard ZCL | +| Gledopto | GL-C-007P | | Standard ZCL | +| Gledopto | GL-C-007S | | Standard ZCL | +| Gledopto | GL-C-008-1ID | | Standard ZCL | +| Gledopto | GL-C-008-2ID | | Standard ZCL | +| Gledopto | GL-C-008P | | Standard ZCL | +| Gledopto | GL-C-008S | | Standard ZCL | +| Gledopto | GL-C-009 | | Standard ZCL | +| Gledopto | GL-C-009P | | Standard ZCL | +| Gledopto | GL-C-009S | | Standard ZCL | +| Gledopto | GL-C-103P | | Standard ZCL | +| Gledopto | GL-C-310P | | Standard ZCL | +| Gledopto | GL-D-001P | | Standard ZCL | +| Gledopto | GL-D-002P | | Standard ZCL | +| Gledopto | GL-D-003P | | Standard ZCL | +| Gledopto | GL-D-003Z | | Standard ZCL | +| Gledopto | GL-D-003ZS | | Standard ZCL | +| Gledopto | GL-D-004P | | Standard ZCL | +| Gledopto | GL-D-004Z | | Standard ZCL | +| Gledopto | GL-D-004ZS | | Standard ZCL | +| Gledopto | GL-D-005P | | Standard ZCL | +| Gledopto | GL-D-005Z | | Standard ZCL | +| Gledopto | GL-D-005ZS | | Standard ZCL | +| Gledopto | GL-D-006P | | Standard ZCL | +| Gledopto | GL-D-007P | | Standard ZCL | +| Gledopto | GL-D-008P | | Standard ZCL | +| Gledopto | GL-D-009P | | Standard ZCL | +| Gledopto | GL-D-010P | | Standard ZCL | +| Gledopto | GL-D-013P | | Standard ZCL | +| Gledopto | GL-D-015P | | Standard ZCL | +| Gledopto | GL-FL-001P | | Standard ZCL | +| Gledopto | GL-FL-004P | | Standard ZCL | +| Gledopto | GL-FL-004TZ | | Standard ZCL | +| Gledopto | GL-FL-004TZS | | Standard ZCL | +| Gledopto | GL-FL-005P | | Standard ZCL | +| Gledopto | GL-FL-005TZ | | Standard ZCL | +| Gledopto | GL-FL-005TZS | | Standard ZCL | +| Gledopto | GL-FL-006P | | Standard ZCL | +| Gledopto | GL-FL-006TZ | | Standard ZCL | +| Gledopto | GL-FL-006TZS | | Standard ZCL | +| Gledopto | GL-FL-007P | | Standard ZCL | +| Gledopto | GL-G-001P | | Standard ZCL | +| Gledopto | GL-G-001Z | | Standard ZCL | +| Gledopto | GL-G-001ZS | | Standard ZCL | +| Gledopto | GL-G-002P | | Standard ZCL | +| Gledopto | GL-G-003P | | Standard ZCL | +| Gledopto | GL-G-004P | | Standard ZCL | +| Gledopto | GL-G-005P | | Standard ZCL | +| Gledopto | GL-G-007Z | | Standard ZCL | +| Gledopto | GL-G-101P | | Standard ZCL | +| Gledopto | GL-H-001 | | Standard ZCL | +| Gledopto | GL-LB-001P | | Standard ZCL | +| Gledopto | GL-MC-001 | | Standard ZCL | +| Gledopto | GL-MC-001P | | Standard ZCL | +| Gledopto | GL-MC-002P | | Standard ZCL | +| Gledopto | GL-P-101P | | Standard ZCL | +| Gledopto | GL-S-003Z | | Standard ZCL | +| Gledopto | GL-S-004P | | Standard ZCL | +| Gledopto | GL-S-004Z | | Standard ZCL | +| Gledopto | GL-S-004ZS | | Standard ZCL | +| Gledopto | GL-S-005Z | | Standard ZCL | +| Gledopto | GL-S-006P | | Standard ZCL | +| Gledopto | GL-S-007P | | Standard ZCL | +| Gledopto | GL-S-007Z | | Standard ZCL | +| Gledopto | GL-S-007ZS | | Standard ZCL | +| Gledopto | GL-S-008Z | | Standard ZCL | +| Gledopto | GL-S-014P | | Standard ZCL | +| Gledopto | GL-SD-001 | | Standard ZCL | +| Gledopto | GL-SD-001P | | Standard ZCL | +| Gledopto | GL-SD-002 | | Standard ZCL | +| Gledopto | GL-SD-003P | | Standard ZCL | +| Gledopto | GL-SD-301P | | Standard ZCL | +| Gledopto | GL-SPI-206P | | Standard ZCL | +| Gledopto | GL-W-001Z | | Standard ZCL | +| Gumax | LST103 | | Standard ZCL | +| HFH Solutions | 303-0136 | | Standard ZCL | +| HOBEIAN | ZG-102ZM | Contact, Vibration, Battery | Tuya | +| HOBEIAN | ZG-204ZE | Motion, Illuminance, Battery | Tuya | +| HOBEIAN | ZG-204ZH | Motion, Illuminance, Temperature, Humidity, Battery | Tuya | +| HOBEIAN | ZG-204ZK | Motion, Battery | Tuya | +| HOBEIAN | ZG-204ZQ | Motion, Illuminance, Temperature, Humidity, Battery | Tuya | +| HOBEIAN | ZG-204ZV | Motion, Illuminance, Temperature, Humidity, Battery | Tuya | +| HOBEIAN | ZG-204ZX | Motion, Illuminance, Temperature, Humidity, Battery | Tuya | +| HOBEIAN | ZG-226Z | Water, Battery | Tuya | +| HOBEIAN | ZG-228Z | Vibration, Battery | Tuya | +| HOBEIAN | ZG-302ZL | Motion | Tuya | +| HOBEIAN | ZG-302ZM | Motion | Tuya | +| HOFTRONIC | HD300W-ZB | | Standard ZCL | +| HORNBACH | 10011722 | | Standard ZCL | +| HORNBACH | 10011723 | | Standard ZCL | +| HORNBACH | 10011724 | | Standard ZCL | +| HORNBACH | 10011725 | | Standard ZCL | +| HORNBACH | 10297665 | | Standard ZCL | +| HORNBACH | 10297666 | | Standard ZCL | +| HORNBACH | 10297667 | | Standard ZCL | +| HORNBACH | 10447293 | | Standard ZCL | +| HORNBACH | 10454466 | | Standard ZCL | +| HORNBACH | 10454467 | | Standard ZCL | +| HORNBACH | 10454468 | | Standard ZCL | +| HORNBACH | 10454469 | | Standard ZCL | +| HORNBACH | 10454470 | | Standard ZCL | +| HORNBACH | 10454471 | | Standard ZCL | +| HZC Electric | D077-ZG | | Standard ZCL | +| HZC Electric | D086-ZG | | Standard ZCL | +| HZC Electric | D692-ZG | | Standard ZCL | +| HZC Electric | S900W-ZG | Water, Battery | Standard ZCL | +| HZC Electric | S902M-ZG | Motion, Battery, Illuminance | Standard ZCL | +| Halemeier | HA-ZBM-MW2 | Battery | Standard ZCL | +| Halemeier | HA-ZGMW2-E | | Standard ZCL | +| Halemeier | HA-ZM12/24-1K | | Standard ZCL | +| Halemeier | HA-ZM12/24-4K | | Standard ZCL | +| Halemeier | HA-ZM12/24-mw2 | | Standard ZCL | +| Halemeier | HA-ZM12mw2-4K | | Standard ZCL | +| Halemeier | HA-ZSM-MW2 | Battery | Standard ZCL | +| Halemeier | HA-ZX1 | Battery | Standard ZCL | +| Halo Smart Labs | HALO | Smoke, Carbon Monoxide, Battery, Temperature, Humidity, Pressure | Standard ZCL | +| Halo Smart Labs | HALO+ | Smoke, Carbon Monoxide, Battery, Temperature, Humidity, Pressure | Standard ZCL | +| Hampton Bay | 54668161 | | Standard ZCL | +| Hampton Bay | 99432 | | Standard ZCL | +| Handshake Finland | 2619839 | | Standard ZCL | +| Haozee | HZ-WT02 | Battery | Standard ZCL | +| Heatit | 1444420 | | Standard ZCL | +| Heiman | D1-EFA | Contact, Battery | Standard ZCL | +| Heiman | HM-636THV-AC-M | Smoke, Battery, Temperature, Humidity | Standard ZCL | +| Heiman | HM-722ESY-E Plus | Carbon Monoxide, Battery, Temperature | Standard ZCL | +| Heiman | HS15A-M | Smoke, Battery | Standard ZCL | +| Heiman | HS1CA-E | Carbon Monoxide, Battery | Standard ZCL | +| Heiman | HS1CA-E-PLUS | Carbon Monoxide, Battery, Temperature | Standard ZCL | +| Heiman | HS1CA-M | Carbon Monoxide, Battery | Standard ZCL | +| Heiman | HS1CG | Gas | Standard ZCL | +| Heiman | HS1CG-E | Gas | Standard ZCL | +| Heiman | HS1CG-E_3.0 | Gas | Standard ZCL | +| Heiman | HS1CG-M | Gas | Standard ZCL | +| Heiman | HS1CG_H | Gas | Standard ZCL | +| Heiman | HS1CG_M | Gas | Standard ZCL | +| Heiman | HS1DS | Contact, Battery | Standard ZCL | +| Heiman | HS1MIS-3.0 | Motion, Battery | Standard ZCL | +| Heiman | HS1MS-EF | Motion | Standard ZCL | +| Heiman | HS1MS-M | Motion | Standard ZCL | +| Heiman | HS1RGB | | Standard ZCL | +| Heiman | HS1RM-E | | Standard ZCL | +| Heiman | HS1SA-E | Smoke, Battery | Standard ZCL | +| Heiman | HS1SA-E Lover | Smoke, Battery | Standard ZCL | +| Heiman | HS1SA-E-PLUS | Smoke, Battery, Temperature | Standard ZCL | +| Heiman | HS1VS-EF | Vibration, Battery | Standard ZCL | +| Heiman | HS1VS-N | Vibration, Battery | Standard ZCL | +| Heiman | HS1WL/HS3WL | Water, Battery | Standard ZCL | +| Heiman | HS2ESK-E | | Standard ZCL | +| Heiman | HS2FD-EF1-3.0 | Motion | Standard ZCL | +| Heiman | HS2RNL | Battery | Standard ZCL | +| Heiman | HS2SA-1 | Smoke, Battery | Tuya | +| Heiman | HS2SA-EF-3.0 | Smoke, Battery | Standard ZCL | +| Heiman | HS2SK | | Standard ZCL | +| Heiman | HS2SK_nxp | | Standard ZCL | +| Heiman | HS2SW1A/HS2SW1A-N | Device Temp | Standard ZCL | +| Heiman | HS2SW2A/HS2SW2A-N | Device Temp | Standard ZCL | +| Heiman | HS2SW3A/HS2SW3A-N | Device Temp | Standard ZCL | +| Heiman | HS2WDS | | Standard ZCL | +| Heiman | HS2WDSC-E | Battery | Standard ZCL | +| Heiman | HS2WDSR-E | Battery | Standard ZCL | +| Heiman | HS2WL | Water, Temperature, Battery | Standard ZCL | +| Heiman | HS3CG | Gas | Standard ZCL | +| Heiman | HS3DS | Contact, Battery | Standard ZCL | +| Heiman | HS3MS | Motion | Standard ZCL | +| Heiman | HS3SA/HS1SA | Smoke, Battery | Standard ZCL | +| Heiman | HS8DS-EFA | Contact, Battery | Standard ZCL | +| Heiman | HS8MIS-EF1-3.0 | Motion | Standard ZCL | +| Heiman | HS8MLS-EF1-3.0 | Motion | Standard ZCL | +| Heiman | HS8OS-EF1-3.0 | Motion | Standard ZCL | +| Heiman | HS9MS-E | Motion, Battery | Standard ZCL | +| Heiman | Heiman-M1 | Contact | Standard ZCL | +| Heiman | M1-PE | Motion, Battery, Illuminance, Temperature, Humidity | Standard ZCL | +| Heiman | PIR_TPV12 | Motion, Battery | Standard ZCL | +| Heimgard Technologies | HC-BPW4-1 | Battery | Standard ZCL | +| Heimgard Technologies | HC-IWDIM-1 | | Standard ZCL | +| Heimgard Technologies | HC-IWSWI-1 | | Standard ZCL | +| Heimgard Technologies | HC-SLM-1 | Battery | Standard ZCL | +| Heimgard Technologies | HT-DWM-2 | Contact, Battery | Standard ZCL | +| Heimgard Technologies | HT-MOT-2 | Motion, Battery | Standard ZCL | +| Heimgard Technologies | HT-SLM-2 | Battery | Standard ZCL | +| Heimgard Technologies | HT-SLM-3 | Battery | Standard ZCL | +| Heimgard Technologies | HT-SMO-2 | Smoke, Battery | Standard ZCL | +| Hej | GLSK3ZB-1711 | | Standard ZCL | +| Hej | GLSK3ZB-1712 | | Standard ZCL | +| Hej | GLSK3ZB-1713 | | Standard ZCL | +| Hej | GLSK6ZB-1714 | | Standard ZCL | +| Hej | GLSK6ZB-1715 | | Standard ZCL | +| Hej | GLSK6ZB-1716 | | Standard ZCL | +| Hej | KKZ-DO021 | Contact, Battery | Standard ZCL | +| Hej | KKZ-MO021 | Motion, Battery | Standard ZCL | +| Hilux | D160-ZG | | Standard ZCL | +| Hilux | DZ8 | | Standard ZCL | +| Hive | 1613V | | Standard ZCL | +| Hive | DWS003 | Contact, Temperature, Battery | Standard ZCL | +| Hive | FWGU10Bulb02UK | | Standard ZCL | +| Hive | FWGU10Bulb03UK | | Standard ZCL | +| Hive | HALIGHTDIMWWB22 | | Standard ZCL | +| Hive | HALIGHTDIMWWE14 | | Standard ZCL | +| Hive | HALIGHTDIMWWE27 | | Standard ZCL | +| Hive | HV-CE14CXZB6 | | Standard ZCL | +| Hive | HV-GSCXZB229B | | Standard ZCL | +| Hive | HV-GSCXZB269 | | Standard ZCL | +| Hive | HV-GSCXZB279_HV-GSCXZB229_HV-GSCXZB229K | | Standard ZCL | +| Hive | HV-GUCXZB5 | | Standard ZCL | +| Hive | KEYPAD001 | Motion, Battery, Contact | Standard ZCL | +| Hive | MOT003 | Motion, Temperature, Battery | Standard ZCL | +| Homcloud | HY-SZLUMPIR | Motion, Illuminance, Battery | Tuya | +| HomeSeer | DS150ZB | Contact, Battery | Standard ZCL | +| Hommyn | MS-20-Z | Motion, Battery | Standard ZCL | +| Hommyn | WS-20-Z | Water | Standard ZCL | +| Honyar | U2-86K11ND10-ZD | | Standard ZCL | +| Honyar | U2-86K21ND10-ZD | | Standard ZCL | +| Honyar | U2-86K31ND10-ZD | | Standard ZCL | +| Honyar | U86K31ND6 | | Standard ZCL | +| Honyar | U86Z13A16-ZJH(HA) | | Standard ZCL | +| Honyar | U86Z223A10-ZJU01(GD) | | Standard ZCL | +| IKEA | 90504044 | | Standard ZCL | +| IKEA | E1524/E1810 | Battery | Standard ZCL | +| IKEA | E1525/E1745 | Motion, Battery | Standard ZCL | +| IKEA | E160x/E170x/E190x | | Standard ZCL | +| IKEA | E1743 | Battery | Standard ZCL | +| IKEA | E1744 | Battery | Standard ZCL | +| IKEA | E1812 | Battery | Standard ZCL | +| IKEA | E1836 | | Standard ZCL | +| IKEA | E1841 | Battery | Standard ZCL | +| IKEA | E1842 | Water | Standard ZCL | +| IKEA | E2001/E2002/E2313 | Battery | Standard ZCL | +| IKEA | E2013 | Contact, Battery | Standard ZCL | +| IKEA | E2123 | Battery | Standard ZCL | +| IKEA | E2134 | Motion, Illuminance, Battery | Standard ZCL | +| IKEA | E2201 | Battery | Standard ZCL | +| IKEA | E2202 | Water, Battery | Standard ZCL | +| IKEA | E22x4 | | Standard ZCL | +| IKEA | E22xx | | Standard ZCL | +| IKEA | E2435/E2491 | | Standard ZCL | +| IKEA | E2489 | Battery | Standard ZCL | +| IKEA | E2490 | Battery | Standard ZCL | +| IKEA | E2499 | | Standard ZCL | +| IKEA | G2015 | | Standard ZCL | +| IKEA | ICPSHC24-10EU-IL-1/ICPSHC24-10EU-IL-2 | | Standard ZCL | +| IKEA | ICPSHC24-30-IL44-1 | | Standard ZCL | +| IKEA | ICPSHC24-30EU-IL-1/ICPSHC24-10EU-IL-2 | | Standard ZCL | +| IKEA | ICTC-G-1 | Battery | Standard ZCL | +| IKEA | KAJPLATS_CWS | | Standard ZCL | +| IKEA | KAJPLATS_WS | | Standard ZCL | +| IKEA | KAJPLATS_WS_clear | | Standard ZCL | +| IKEA | L1527 | | Standard ZCL | +| IKEA | L1528 | | Standard ZCL | +| IKEA | L1529 | | Standard ZCL | +| IKEA | L1530 | | Standard ZCL | +| IKEA | L1531 | | Standard ZCL | +| IKEA | L2112 | | Standard ZCL | +| IKEA | L2205 | | Standard ZCL | +| IKEA | L2206 | | Standard ZCL | +| IKEA | L2207 | | Standard ZCL | +| IKEA | L2208 | | Standard ZCL | +| IKEA | LED1536G5 | | Standard ZCL | +| IKEA | LED1537R6/LED1739R5 | | Standard ZCL | +| IKEA | LED1545G12 | | Standard ZCL | +| IKEA | LED1546G12 | | Standard ZCL | +| IKEA | LED1622G12 | | Standard ZCL | +| IKEA | LED1623G12 | | Standard ZCL | +| IKEA | LED1624G9 | | Standard ZCL | +| IKEA | LED1649C5 | | Standard ZCL | +| IKEA | LED1650R5 | | Standard ZCL | +| IKEA | LED1732G11 | | Standard ZCL | +| IKEA | LED1733G7 | | Standard ZCL | +| IKEA | LED1736G9 | | Standard ZCL | +| IKEA | LED1738G7 | | Standard ZCL | +| IKEA | LED1835C6 | | Standard ZCL | +| IKEA | LED1836G9 | | Standard ZCL | +| IKEA | LED1837R5 | | Standard ZCL | +| IKEA | LED1842G3 | | Standard ZCL | +| IKEA | LED1923R5 | | Standard ZCL | +| IKEA | LED1924G9 | | Standard ZCL | +| IKEA | LED1925G6 | | Standard ZCL | +| IKEA | LED1934G3 | | Standard ZCL | +| IKEA | LED1935C3 | | Standard ZCL | +| IKEA | LED1936G5 | | Standard ZCL | +| IKEA | LED1937T5 | | Standard ZCL | +| IKEA | LED1949C5 | | Standard ZCL | +| IKEA | LED2002G5 | | Standard ZCL | +| IKEA | LED2003G10 | | Standard ZCL | +| IKEA | LED2004G8 | | Standard ZCL | +| IKEA | LED2005R5/LED2106R3 | | Standard ZCL | +| IKEA | LED2006R9 | | Standard ZCL | +| IKEA | LED2008G3 | | Standard ZCL | +| IKEA | LED2009C3 | | Standard ZCL | +| IKEA | LED2035G10 | | Standard ZCL | +| IKEA | LED2101G4 | | Standard ZCL | +| IKEA | LED2102G3 | | Standard ZCL | +| IKEA | LED2103G5 | | Standard ZCL | +| IKEA | LED2104R3 | | Standard ZCL | +| IKEA | LED2107C4 | | Standard ZCL | +| IKEA | LED2109G6 | | Standard ZCL | +| IKEA | LED2110R3 | | Standard ZCL | +| IKEA | LED2111G6 | | Standard ZCL | +| IKEA | LED2201G8 | | Standard ZCL | +| IKEA | T1820 | | Standard ZCL | +| IKEA | T1828 | | Standard ZCL | +| IKEA | T1829 | | Standard ZCL | +| IKEA | T2011 | | Standard ZCL | +| IKEA | T2030 | | Standard ZCL | +| IKEA | T2035 | | Standard ZCL | +| IKEA | T2037 | | Standard ZCL | +| IKEA | T2105 | | Standard ZCL | +| IKEA | T2106 | | Standard ZCL | +| IMOU | ZP1-EN | Motion, Battery | Standard ZCL | +| IOTPerfect | PF-PM02D-TYZ | | Standard ZCL | +| IT Commander | ITCMDR_Contact | Contact, Battery | Standard ZCL | +| Idinio | 0140302 | | Standard ZCL | +| Iluminize | 511.000 | | Standard ZCL | +| Iluminize | 511.010 | | Standard ZCL | +| Iluminize | 511.012 | | Standard ZCL | +| Iluminize | 511.020 | | Standard ZCL | +| Iluminize | 511.040 | | Standard ZCL | +| Iluminize | 511.050 | | Standard ZCL | +| Iluminize | 511.10 | | Standard ZCL | +| Iluminize | 511.201 | | Standard ZCL | +| Iluminize | 511.202 | | Standard ZCL | +| Iluminize | 511.324 | Battery | Standard ZCL | +| Iluminize | 511.524 | | Standard ZCL | +| Iluminize | 511.541 | | Standard ZCL | +| Iluminize | 511.544 | | Standard ZCL | +| Iluminize | 511.557 | | Standard ZCL | +| Iluminize | 5110.40 | | Standard ZCL | +| Iluminize | 5112.80 | | Standard ZCL | +| Iluminize | 5120.1100 | | Standard ZCL | +| Iluminize | 5120.1110 | | Standard ZCL | +| Iluminize | 5120.1200 | | Standard ZCL | +| Iluminize | 5120.1210 | | Standard ZCL | +| Iluminize | 5120.2110 | | Standard ZCL | +| Iluminize | 5120.2210 | | Standard ZCL | +| Iluminize | 5121.10 | | Standard ZCL | +| Iluminize | 5123.1110 | | Standard ZCL | +| Iluminize | 5144.01 | Battery | Standard ZCL | +| Iluminize | 5144.11 | Battery | Standard ZCL | +| Iluminize | 5144.21 | Battery | Standard ZCL | +| Iluminize | 5715 | | Standard ZCL | +| Iluminize | 5717 | | Standard ZCL | +| Imhotep Creation | E-Ctrl | Motion | Standard ZCL | +| Immax | 07001L/07005B | | Standard ZCL | +| Immax | 07004D/07005L | | Standard ZCL | +| Immax | 07008L | | Standard ZCL | +| Immax | 07042L | | Standard ZCL | +| Immax | 07043M | Motion, Battery | Standard ZCL | +| Immax | 07045L | Contact | Standard ZCL | +| Immax | 07047L | Motion, Battery, Temperature, Humidity, Illuminance | Standard ZCL | +| Immax | 07048L | | Standard ZCL | +| Immax | 07073L | | Standard ZCL | +| Immax | 07088L | | Standard ZCL | +| Immax | 07089L | | Standard ZCL | +| Immax | 07115L | | Standard ZCL | +| Immax | 07502L | Motion, Battery, Temperature, Humidity, Illuminance | Standard ZCL | +| Immax | 07703L | | Standard ZCL | +| Immax | 07743L | | Standard ZCL | +| Immax | 07752L | | Standard ZCL | +| Immax | TS0502C | | Standard ZCL | +| Innr | AE 260 | | Standard ZCL | +| Innr | AE 262 | | Standard ZCL | +| Innr | AE 264 | | Standard ZCL | +| Innr | AE 270 T | | Standard ZCL | +| Innr | AE 270 T-2 | | Standard ZCL | +| Innr | AE 280 C | | Standard ZCL | +| Innr | AE 282 C | | Standard ZCL | +| Innr | AE 287 C | | Standard ZCL | +| Innr | BB 262 | | Standard ZCL | +| Innr | BB 282 C | | Standard ZCL | +| Innr | BB 287 C | | Standard ZCL | +| Innr | BB 287 C-2 | | Standard ZCL | +| Innr | BE 220 | | Standard ZCL | +| Innr | BF 263 | | Standard ZCL | +| Innr | BF 265 | | Standard ZCL | +| Innr | BY 165 | | Standard ZCL | +| Innr | BY 178 T | | Standard ZCL | +| Innr | BY 185 C | | Standard ZCL | +| Innr | BY 266 | | Standard ZCL | +| Innr | BY 285 C | | Standard ZCL | +| Innr | BY 286 C | | Standard ZCL | +| Innr | DL 110 N | | Standard ZCL | +| Innr | DL 110 W | | Standard ZCL | +| Innr | FL 120 C | | Standard ZCL | +| Innr | FL 122 C | | Standard ZCL | +| Innr | FL 130 C | | Standard ZCL | +| Innr | FL 140 C | | Standard ZCL | +| Innr | FL 142 C | | Standard ZCL | +| Innr | FL 230 C | | Standard ZCL | +| Innr | FL 250 C | | Standard ZCL | +| Innr | OFL 120 C | | Standard ZCL | +| Innr | OFL 122 C | | Standard ZCL | +| Innr | OFL 140 C | | Standard ZCL | +| Innr | OFL 142 C | | Standard ZCL | +| Innr | OGL 130 C | | Standard ZCL | +| Innr | OLS 210 | | Standard ZCL | +| Innr | OPL 130 C | | Standard ZCL | +| Innr | OSL 130 C | | Standard ZCL | +| Innr | OSL 132 C | | Standard ZCL | +| Innr | OSL 140 C | | Standard ZCL | +| Innr | OSL 232 C | | Standard ZCL | +| Innr | OSP 210 | | Standard ZCL | +| Innr | OSP 240 | | Standard ZCL | +| Innr | PL 110 | | Standard ZCL | +| Innr | PL 115 | | Standard ZCL | +| Innr | RB 145 | | Standard ZCL | +| Innr | RB 148 T | | Standard ZCL | +| Innr | RB 162 | | Standard ZCL | +| Innr | RB 165 | | Standard ZCL | +| Innr | RB 172 W | | Standard ZCL | +| Innr | RB 175 W | | Standard ZCL | +| Innr | RB 178 T | | Standard ZCL | +| Innr | RB 185 C | | Standard ZCL | +| Innr | RB 243 | | Standard ZCL | +| Innr | RB 245 | | Standard ZCL | +| Innr | RB 246 T | | Standard ZCL | +| Innr | RB 247 T | | Standard ZCL | +| Innr | RB 248 T | | Standard ZCL | +| Innr | RB 249 T | | Standard ZCL | +| Innr | RB 250 C | | Standard ZCL | +| Innr | RB 251 C | | Standard ZCL | +| Innr | RB 252 C | | Standard ZCL | +| Innr | RB 255 C | | Standard ZCL | +| Innr | RB 256 C | | Standard ZCL | +| Innr | RB 262 | | Standard ZCL | +| Innr | RB 265 | | Standard ZCL | +| Innr | RB 266 | | Standard ZCL | +| Innr | RB 267 | | Standard ZCL | +| Innr | RB 272 T | | Standard ZCL | +| Innr | RB 278 T | | Standard ZCL | +| Innr | RB 279 T | | Standard ZCL | +| Innr | RB 282 C | | Standard ZCL | +| Innr | RB 285 C | | Standard ZCL | +| Innr | RB 286 C | | Standard ZCL | +| Innr | RB 287 C | | Standard ZCL | +| Innr | RC 110 | | Standard ZCL | +| Innr | RC 210 | Battery | Standard ZCL | +| Innr | RC 250 | Battery | Standard ZCL | +| Innr | RCL 110 | | Standard ZCL | +| Innr | RCL 231 T | | Standard ZCL | +| Innr | RCL 232 C | | Standard ZCL | +| Innr | RCL 240 T | | Standard ZCL | +| Innr | RCL 241 T | | Standard ZCL | +| Innr | RCL 242 C | | Standard ZCL | +| Innr | RF 261 | | Standard ZCL | +| Innr | RF 262 | | Standard ZCL | +| Innr | RF 263 | | Standard ZCL | +| Innr | RF 264 | | Standard ZCL | +| Innr | RF 265 | | Standard ZCL | +| Innr | RF 271 T | | Standard ZCL | +| Innr | RF 273 T | | Standard ZCL | +| Innr | RF 274 T | | Standard ZCL | +| Innr | RS 122 | | Standard ZCL | +| Innr | RS 125 | | Standard ZCL | +| Innr | RS 128 T | | Standard ZCL | +| Innr | RS 225 | | Standard ZCL | +| Innr | RS 226 | | Standard ZCL | +| Innr | RS 227 T | | Standard ZCL | +| Innr | RS 228 T | | Standard ZCL | +| Innr | RS 229 T | | Standard ZCL | +| Innr | RS 230 C | | Standard ZCL | +| Innr | RS 232 C | | Standard ZCL | +| Innr | RS 240 | | Standard ZCL | +| Innr | RS 241 T | | Standard ZCL | +| Innr | RS 242 C | | Standard ZCL | +| Innr | RSL 110 | | Standard ZCL | +| Innr | RSL 115 | | Standard ZCL | +| Innr | SL 110 M | | Standard ZCL | +| Innr | SL 110 N | | Standard ZCL | +| Innr | SL 110 W | | Standard ZCL | +| Innr | SP 110 | | Standard ZCL | +| Innr | SP 120 | | Standard ZCL | +| Innr | SP 220 | | Standard ZCL | +| Innr | SP 222 | | Standard ZCL | +| Innr | SP 224 | | Standard ZCL | +| Innr | SP 234 | | Standard ZCL | +| Innr | SP 240 | | Standard ZCL | +| Innr | ST 110 | | Standard ZCL | +| Innr | UC 110 | | Standard ZCL | +| Inovelli | VZM30-SN | Temperature, Humidity | Standard ZCL | +| Inovelli | VZM31-SN | | Standard ZCL | +| Inovelli | VZM32-SN | Motion, Illuminance | Standard ZCL | +| Inovelli | VZM36 | | Standard ZCL | +| Insta | 57004000 | | Standard ZCL | +| Insta | 57005000 | | Standard ZCL | +| Insta | InstaRemote | | Standard ZCL | +| Intuis | intuisradiator | Motion | Standard ZCL | +| Iolloi | ID-UK21FW09 | | Standard ZCL | +| Iris | 27087-03 | Battery | Standard ZCL | +| Iris | 3210-L | | Standard ZCL | +| Iris | 3315-L | Water, Temperature, Battery | Standard ZCL | +| Iris | 3320-L | Contact, Temperature, Battery | Standard ZCL | +| Iris | 3326-L | Motion, Temperature, Battery | Standard ZCL | +| Iris | 3450-L | Motion, Battery | Standard ZCL | +| Iris | 3460-L | Battery, Temperature | Standard ZCL | +| Iris | IL06_1 | Contact, Temperature, Battery | Standard ZCL | +| Iris | iL03_1 | | Standard ZCL | +| Iris | iL07_1 | Motion, Temperature, Humidity, Battery | Standard ZCL | +| J.XUAN | DSZ01 | Contact, Battery | Standard ZCL | +| J.XUAN | PRZ01 | Motion, Battery | Standard ZCL | +| J.XUAN | SPZ01 | | Standard ZCL | +| JAVIS | JS-MC-SENSOR-ZB | Motion, Illuminance | Standard ZCL | +| JIAWEN | JW-A04-CT | | Standard ZCL | +| JIAWEN | K2RGBW01 | | Standard ZCL | +| JUMITECH APS | J2182548 | | Standard ZCL | +| Jasco | 43132 | | Standard ZCL | +| Jasco Products | 43095 | | Standard ZCL | +| Jasco Products | ZB3102 | | Standard ZCL | +| KAMI | N20 | Contact | Standard ZCL | +| KMPCIL | KMPCIL-tag-001 | Motion, Battery, Vibration, Temperature | Standard ZCL | +| KMPCIL | KMPCIL_RES005 | Motion, Battery, Temperature, Humidity, Pressure, Illuminance | Standard ZCL | +| KURVIA | ZB-CL01 | | Standard ZCL | +| KlikAanKlikUit | ZCC-250 | | Standard ZCL | +| KlikAanKlikUit | ZCC-3500 | | Standard ZCL | +| KlikAanKlikUit | ZCM-1800 | | Standard ZCL | +| Konke | 2AJZ4KPBS | Motion, Battery | Standard ZCL | +| Konke | 2AJZ4KPDR | Contact, Battery | Standard ZCL | +| Konke | KK-BS-J01W | Motion, Battery | Standard ZCL | +| Konke | KK-DS-J01W | Contact, Battery | Standard ZCL | +| Konke | KK-LP-Q01D | | Standard ZCL | +| Konke | KK-LP-Q02D | | Standard ZCL | +| Konke | KK-LP-Q03D | | Standard ZCL | +| Konke | KK-QD-Y01w | | Standard ZCL | +| Konke | KK-WA-J01W | Water, Battery | Standard ZCL | +| Konke | LH07321 | Water | Standard ZCL | +| Konke | TW-S1 | Smoke | Standard ZCL | +| Ksentry Electronics | KS-SM001 | | Standard ZCL | +| Kwikset | 66492-001 | Battery | Standard ZCL | +| Kwikset | 99100-006 | Battery | Standard ZCL | +| Kwikset | 99100-045 | Battery | Standard ZCL | +| Kwikset | 99120-021 | Battery | Standard ZCL | +| Kwikset | 99140-002 | Battery | Standard ZCL | +| Kwikset | 99140-031 | Battery | Standard ZCL | +| Kwikset | 99140-139 | Battery | Standard ZCL | +| L&S Lighting | 756200027 | | Standard ZCL | +| L&S Lighting | 756200030 | | Standard ZCL | +| L&S Lighting | 756200643 | | Standard ZCL | +| L&S Lighting | A319463 | | Standard ZCL | +| LDS | FWBulb03UK | | Standard ZCL | +| LDS | PFMOT001 | Motion, Battery | Standard ZCL | +| LDS | ZBT-RGBWLight-A0000 | | Standard ZCL | +| LED-Trading | 9134 | | Standard ZCL | +| LED-Trading | HK-LN-DIM-A | | Standard ZCL | +| LEDRON | QS-Zigbee-D04 | | Standard ZCL | +| LEDVANCE | 4058075168572 | | Standard ZCL | +| LEDVANCE | 4058075173989 | | Standard ZCL | +| LEDVANCE | 4058075181472 | | Standard ZCL | +| LEDVANCE | 4058075208339 | | Standard ZCL | +| LEDVANCE | 4058075208353 | | Standard ZCL | +| LEDVANCE | 4058075208360 | | Standard ZCL | +| LEDVANCE | 4058075208384 | | Standard ZCL | +| LEDVANCE | 4058075208391 | | Standard ZCL | +| LEDVANCE | 4058075208414 | | Standard ZCL | +| LEDVANCE | 4058075208421 | | Standard ZCL | +| LEDVANCE | 4058075364547 | | Standard ZCL | +| LEDVANCE | 4058075364561 | | Standard ZCL | +| LEDVANCE | 4058075485174 | | Standard ZCL | +| LEDVANCE | 4058075724587 | | Standard ZCL | +| LEDVANCE | 4058075728981 | | Standard ZCL | +| LEDVANCE | 4058075729001 | | Standard ZCL | +| LEDVANCE | 4058075729025 | | Standard ZCL | +| LEDVANCE | 4058075729049 | | Standard ZCL | +| LEDVANCE | 4058075729063 | | Standard ZCL | +| LEDVANCE | 4058075729087 | | Standard ZCL | +| LEDVANCE | 4058075729100 | | Standard ZCL | +| LEDVANCE | 4058075729124 | | Standard ZCL | +| LEDVANCE | 4058075729148 | | Standard ZCL | +| LEDVANCE | 4058075729162 | | Standard ZCL | +| LEDVANCE | 4058075729186 | | Standard ZCL | +| LEDVANCE | 4058075729209 | | Standard ZCL | +| LEDVANCE | 4058075729223 | | Standard ZCL | +| LEDVANCE | 4058075729247 | | Standard ZCL | +| LEDVANCE | 4058075729285 | | Standard ZCL | +| LEDVANCE | 4058075729308 | | Standard ZCL | +| LEDVANCE | 4058075729322 | | Standard ZCL | +| LEDVANCE | 4058075729346 | | Standard ZCL | +| LEDVANCE | 4058075729360 | | Standard ZCL | +| LEDVANCE | 4058075729384 | | Standard ZCL | +| LEDVANCE | 4058075823976 | | Standard ZCL | +| LEDVANCE | 4058075824010 | | Standard ZCL | +| LEDVANCE | 4099854293276 | | Standard ZCL | +| LEDVANCE | 4099854295232 | | Standard ZCL | +| LEDVANCE | 4099854513718 | | Standard ZCL | +| LEDVANCE | 74746 | | Standard ZCL | +| LEDVANCE | AC08560 | | Standard ZCL | +| LEDVANCE | AC23684 | | Standard ZCL | +| LEDVANCE | AC25697 | | Standard ZCL | +| LEDVANCE | AC25702 | | Standard ZCL | +| LEDVANCE | AC25704 | | Standard ZCL | +| LEDVANCE | AC26940/AC31266 | | Standard ZCL | +| LEDVANCE | AC33901 | | Standard ZCL | +| LEDVANCE | AC33903 | | Standard ZCL | +| LEDVANCE | AC33905 | | Standard ZCL | +| LEDVANCE | AC33906 | | Standard ZCL | +| LEDVANCE | GPDRPLOP401100CE | | Standard ZCL | +| LEDVANCE | SMARTZBA60RGBW | | Standard ZCL | +| LEDVANCE | ST8EM-CON | | Standard ZCL | +| LELLKI | CM001 | | Standard ZCL | +| LELLKI | JZ-ZB-001 | | Standard ZCL | +| LELLKI | JZ-ZB-002 | | Standard ZCL | +| LELLKI | JZ-ZB-003 | | Standard ZCL | +| LELLKI | WK34-EU | | Standard ZCL | +| LELLKI | WP30-EU | | Standard ZCL | +| LELLKI | WP33-EU/WP34-EU | | Standard ZCL | +| LELLKI | XF-EU-S100-1-M | | Standard ZCL | +| LG Electronics | B1027EB0Z01 | | Standard ZCL | +| LG Electronics | B1027EB0Z02 | | Standard ZCL | +| LG Electronics | B1027EB4Z01 | | Standard ZCL | +| Lanesto | 322054 | | Standard ZCL | +| Leedarson | 5AA-SS-ZA-H0 | Motion, Illuminance | Standard ZCL | +| Leedarson | 6xy-M350ST-W1Z | | Standard ZCL | +| Leedarson | 7A-SS-ZABC-H0 | Motion, Battery, Temperature, Humidity, Illuminance | Standard ZCL | +| Leedarson | 8A-SS-BA-H0 | Motion, Battery | Standard ZCL | +| Leedarson | A806S-Q1G | | Standard ZCL | +| Leedarson | A806S-Q1R | | Standard ZCL | +| Leedarson | LDHD2AZW | Contact, Temperature, Battery | Standard ZCL | +| Leedarson | M350STW1 | | Standard ZCL | +| Leedarson | ZA806SQ1TCF | | Standard ZCL | +| Leedarson | ZBT-CCTLight-Candle0904 | | Standard ZCL | +| Leedarson | ZBT-CCTLight-GLS0904 | | Standard ZCL | +| Leedarson | ZBT-DIMLight-GLS0800 | | Standard ZCL | +| Leedarson | ZM350STW1TCF | | Standard ZCL | +| Legrand | 064873 | Battery | Standard ZCL | +| Legrand | 064882 | | Standard ZCL | +| Legrand | 064888 | | Standard ZCL | +| Legrand | 067694 | Battery | Standard ZCL | +| Legrand | 067755 | Battery | Standard ZCL | +| Legrand | 067766 | | Standard ZCL | +| Legrand | 067767 | Battery | Standard ZCL | +| Legrand | 067771 | | Standard ZCL | +| Legrand | 067772 | | Standard ZCL | +| Legrand | 067773 | Battery | Standard ZCL | +| Legrand | 067774 | Battery | Standard ZCL | +| Legrand | 067775/741811 | | Standard ZCL | +| Legrand | 067797 | | Standard ZCL | +| Legrand | 199182 | | Standard ZCL | +| Legrand | 281506 | | Standard ZCL | +| Legrand | 412170 | | Standard ZCL | +| Legrand | 412171 | | Standard ZCL | +| Legrand | 412173 | | Standard ZCL | +| Legrand | 752189 | Battery | Standard ZCL | +| Legrand | WNAL10/WNRL10 | | Standard ZCL | +| Legrand | WNAL50/WNRL50 | | Standard ZCL | +| Legrand | WNAL63 | Battery | Standard ZCL | +| Legrand | WNRR15/WNRR20 | | Standard ZCL | +| Letsleds | HLC929-Z-RGBW-4C-IA-OTA-3.0 | | Standard ZCL | +| Leviton | DG15A-1BW | | Standard ZCL | +| Leviton | DG15S-1BW | | Standard ZCL | +| Leviton | DG3HL-1BW | | Standard ZCL | +| Leviton | DG6HD-1BW | | Standard ZCL | +| Leviton | DL15S-1BZ | | Standard ZCL | +| Leviton | ZS057-D0Z | | Standard ZCL | +| Lidl | 14153806L | | Standard ZCL | +| Lidl | FB20-002 | | Standard ZCL | +| Lidl | FB21-001 | | Standard ZCL | +| Lidl | HG06335/HG07310 | Motion, Battery | Standard ZCL | +| Lidl | HG06336 | Contact, Battery | Standard ZCL | +| Lidl | HG06337 | | Standard ZCL | +| Lidl | HG06338 | | Standard ZCL | +| Lidl | HG06467 | | Standard ZCL | +| Lidl | HG06619 | | Standard ZCL | +| Lidl | HG06620 | | Standard ZCL | +| Lidl | HG08164 | Battery | Standard ZCL | +| Lidl | HG08633 | | Standard ZCL | +| Lidl | HG08673 | | Standard ZCL | +| Lidl | PSBZS A1 | Battery | Tuya | +| LifeControl | MCLH-02 | | Standard ZCL | +| LifeControl | MCLH-03 | | Standard ZCL | +| LifeControl | MCLH-04 | Contact, Battery | Standard ZCL | +| LifeControl | MCLH-05 | Motion, Battery | Standard ZCL | +| LifeControl | MCLH-07 | Water, Battery | Standard ZCL | +| Light Solutions | 200106V3 | | Standard ZCL | +| Light Solutions | 200403V2-B | | Standard ZCL | +| Light Solutions | 3004482/3137308/3137309 | | Standard ZCL | +| Light Solutions | 42-032 | | Standard ZCL | +| Light Solutions | 91-943 | | Standard ZCL | +| Light Solutions | 91-943-PRO | | Standard ZCL | +| Light Solutions | 91-943-PRO-RGBCW | | Standard ZCL | +| Light Solutions | 91-947-micro | | Standard ZCL | +| Lincukoo | CZB01 | Battery | Standard ZCL | +| Lincukoo | CZF02 | Battery | Tuya | +| Lincukoo | R12LM-Z10T | Motion, Illuminance | Tuya | +| Lincukoo | R12LM-Z11T | Motion, Illuminance | Tuya | +| Lincukoo | SZLM04U | Motion, Illuminance, Battery | Tuya | +| Lincukoo | SZLMR10 | Motion, Illuminance | Tuya | +| Lincukoo | SZLR08 | Motion, Illuminance | Tuya | +| Lincukoo | SZLR08T | Motion, Illuminance | Tuya | +| Lincukoo | SZR07 | Motion, Illuminance | Tuya | +| Linkind | LS21001 | Water, Battery | Standard ZCL | +| Linkind | ZL00030014 | | Standard ZCL | +| Linkind | ZL1000100-CCT-US-V1A02 | | Standard ZCL | +| Linkind | ZL100010008 | | Standard ZCL | +| Linkind | ZL1000400-CCT-EU-2-V1A02 | | Standard ZCL | +| Linkind | ZL100050004 | | Standard ZCL | +| Linkind | ZL1000700-22-EU-V1A02 | | Standard ZCL | +| Linkind | ZL1000701-27-EU-V1A02 | | Standard ZCL | +| Linkind | ZL13100314 | | Standard ZCL | +| Linkind | ZS1100400-IN-V1A02 | Motion, Battery | Standard ZCL | +| Linkind | ZS110050078 | Contact, Battery | Standard ZCL | +| Linkind | ZS130000078 | Motion, Battery | Standard ZCL | +| Linkind | ZS190000118 | | Standard ZCL | +| Linkind | ZS230002 | Battery | Standard ZCL | +| Linkind | ZS232000178 | Battery | Standard ZCL | +| LinknLink | eMotion Air | Motion, Temperature, Humidity, Illuminance, Battery | Standard ZCL | +| Linptech | ES1ZZ(TY) | Motion, Illuminance | Standard ZCL | +| LivingWise | LVS-SM10ZW | Contact | Standard ZCL | +| LivingWise | LVS-SN10ZW_SN11 | Motion, Battery | Standard ZCL | +| LivingWise | LVS-ZB15R | | Standard ZCL | +| LivingWise | LVS-ZB15S | | Standard ZCL | +| LivingWise | LVS-ZB500D | | Standard ZCL | +| Livolo | TI0001 | | Standard ZCL | +| Livolo | TI0001-cover | Motion | Standard ZCL | +| Livolo | TI0001-curtain-switch | | Standard ZCL | +| Livolo | TI0001-dimmer | | Standard ZCL | +| Livolo | TI0001-pir | Motion | Standard ZCL | +| Livolo | TI0001-socket | | Standard ZCL | +| Livolo | TI0001-switch | | Standard ZCL | +| Livolo | TI0001-switch-2gang | | Standard ZCL | +| Lonsonho | 4000116784070 | | Standard ZCL | +| Lonsonho | QS-Zigbee-D02-TRIAC-2C-L | | Standard ZCL | +| Lonsonho | QS-Zigbee-D02-TRIAC-2C-LN | | Standard ZCL | +| Lonsonho | QS-Zigbee-D02-TRIAC-LN | | Standard ZCL | +| Lonsonho | QS-Zigbee-S04-2C-LN | | Standard ZCL | +| Lonsonho | QS-Zigbee-S05-LN | | Standard ZCL | +| Lonsonho | VM-Zigbee-S02-0-10V | | Standard ZCL | +| Lonsonho | X701A | | Standard ZCL | +| Lonsonho | X711A | | Standard ZCL | +| Lonsonho | X712A | | Standard ZCL | +| Lonsonho | X713A | | Standard ZCL | +| Lonsonho | ZB-RGBCW | | Standard ZCL | +| Lubeez | 12AB | | Standard ZCL | +| Lupus | 12050 | | Standard ZCL | +| Lupus | 12126 | | Standard ZCL | +| Lupus | 12127 | | Standard ZCL | +| Lutron | LZL4BWHL01 | | Standard ZCL | +| Lutron | Z3-1BRL | Battery | Standard ZCL | +| M-ELEC | ML-ST-BP-DIM | | Standard ZCL | +| M-ELEC | ML-ST-D200 | | Standard ZCL | +| M-ELEC | ML-ST-D200-NF | | Standard ZCL | +| M-ELEC | ML-ST-R200 | | Standard ZCL | +| MLI | 404078 | | Standard ZCL | +| MLI | 404114 | | Standard ZCL | +| MakeGood | MG-AUZG01 | | Standard ZCL | +| MakeGood | MG-GPO01 | | Standard ZCL | +| Matcall | ZG401224 | | Standard ZCL | +| Matcall | ZG430700 | | Standard ZCL | +| Meazon | MEAZON_BIZY_PLUG | | Standard ZCL | +| Meazon | MEAZON_DINRAIL | | Standard ZCL | +| Megaman | LC201060 | | Standard ZCL | +| Meian | GA01 | Gas | Tuya | +| Mercator Ikuü | SISWD11-ZB | | Standard ZCL | +| Mercator Ikuü | SMA02P | Motion, Battery | Standard ZCL | +| Mercator Ikuü | SMA04P | Contact, Battery | Standard ZCL | +| Mercator Ikuü | SMD4109W-RGB-ZB | | Standard ZCL | +| Mercator Ikuü | SPP02G | | Standard ZCL | +| Mercator Ikuü | SPP02GIP | | Standard ZCL | +| Mercator Ikuü | SPP04G | | Standard ZCL | +| Mercator Ikuü | SPPUSB02 | | Standard ZCL | +| Mercator Ikuü | SSW03G | | Standard ZCL | +| Mercator Ikuü | SSWF01G | | Standard ZCL | +| MiBoxer | FUT038Z | | Standard ZCL | +| Micro Matic Norge AS | ZB250 | | Standard ZCL | +| MindY | Leleka | Temperature, Humidity, Pressure, Illuminance | Standard ZCL | +| Modular | MWM002 | | Standard ZCL | +| Moes | BRT-100-TRV | Battery | Standard ZCL | +| Moes | ERS-10TZBVB-AA | Battery | Standard ZCL | +| Moes | MS-104BZ | | Standard ZCL | +| Moes | MS-104Z | | Standard ZCL | +| Moes | SFL02-Z-1 | | Standard ZCL | +| Moes | SFL02-Z-2 | | Standard ZCL | +| Moes | SFL02-Z-3 | | Standard ZCL | +| Moes | SFL02-Z-4 | | Standard ZCL | +| Moes | SR-ZS | | Standard ZCL | +| Moes | ZC-HM | Carbon Monoxide, Battery | Tuya | +| Moes | ZHT-PT01-M-MS | | Standard ZCL | +| Moes | ZK-EU-2U | | Standard ZCL | +| Moes | ZP-LZ-FR2U | | Standard ZCL | +| Moes | ZS-D1 | | Standard ZCL | +| Moes | ZS-D2 | | Standard ZCL | +| Moes | ZS-D3 | | Standard ZCL | +| Moes | ZS-EUB_1gang | | Standard ZCL | +| Moes | ZSS-HM-SSD01 | Smoke, Battery | Tuya | +| Moes | ZTS-EU_1gang | | Standard ZCL | +| Moes | ZTS-EU_2gang | | Standard ZCL | +| Moes | ZTS-EU_3gang | | Standard ZCL | +| Moes | ZTS-EU_4gang | | Standard ZCL | +| Moes | ZWV-YC | Battery | Standard ZCL | +| MultIR | MIR-IR100 | Motion, Battery, Illuminance | Standard ZCL | +| MultIR | MIR-MC100 | Contact, Battery | Standard ZCL | +| MultIR | MIR-SM200 | Smoke, Battery | Standard ZCL | +| MultIR | MIR-WA100 | Water, Battery | Standard ZCL | +| Mumubiz | TYZGTH1CH-D1RF | Temperature, Humidity | Standard ZCL | +| Mumubiz | TYZGTH4CH-D1RF | Temperature, Humidity | Standard ZCL | +| Müller Licht | 404000/404005/404012/404019 | | Standard ZCL | +| Müller Licht | 404001 | | Standard ZCL | +| Müller Licht | 404002 | | Standard ZCL | +| Müller Licht | 404006/404008/404004 | | Standard ZCL | +| Müller Licht | 404017 | | Standard ZCL | +| Müller Licht | 404021 | | Standard ZCL | +| Müller Licht | 404022/404049C | | Standard ZCL | +| Müller Licht | 404023 | | Standard ZCL | +| Müller Licht | 404024 | | Standard ZCL | +| Müller Licht | 404028/44435 | | Standard ZCL | +| Müller Licht | 404031 | | Standard ZCL | +| Müller Licht | 404036/45327/45317/45328 | | Standard ZCL | +| Müller Licht | 404037/404038 | | Standard ZCL | +| Müller Licht | 404051 | | Standard ZCL | +| Müller Licht | 404062 | | Standard ZCL | +| Müller Licht | 404065 | | Standard ZCL | +| Müller Licht | 404122/404123 | | Standard ZCL | +| Müller Licht | 404127 | | Standard ZCL | +| Müller Licht | 4041xx | | Standard ZCL | +| Müller Licht | 44435 | | Standard ZCL | +| Müller Licht | 45391 | | Standard ZCL | +| Müller Licht | 45723 | | Standard ZCL | +| Müller Licht | 45727 | | Standard ZCL | +| Müller Licht | 45728 | | Standard ZCL | +| Müller Licht | 45730 | | Standard ZCL | +| Müller Licht | MDGARD401 | | Standard ZCL | +| Müller Licht | MLI-404011/MLI-404049 | | Standard ZCL | +| NEO | NAS-PD07 | Motion, Humidity, Temperature | Standard ZCL | +| NEO | NAS-PS09B2 | Motion | Tuya | +| NEO | NAS-PS10B2 | Motion | Tuya | +| NEO | NAS-WV03B | Battery | Tuya | +| NEO | NAS-WV03B2 | Battery | Tuya | +| NET2GRID | N2G-SP | | Standard ZCL | +| Namron | 1402755 | | Standard ZCL | +| Namron | 1402767 | | Standard ZCL | +| Namron | 1402768 | | Standard ZCL | +| Namron | 1402769 | | Standard ZCL | +| Namron | 1402790 | Battery, Temperature | Standard ZCL | +| Namron | 3308431 | | Standard ZCL | +| Namron | 3802960 | | Standard ZCL | +| Namron | 3802961 | | Standard ZCL | +| Namron | 3802962 | | Standard ZCL | +| Namron | 3802963 | | Standard ZCL | +| Namron | 3802964 | | Standard ZCL | +| Namron | 3802965 | | Standard ZCL | +| Namron | 3802966 | | Standard ZCL | +| Namron | 3802967 | | Standard ZCL | +| Namron | 3802968 | | Standard ZCL | +| Namron | 4512700 | | Standard ZCL | +| Namron | 4512701 | Battery | Standard ZCL | +| Namron | 4512702 | Battery | Standard ZCL | +| Namron | 4512703 | Battery | Standard ZCL | +| Namron | 4512704 | | Standard ZCL | +| Namron | 4512705 | Battery | Standard ZCL | +| Namron | 4512706 | Battery | Standard ZCL | +| Namron | 4512707 | | Standard ZCL | +| Namron | 4512708 | | Standard ZCL | +| Namron | 4512719 | Battery | Standard ZCL | +| Namron | 4512721 | Battery | Standard ZCL | +| Namron | 4512726 | Battery | Standard ZCL | +| Namron | 4512728 | Battery | Standard ZCL | +| Namron | 4512729 | Battery | Standard ZCL | +| Namron | 4512733 | | Standard ZCL | +| Namron | 4512735 | | Standard ZCL | +| Namron | 4512739 | | Standard ZCL | +| Namron | 4512749 | Temperature | Standard ZCL | +| Namron | 4512749-N | Temperature | Standard ZCL | +| Namron | 4512750 | | Standard ZCL | +| Namron | 4512752/4512753 | | Standard ZCL | +| Namron | 4512758 | | Standard ZCL | +| Namron | 4512760 | | Standard ZCL | +| Namron | 4512761 | | Standard ZCL | +| Namron | 4512762 | Contact, Battery | Standard ZCL | +| Namron | 4512763 | Motion | Standard ZCL | +| Namron | 4512764 | Water, Battery | Standard ZCL | +| Namron | 4512766 | | Standard ZCL | +| Namron | 4512767 | | Standard ZCL | +| Namron | 4512768 | | Standard ZCL | +| Namron | 4512770 | Motion, Battery, Temperature, Humidity, Illuminance | Standard ZCL | +| Namron | 4512773 | Battery | Standard ZCL | +| Namron | 4512782 / 4512781 / 4566700 / 4566701 | | Standard ZCL | +| Namron | 4512785 | Device Temp | Standard ZCL | +| Namron | 4512788 | | Standard ZCL | +| Namron | 4512789 | Device Temp | Standard ZCL | +| Namron | 4512791 | | Standard ZCL | +| Namron | 4512792 | | Standard ZCL | +| Namron | 89665 | | Standard ZCL | +| Nanoleaf | NL08-0800 | | Standard ZCL | +| Netvox | Z809A | | Standard ZCL | +| Niko | 170-33505/170-34605 | | Standard ZCL | +| Niko | 552-720X1 | Battery | Standard ZCL | +| Niko | 552-720X2 | Battery | Standard ZCL | +| Niko | 552-720X4 | Battery | Standard ZCL | +| Niko | 552-721X1 | | Standard ZCL | +| Niko | 552-721X2 | | Standard ZCL | +| Niko | 552-72201 | | Standard ZCL | +| Niko | 552-80401 | Motion, Battery | Standard ZCL | +| Niko | 552-80698 | | Standard ZCL | +| Niko | 552-80699 | | Standard ZCL | +| Ninja Blocks | Z809AF | | Standard ZCL | +| Niviss | PS-ZIGBEE-SMART-CONTROLER-1CH-DIMMABLE | | Standard ZCL | +| NoDieby | ND-01 | Motion | Standard ZCL | +| NodOn | FPS-4-1-00 | Temperature, Humidity | Standard ZCL | +| NodOn | SDO-4-1-00 | Contact, Battery | Standard ZCL | +| NodOn | SIN-4-1-20 | | Standard ZCL | +| NodOn | SIN-4-1-20_PRO | | Standard ZCL | +| NodOn | SIN-4-1-21 | | Standard ZCL | +| NodOn | SIN-4-2-20 | | Standard ZCL | +| NodOn | SIN-4-2-20_PRO | | Standard ZCL | +| NodOn | SIN-4-FP-20 | | Standard ZCL | +| NodOn | SIN-4-FP-21 | | Standard ZCL | +| Nordtronic | 98423051 | | Standard ZCL | +| Nordtronic | 98424072 | | Standard ZCL | +| Nordtronic | 98425031 | | Standard ZCL | +| Nordtronic | 98425033 | | Standard ZCL | +| Nordtronic | 98425034 | | Standard ZCL | +| Nordtronic | 98425271 | | Standard ZCL | +| Nordtronic | 98426061 | Battery | Standard ZCL | +| Nous | A11Z | | Standard ZCL | +| Nous | D5Z | Device Temp | Standard ZCL | +| Nous | E12 | Carbon Monoxide | Tuya | +| Nous | E13 | Water, Battery | Tuya | +| Nous | E9 | Gas | Tuya | +| Nova Digital | FZB-1 | | Standard ZCL | +| Nova Digital | NFZB-03 | | Standard ZCL | +| Nova Digital | NFZB-2 | | Standard ZCL | +| Nova Digital | QZ-4x4-6 W/B | | Standard ZCL | +| Nova Digital | SA-4W | | Standard ZCL | +| Nova Digital | TO-6 W/B | | Standard ZCL | +| Nova Digital | TO-DM-W/B | | Standard ZCL | +| Nova Digital | TO-WK-1W/B | | Tuya | +| Nova Digital | TO-WK-2W/B | | Tuya | +| Nova Digital | ZVL-PRO | Battery | Tuya | +| Novato | ZIS-01P | Motion, Illuminance, Battery | Tuya | +| Novato | ZIS-03 | Motion, Illuminance | Tuya | +| Novato | ZPV-01 | Battery | Tuya | +| Novato | ZRM01 | | Standard ZCL | +| Novato | ZRM02 | | Standard ZCL | +| Nue / 3A | 3A12S-15 | | Standard ZCL | +| Nue / 3A | HGZB-01 | | Standard ZCL | +| Nue / 3A | HGZB-01A | | Standard ZCL | +| Nue / 3A | HGZB-02A | | Standard ZCL | +| Nue / 3A | HGZB-02S | | Standard ZCL | +| Nue / 3A | HGZB-042 | | Standard ZCL | +| Nue / 3A | HGZB-043 | | Standard ZCL | +| Nue / 3A | HGZB-045 | | Standard ZCL | +| Nue / 3A | HGZB-04D / HGZB-4D-UK | | Standard ZCL | +| Nue / 3A | HGZB-06A | | Standard ZCL | +| Nue / 3A | HGZB-13A | Contact | Standard ZCL | +| Nue / 3A | HGZB-14A | Water, Battery | Standard ZCL | +| Nue / 3A | HGZB-1S | | Standard ZCL | +| Nue / 3A | HGZB-20-UK | | Standard ZCL | +| Nue / 3A | HGZB-20A | | Standard ZCL | +| Nue / 3A | HGZB-41 | | Standard ZCL | +| Nue / 3A | HGZB-42 | | Standard ZCL | +| Nue / 3A | HGZB-42-UK / HGZB-41 / HGZB-41-UK | | Standard ZCL | +| Nue / 3A | HGZB-43 | | Standard ZCL | +| Nue / 3A | HGZB-44 | | Standard ZCL | +| Nue / 3A | HGZB-4S | | Standard ZCL | +| Nue / 3A | HGZB-DLC4-N12B | | Standard ZCL | +| Nue / 3A | LXN56-TS27LX1.2 | | Standard ZCL | +| Nue / 3A | LXN59-2S7LX1.0 | | Standard ZCL | +| Nue / 3A | LXZB-02A | | Standard ZCL | +| Nue / 3A | MG-AUWS01 | | Standard ZCL | +| Nue / 3A | NUE-AUWZO2 | | Standard ZCL | +| Nue / 3A | NUE-ZBFLB | | Standard ZCL | +| Nue / 3A | WL-SD001-9W | | Standard ZCL | +| Nue / 3A | XY12S-15 | | Standard ZCL | +| Nue / 3A | ZW-EC-01 | | Standard ZCL | +| Nyce | NCZ-3010 | Contact, Battery | Standard ZCL | +| Nyce | NCZ-3011-HA | Contact, Battery | Standard ZCL | +| Nyce | NCZ-3014-HA | Contact, Battery | Standard ZCL | +| Nyce | NCZ-3041-HA | Motion, Humidity, Temperature, Battery | Standard ZCL | +| Nyce | NCZ-3043-HA | Motion, Humidity, Temperature, Battery | Standard ZCL | +| Nyce | NCZ-3045-HA | Motion, Humidity, Temperature, Battery | Standard ZCL | +| ONOKOM | AUX-1-ZB-S | | Standard ZCL | +| ONOKOM | DK-1-ZB-S | | Standard ZCL | +| ONOKOM | GR-3-ZB-S | | Standard ZCL | +| ONOKOM | HR-1-ZB-S | | Standard ZCL | +| ONOKOM | HS-3-ZB-S | | Standard ZCL | +| ONOKOM | HT-1-ZB-S | | Standard ZCL | +| ONOKOM | MD-1-ZB-S | | Standard ZCL | +| ONOKOM | MD-3-ZB-S | | Standard ZCL | +| ONOKOM | ME-1-ZB-S | | Standard ZCL | +| ONOKOM | OK-AC-H-AUX-1-ZB-S-A | | Standard ZCL | +| ONOKOM | OK-AC-H-DK-1-ZB-S-A | | Standard ZCL | +| ONOKOM | OK-AC-H-GR-1-ZB-S-A | | Standard ZCL | +| ONOKOM | OK-AC-H-HR-1-ZB-S-A | | Standard ZCL | +| ONOKOM | OK-AC-H-HS-3-ZB-S-A | | Standard ZCL | +| ONOKOM | OK-AC-H-HT-1-ZB-S-A | | Standard ZCL | +| ONOKOM | OK-AC-H-MD-1-ZB-S-A | | Standard ZCL | +| ONOKOM | OK-AC-H-MD-3-ZB-S-A | | Standard ZCL | +| ONOKOM | OK-AC-H-ME-1-ZB-S-A | | Standard ZCL | +| ONOKOM | OK-AC-H-TCL-1-ZB-S-A | | Standard ZCL | +| ONOKOM | OK-AC-H-TCL-3-ZB-S-A | | Standard ZCL | +| ONOKOM | TCL-1-ZB-S | | Standard ZCL | +| ONOKOM | TCL-3-ZB-S | | Standard ZCL | +| ORVIBO | CM10ZW | | Standard ZCL | +| ORVIBO | DD10Z | | Standard ZCL | +| ORVIBO | DM10ZW | | Standard ZCL | +| ORVIBO | DS20Z07B | | Standard ZCL | +| ORVIBO | DSZ12060 | | Standard ZCL | +| ORVIBO | DTZ09039 | | Standard ZCL | +| ORVIBO | OR-ZB-S010-3C | | Standard ZCL | +| ORVIBO | R11W2Z | | Standard ZCL | +| ORVIBO | R20W2Z | | Standard ZCL | +| ORVIBO | R30W3Z | | Standard ZCL | +| ORVIBO | RL804CZB | | Standard ZCL | +| ORVIBO | RL804QZB | | Standard ZCL | +| ORVIBO | SM10ZW | Contact, Battery | Standard ZCL | +| ORVIBO | SM20 | Contact, Battery | Standard ZCL | +| ORVIBO | SN10ZW | Motion, Battery | Standard ZCL | +| ORVIBO | SW21 | Water | Standard ZCL | +| ORVIBO | SW30 | Water | Standard ZCL | +| ORVIBO | T18W3Z | | Standard ZCL | +| ORVIBO | T21W1Z | | Standard ZCL | +| ORVIBO | T21W2Z | | Standard ZCL | +| ORVIBO | T30W3Z | | Standard ZCL | +| ORVIBO | T40W1Z | | Standard ZCL | +| ORVIBO | T40W2Z | | Standard ZCL | +| ORVIBO | T40W3Z_v1 | | Standard ZCL | +| ORVIBO | T40W3Z_v2 | | Standard ZCL | +| ORVIBO | T40W4Z | | Standard ZCL | +| ORVIBO | T41W1Z | | Standard ZCL | +| ORVIBO | T41W2Z | | Standard ZCL | +| OSRAM | 4052899926110 | | Standard ZCL | +| OSRAM | 4052899926127 | | Standard ZCL | +| OSRAM | 4052899926158 | | Standard ZCL | +| OSRAM | 4052899930377 | | Standard ZCL | +| OSRAM | 4058075036147 | | Standard ZCL | +| OSRAM | 4058075036185 | | Standard ZCL | +| OSRAM | 4058075047853 | | Standard ZCL | +| OSRAM | 4058075148338 | | Standard ZCL | +| OSRAM | 4058075816459 | Battery | Standard ZCL | +| OSRAM | 4058075816718 | | Standard ZCL | +| OSRAM | 4058075816732 | | Standard ZCL | +| OSRAM | 4058075816794 | | Standard ZCL | +| OSRAM | 4062172044776_1 | | Standard ZCL | +| OSRAM | 4062172044776_2 | | Standard ZCL | +| OSRAM | 4062172044776_3 | | Standard ZCL | +| OSRAM | 4062172044776_4 | | Standard ZCL | +| OSRAM | 4099854461767/4099854461774 | | Standard ZCL | +| OSRAM | 595UGR22 | | Standard ZCL | +| OSRAM | 71150 | | Standard ZCL | +| OSRAM | 73699 | | Standard ZCL | +| OSRAM | 73741_LIGHTIFY | | Standard ZCL | +| OSRAM | 73889 | | Standard ZCL | +| OSRAM | AA68199 | | Standard ZCL | +| OSRAM | AA69697 | | Standard ZCL | +| OSRAM | AA70155 | | Standard ZCL | +| OSRAM | AB3257001NJ | | Standard ZCL | +| OSRAM | AB32840 | | Standard ZCL | +| OSRAM | AB35996 | | Standard ZCL | +| OSRAM | AB390020055 | | Standard ZCL | +| OSRAM | AB401130055 | | Standard ZCL | +| OSRAM | AC01353010G | Motion, Temperature, Battery | Standard ZCL | +| OSRAM | AC0251100NJ/AC0251600NJ/AC0251700NJ | Battery | Standard ZCL | +| OSRAM | AC0363900NJ | | Standard ZCL | +| OSRAM | AC03641 | | Standard ZCL | +| OSRAM | AC03642 | | Standard ZCL | +| OSRAM | AC03645 | | Standard ZCL | +| OSRAM | AC03647 | | Standard ZCL | +| OSRAM | AC03648 | | Standard ZCL | +| OSRAM | AC08559 | | Standard ZCL | +| OSRAM | AC08560-DIM | | Standard ZCL | +| OSRAM | AC08562 | | Standard ZCL | +| OSRAM | AC10691 | | Standard ZCL | +| OSRAM | AC10786-DIM | | Standard ZCL | +| OSRAM | AC10787 | | Standard ZCL | +| OSRAM | AC16381 | | Standard ZCL | +| OSRAM | ST8AU-CON | | Standard ZCL | +| OWON | CB432 | | Standard ZCL | +| OWON | DWS312 | Contact, Battery | Standard ZCL | +| OWON | PCT504 | Motion, Humidity | Standard ZCL | +| OWON | PCT512 | Motion, Humidity | Standard ZCL | +| OWON | PIR313-E | Motion, Battery, Temperature, Humidity, Illuminance | Standard ZCL | +| OWON | PIR313-P | Motion, Battery | Standard ZCL | +| OWON | PIR323-PTH | Motion, Temperature, Humidity | Standard ZCL | +| OWON | SLC603 | Battery | Standard ZCL | +| OWON | SLC631 | Contact | Standard ZCL | +| OWON | SPM915 | Contact, Battery | Standard ZCL | +| OWON | WSP402 | | Standard ZCL | +| OWON | WSP403 | | Standard ZCL | +| OWON | WSP404 | | Standard ZCL | +| Onesti Products AS | Nimly | Battery | Standard ZCL | +| Onesti Products AS | S4RX-110 | Device Temp | Standard ZCL | +| Onesti Products AS | easyCodeTouch_v1 | Battery | Standard ZCL | +| Orztech | \_TZE200_7a5ob7xq | | Standard ZCL | +| Orztech | \_TZE200_b0ihkhxh | | Standard ZCL | +| Orztech | \_TZE200_htj3hcpl | | Standard ZCL | +| Orztech | \_TZE200_pcg0rykt | | Standard ZCL | +| Orztech | \_TZE200_xo3vpoah | | Standard ZCL | +| Oujiabao | CR701-YZ | Carbon Monoxide, Gas | Standard ZCL | +| Oz Smart Things | DL41-03-10-R-ZB | | Standard ZCL | +| PEQ | 3300-P | Contact, Temperature, Battery | Standard ZCL | +| Paul Neuhaus | 100.001.96 | | Standard ZCL | +| Paul Neuhaus | 100.075.74 | | Standard ZCL | +| Paul Neuhaus | 100.110.51 | | Standard ZCL | +| Paul Neuhaus | 100.425.90 | | Standard ZCL | +| Paul Neuhaus | 100.462.31 | | Standard ZCL | +| Paul Neuhaus | 100.491.61 | | Standard ZCL | +| Paul Neuhaus | E0040006 | | Standard ZCL | +| Paul Neuhaus | NLG-CCT light | | Standard ZCL | +| Paul Neuhaus | NLG-RGB-TW light | | Standard ZCL | +| Paul Neuhaus | NLG-RGBW\_\_light | | Standard ZCL | +| Paul Neuhaus | NLG-RGBW_light | | Standard ZCL | +| Paul Neuhaus | NLG-TW light | | Standard ZCL | +| Paulmann | 150257 | | Standard ZCL | +| Paulmann | 291.52 | | Standard ZCL | +| Paulmann | 371000001 | | Standard ZCL | +| Paulmann | 371000002 | | Standard ZCL | +| Paulmann | 371050043 | | Standard ZCL | +| Paulmann | 371222402 | | Standard ZCL | +| Paulmann | 371232040 | | Standard ZCL | +| Paulmann | 4137 | | Standard ZCL | +| Paulmann | 500.43 | | Standard ZCL | +| Paulmann | 500.44 | | Standard ZCL | +| Paulmann | 500.45 | | Standard ZCL | +| Paulmann | 500.46 | | Standard ZCL | +| Paulmann | 500.47 | | Standard ZCL | +| Paulmann | 500.48 | | Standard ZCL | +| Paulmann | 500.67 | | Standard ZCL | +| Paulmann | 50043 | | Standard ZCL | +| Paulmann | 50044/50045 | | Standard ZCL | +| Paulmann | 50049/500.63 | | Standard ZCL | +| Paulmann | 50064 | | Standard ZCL | +| Paulmann | 501.22 | | Standard ZCL | +| Paulmann | 501.31 | | Standard ZCL | +| Paulmann | 501.34 | Battery | Standard ZCL | +| Paulmann | 501.37 | Battery | Standard ZCL | +| Paulmann | 501.39 | | Standard ZCL | +| Paulmann | 501.40 | Battery | Standard ZCL | +| Paulmann | 501.41 | Battery | Standard ZCL | +| Paulmann | 50394 | | Standard ZCL | +| Paulmann | 924.70 | | Standard ZCL | +| Paulmann | 929.60 | | Standard ZCL | +| Paulmann | 929.63 | | Standard ZCL | +| Paulmann | 929.66 | | Standard ZCL | +| Paulmann | 93999 | | Standard ZCL | +| Paulmann | 94191 | | Standard ZCL | +| Paulmann | 948.47/29165 | | Standard ZCL | +| Paulmann | 94842 | | Standard ZCL | +| Paulmann | 968.93 | | Standard ZCL | +| Paulmann | 984.42 | | Standard ZCL | +| Paulmann | CCT-I | | Standard ZCL | +| Perenio | PECLS01 | Water, Battery | Standard ZCL | +| Perenio | PECMS01 | Motion, Battery | Standard ZCL | +| Perenio | PECWS01 | Contact, Battery | Standard ZCL | +| Perenio | PEHPL0X | | Standard ZCL | +| Perenio | PEHWE20 | | Standard ZCL | +| Philio | PAT04-A | Water, Battery | Standard ZCL | +| Philips | 046677476816 | | Standard ZCL | +| Philips | 046677551780 | | Standard ZCL | +| Philips | 046677562229 | | Standard ZCL | +| Philips | 046677577490 | | Standard ZCL | +| Philips | 046677577520 | | Standard ZCL | +| Philips | 046677577957 | | Standard ZCL | +| Philips | 046677578138 | | Standard ZCL | +| Philips | 046677584658 | | Standard ZCL | +| Philips | 046677584719 | | Standard ZCL | +| Philips | 046677585235 | | Standard ZCL | +| Philips | 046677590161 | | Standard ZCL | +| Philips | 046677592530 | | Standard ZCL | +| Philips | 046677592622 | | Standard ZCL | +| Philips | 046677803087 | | Standard ZCL | +| Philips | 13190230 | | Standard ZCL | +| Philips | 1740193P0 | | Standard ZCL | +| Philips | 1740293P0 | | Standard ZCL | +| Philips | 1740393P0 | | Standard ZCL | +| Philips | 1741530P7 | | Standard ZCL | +| Philips | 1741730V7 | | Standard ZCL | +| Philips | 1741830P7 | | Standard ZCL | +| Philips | 1741930V7 | | Standard ZCL | +| Philips | 1742030P7 | | Standard ZCL | +| Philips | 1742330P7 | | Standard ZCL | +| Philips | 1742830P7 | | Standard ZCL | +| Philips | 1742930P7 | | Standard ZCL | +| Philips | 1743030P7 | | Standard ZCL | +| Philips | 1743130P7 | | Standard ZCL | +| Philips | 1743230P7 | | Standard ZCL | +| Philips | 1743430P7 | | Standard ZCL | +| Philips | 17435/30/P7 | | Standard ZCL | +| Philips | 17436/30/P7 | | Standard ZCL | +| Philips | 1743730P7 | | Standard ZCL | +| Philips | 1743830P7 | | Standard ZCL | +| Philips | 1743830V7 | | Standard ZCL | +| Philips | 1743930P7 | | Standard ZCL | +| Philips | 1744130P7 | | Standard ZCL | +| Philips | 1744230P7 | | Standard ZCL | +| Philips | 1745130P7 | | Standard ZCL | +| Philips | 1745430P7 | | Standard ZCL | +| Philips | 1745530P7 | | Standard ZCL | +| Philips | 1745630P7 | | Standard ZCL | +| Philips | 1745730V7 | | Standard ZCL | +| Philips | 1745930P7 | | Standard ZCL | +| Philips | 1745930V7 | | Standard ZCL | +| Philips | 1746130P7 | | Standard ZCL | +| Philips | 1746230V7 | | Standard ZCL | +| Philips | 1746330P7 | | Standard ZCL | +| Philips | 1746430P7 | | Standard ZCL | +| Philips | 1746447P7 | | Standard ZCL | +| Philips | 1746530P7 | | Standard ZCL | +| Philips | 1746547P7 | | Standard ZCL | +| Philips | 1746630P7 | | Standard ZCL | +| Philips | 1746630V7 | | Standard ZCL | +| Philips | 1746730V7 | | Standard ZCL | +| Philips | 3115331PH | | Standard ZCL | +| Philips | 31154 | | Standard ZCL | +| Philips | 3216131P5 | | Standard ZCL | +| Philips | 3216131P6 | | Standard ZCL | +| Philips | 3216231P5 | | Standard ZCL | +| Philips | 3216231P6 | | Standard ZCL | +| Philips | 3216331P5 | | Standard ZCL | +| Philips | 3216331P6 | | Standard ZCL | +| Philips | 3216431P5 | | Standard ZCL | +| Philips | 3216431P6 | | Standard ZCL | +| Philips | 3261030P6 | | Standard ZCL | +| Philips | 3261030P7 | | Standard ZCL | +| Philips | 3261031P6 | | Standard ZCL | +| Philips | 3261048P6 | | Standard ZCL | +| Philips | 3261330P6 | | Standard ZCL | +| Philips | 3261331P6 | | Standard ZCL | +| Philips | 3261331P7 | | Standard ZCL | +| Philips | 3261348P6 | | Standard ZCL | +| Philips | 3306431P7 | | Standard ZCL | +| Philips | 33850000 | | Standard ZCL | +| Philips | 3402831P7 | | Standard ZCL | +| Philips | 3417511P9 | | Standard ZCL | +| Philips | 3417711P6 | | Standard ZCL | +| Philips | 3417831P6 | | Standard ZCL | +| Philips | 3417931P6 | | Standard ZCL | +| Philips | 3418031P6 | | Standard ZCL | +| Philips | 3418131P6 | | Standard ZCL | +| Philips | 3418331P6 | | Standard ZCL | +| Philips | 3418411P6 | | Standard ZCL | +| Philips | 3418631P6 | | Standard ZCL | +| Philips | 3418931P6 | | Standard ZCL | +| Philips | 3435011P7 | | Standard ZCL | +| Philips | 3435731P7 | | Standard ZCL | +| Philips | 4023330P6 | | Standard ZCL | +| Philips | 4023330P7 | | Standard ZCL | +| Philips | 4023331P6 | | Standard ZCL | +| Philips | 4033930P6 | | Standard ZCL | +| Philips | 4033930P7 | | Standard ZCL | +| Philips | 4033931P6 | | Standard ZCL | +| Philips | 4034030P6 | | Standard ZCL | +| Philips | 4034031P6 | | Standard ZCL | +| Philips | 4034031P7 | | Standard ZCL | +| Philips | 4076130P6 | | Standard ZCL | +| Philips | 4076131P6 | | Standard ZCL | +| Philips | 4080148P7 | | Standard ZCL | +| Philips | 4080148P9 | | Standard ZCL | +| Philips | 4080148U9 | | Standard ZCL | +| Philips | 4080248P7 | | Standard ZCL | +| Philips | 4080248P9 | | Standard ZCL | +| Philips | 4080248U9 | | Standard ZCL | +| Philips | 4090130P7 | | Standard ZCL | +| Philips | 4090130P9 | | Standard ZCL | +| Philips | 4090230P9 | | Standard ZCL | +| Philips | 4090231P9 | | Standard ZCL | +| Philips | 4090330P9 | | Standard ZCL | +| Philips | 4090331P9 | | Standard ZCL | +| Philips | 4090431P9 | | Standard ZCL | +| Philips | 4090531P7 | | Standard ZCL | +| Philips | 4090531P9 | | Standard ZCL | +| Philips | 4090631P7 | | Standard ZCL | +| Philips | 4090631P9 | | Standard ZCL | +| Philips | 4090631U9 | | Standard ZCL | +| Philips | 4096730P6 | | Standard ZCL | +| Philips | 4096730U7 | | Standard ZCL | +| Philips | 4098430P7 | | Standard ZCL | +| Philips | 4100448U9 | | Standard ZCL | +| Philips | 433714 | | Standard ZCL | +| Philips | 442296118491 | | Standard ZCL | +| Philips | 4503748C6 | | Standard ZCL | +| Philips | 4503848C5 | | Standard ZCL | +| Philips | 4505748C5 | | Standard ZCL | +| Philips | 4505848C5 | | Standard ZCL | +| Philips | 4507748C5 | | Standard ZCL | +| Philips | 464800 | | Standard ZCL | +| Philips | 5041131P9 | | Standard ZCL | +| Philips | 5042131P9 | | Standard ZCL | +| Philips | 5042148P9 | | Standard ZCL | +| Philips | 5045131P7 | | Standard ZCL | +| Philips | 5045148P7 | | Standard ZCL | +| Philips | 5047130P6 | | Standard ZCL | +| Philips | 5047130P9 | | Standard ZCL | +| Philips | 5047131P8 | | Standard ZCL | +| Philips | 5047131P9 | | Standard ZCL | +| Philips | 5047230P6 | | Standard ZCL | +| Philips | 5047231P6 | | Standard ZCL | +| Philips | 5047330P6 | | Standard ZCL | +| Philips | 5047331P6 | | Standard ZCL | +| Philips | 5047430P6 | | Standard ZCL | +| Philips | 5055131P7 | | Standard ZCL | +| Philips | 5055148P7 | | Standard ZCL | +| Philips | 5060730P7 | | Standard ZCL | +| Philips | 5060731P7 | | Standard ZCL | +| Philips | 5060830P7 | | Standard ZCL | +| Philips | 5060831P7 | | Standard ZCL | +| Philips | 5060930P7 | | Standard ZCL | +| Philips | 5060931P7 | | Standard ZCL | +| Philips | 5061030P7 | | Standard ZCL | +| Philips | 5061031P7 | | Standard ZCL | +| Philips | 5062131P7 | | Standard ZCL | +| Philips | 5062148P7 | | Standard ZCL | +| Philips | 5062231P7 | | Standard ZCL | +| Philips | 5062248P7 | | Standard ZCL | +| Philips | 5062331P7 | | Standard ZCL | +| Philips | 5062348P7 | | Standard ZCL | +| Philips | 5062431P7 | | Standard ZCL | +| Philips | 5062448P7 | | Standard ZCL | +| Philips | 5063130P7 | | Standard ZCL | +| Philips | 5063131P7 | | Standard ZCL | +| Philips | 5063230P7 | | Standard ZCL | +| Philips | 5063231P7 | | Standard ZCL | +| Philips | 5063330P7 | | Standard ZCL | +| Philips | 5063331P7 | | Standard ZCL | +| Philips | 5063430P7 | | Standard ZCL | +| Philips | 5063431P7 | | Standard ZCL | +| Philips | 5110131H5 | | Standard ZCL | +| Philips | 5110731H5 | | Standard ZCL | +| Philips | 5111531H5 | | Standard ZCL | +| Philips | 5309030P9 | | Standard ZCL | +| Philips | 5309031P8 | | Standard ZCL | +| Philips | 5309230P6 | | Standard ZCL | +| Philips | 5309331P6 | | Standard ZCL | +| Philips | 548727 | | Standard ZCL | +| Philips | 5633030P6 | | Standard ZCL | +| Philips | 5633031P9 | | Standard ZCL | +| Philips | 578526 | | Standard ZCL | +| Philips | 579573 | | Standard ZCL | +| Philips | 5900131C5 | | Standard ZCL | +| Philips | 5995111U5 | | Standard ZCL | +| Philips | 5996311U5 | | Standard ZCL | +| Philips | 5996411U5 | | Standard ZCL | +| Philips | 5996511U5 | | Standard ZCL | +| Philips | 5996611U5 | | Standard ZCL | +| Philips | 6109231C5 | | Standard ZCL | +| Philips | 6109331C5 | | Standard ZCL | +| Philips | 7099860PH | | Standard ZCL | +| Philips | 7099930PH | | Standard ZCL | +| Philips | 7121131PU/7120031PH/7120131PH/7120231PU | | Standard ZCL | +| Philips | 7146060PH | | Standard ZCL | +| Philips | 7199960PH | | Standard ZCL | +| Philips | 7299355PH | | Standard ZCL | +| Philips | 7299760PH | | Standard ZCL | +| Philips | 7531609 | | Standard ZCL | +| Philips | 7602031K6 | | Standard ZCL | +| Philips | 7602031N6 | | Standard ZCL | +| Philips | 7602031P7 | | Standard ZCL | +| Philips | 800094 | | Standard ZCL | +| Philips | 801480 | | Standard ZCL | +| Philips | 8718696126523 | | Standard ZCL | +| Philips | 8718696153055 | | Standard ZCL | +| Philips | 8718696153062 | | Standard ZCL | +| Philips | 8718696166079 | | Standard ZCL | +| Philips | 8718696167991 | | Standard ZCL | +| Philips | 8718696170557 | | Standard ZCL | +| Philips | 8718696170625 | | Standard ZCL | +| Philips | 8718696170656 | | Standard ZCL | +| Philips | 8718696174548 | | Standard ZCL | +| Philips | 8718696175798 | | Standard ZCL | +| Philips | 8718696485880 | | Standard ZCL | +| Philips | 8718696548738 | | Standard ZCL | +| Philips | 8718696598283 | | Standard ZCL | +| Philips | 8718696695203 | | Standard ZCL | +| Philips | 8718699673147 | | Standard ZCL | +| Philips | 8718699688820 | | Standard ZCL | +| Philips | 8718699688882 | | Standard ZCL | +| Philips | 8718699689308 | | Standard ZCL | +| Philips | 8718699693985 | Battery | Standard ZCL | +| Philips | 8718699703424 | | Standard ZCL | +| Philips | 8719514279131 | | Standard ZCL | +| Philips | 8719514279155 | | Standard ZCL | +| Philips | 8719514279193 | | Standard ZCL | +| Philips | 8719514301443 | | Standard ZCL | +| Philips | 8719514301481 | | Standard ZCL | +| Philips | 8719514301528 | | Standard ZCL | +| Philips | 8719514301542 | | Standard ZCL | +| Philips | 8719514302235 | | Standard ZCL | +| Philips | 8719514328242 | | Standard ZCL | +| Philips | 8719514329843 | | Standard ZCL | +| Philips | 8719514338142 | | Standard ZCL | +| Philips | 8719514338487 | | Standard ZCL | +| Philips | 8719514338524 | | Standard ZCL | +| Philips | 871951433908 | | Standard ZCL | +| Philips | 8719514339125 | | Standard ZCL | +| Philips | 8719514339163 | | Standard ZCL | +| Philips | 8719514342361 | | Standard ZCL | +| Philips | 8719514343320 | | Standard ZCL | +| Philips | 8719514344723 | | Standard ZCL | +| Philips | 8719514382350 | | Standard ZCL | +| Philips | 8719514392830 | | Standard ZCL | +| Philips | 8719514419155 | | Standard ZCL | +| Philips | 8719514419278 | | Standard ZCL | +| Philips | 8719514434479 | | Standard ZCL | +| Philips | 8719514434530 | | Standard ZCL | +| Philips | 8719514434592 | | Standard ZCL | +| Philips | 8719514491106 | | Standard ZCL | +| Philips | 8719514491229 | | Standard ZCL | +| Philips | 8719514491342 | | Standard ZCL | +| Philips | 8720169264151 | | Standard ZCL | +| Philips | 8720169277243 | | Standard ZCL | +| Philips | 8720169363649 | | Standard ZCL | +| Philips | 8720169364066 | | Standard ZCL | +| Philips | 8720169392182 | | Standard ZCL | +| Philips | 8720169392540 | | Standard ZCL | +| Philips | 912401483126 | | Standard ZCL | +| Philips | 915005106701 | | Standard ZCL | +| Philips | 915005587401 | | Standard ZCL | +| Philips | 915005732902 | | Standard ZCL | +| Philips | 915005733701 | | Standard ZCL | +| Philips | 915005821901 | | Standard ZCL | +| Philips | 915005914501 | | Standard ZCL | +| Philips | 915005914601 | | Standard ZCL | +| Philips | 915005916901 | | Standard ZCL | +| Philips | 915005986901 | | Standard ZCL | +| Philips | 915005987001 | | Standard ZCL | +| Philips | 915005987101 | | Standard ZCL | +| Philips | 915005987301 | | Standard ZCL | +| Philips | 915005987401 | | Standard ZCL | +| Philips | 915005987501 | | Standard ZCL | +| Philips | 915005987601 | | Standard ZCL | +| Philips | 915005987701 | | Standard ZCL | +| Philips | 915005987801 | | Standard ZCL | +| Philips | 915005987901 | | Standard ZCL | +| Philips | 915005988001 | | Standard ZCL | +| Philips | 915005988101 | | Standard ZCL | +| Philips | 915005988201 | | Standard ZCL | +| Philips | 915005988401 | | Standard ZCL | +| Philips | 915005988501 | | Standard ZCL | +| Philips | 915005988502 | | Standard ZCL | +| Philips | 915005988602 | | Standard ZCL | +| Philips | 915005996401 | | Standard ZCL | +| Philips | 915005996601 | | Standard ZCL | +| Philips | 915005996701 | | Standard ZCL | +| Philips | 915005996901 | | Standard ZCL | +| Philips | 915005997001 | | Standard ZCL | +| Philips | 915005997301 | | Standard ZCL | +| Philips | 915005997501 | | Standard ZCL | +| Philips | 915005997601 | | Standard ZCL | +| Philips | 915005997701 | | Standard ZCL | +| Philips | 915005997801 | | Standard ZCL | +| Philips | 915005997901 | | Standard ZCL | +| Philips | 915005998001 | | Standard ZCL | +| Philips | 915005998101 | | Standard ZCL | +| Philips | 915005998201 | | Standard ZCL | +| Philips | 9290002269A | | Standard ZCL | +| Philips | 9290002579A | | Standard ZCL | +| Philips | 9290011370 | | Standard ZCL | +| Philips | 9290011998B | | Standard ZCL | +| Philips | 9290012573A | | Standard ZCL | +| Philips | 9290012607 | Motion, Temperature, Battery, Illuminance | Standard ZCL | +| Philips | 9290018187B | | Standard ZCL | +| Philips | 9290018189 | | Standard ZCL | +| Philips | 9290018194 | | Standard ZCL | +| Philips | 9290018195 | | Standard ZCL | +| Philips | 9290018215 | | Standard ZCL | +| Philips | 9290018216 | | Standard ZCL | +| Philips | 929001821618 | | Standard ZCL | +| Philips | 9290018216A | | Standard ZCL | +| Philips | 9290018217 | | Standard ZCL | +| Philips | 9290018609 | | Standard ZCL | +| Philips | 929001953101 | | Standard ZCL | +| Philips | 9290019532 | | Standard ZCL | +| Philips | 9290019533 | | Standard ZCL | +| Philips | 929001953301 | | Standard ZCL | +| Philips | 9290019534 | | Standard ZCL | +| Philips | 9290019536 | | Standard ZCL | +| Philips | 9290019758 | Motion, Temperature, Battery, Illuminance | Standard ZCL | +| Philips | 929002039801 | | Standard ZCL | +| Philips | 9290020399 | | Standard ZCL | +| Philips | 9290020400 | | Standard ZCL | +| Philips | 9290022166 | | Standard ZCL | +| Philips | 9290022167 | | Standard ZCL | +| Philips | 9290022169 | | Standard ZCL | +| Philips | 9290022266A | | Standard ZCL | +| Philips | 9290022267 | | Standard ZCL | +| Philips | 9290022267A | | Standard ZCL | +| Philips | 9290022268 | | Standard ZCL | +| Philips | 929002240401 | | Standard ZCL | +| Philips | 9290022407 | | Standard ZCL | +| Philips | 9290022408 | | Standard ZCL | +| Philips | 9290022411 | | Standard ZCL | +| Philips | 929002241201 | | Standard ZCL | +| Philips | 9290022415 | | Standard ZCL | +| Philips | 929002277501 | | Standard ZCL | +| Philips | 9290022890 | | Standard ZCL | +| Philips | 9290022891 | | Standard ZCL | +| Philips | 929002294101 | | Standard ZCL | +| Philips | 929002294102 | | Standard ZCL | +| Philips | 929002294203 | | Standard ZCL | +| Philips | 9290022943 | | Standard ZCL | +| Philips | 9290022944 | | Standard ZCL | +| Philips | 9290022975 | | Standard ZCL | +| Philips | 929002297503 | | Standard ZCL | +| Philips | 9290023349 | | Standard ZCL | +| Philips | 929002335001 | | Standard ZCL | +| Philips | 9290023351 | | Standard ZCL | +| Philips | 929002335105 | | Standard ZCL | +| Philips | 9290023351B | | Standard ZCL | +| Philips | 929002375901 | | Standard ZCL | +| Philips | 929002376001 | | Standard ZCL | +| Philips | 929002376101 | | Standard ZCL | +| Philips | 929002376201 | | Standard ZCL | +| Philips | 929002376301 | | Standard ZCL | +| Philips | 929002376401 | | Standard ZCL | +| Philips | 929002376501 | | Standard ZCL | +| Philips | 929002376701 | | Standard ZCL | +| Philips | 929002376703 | | Standard ZCL | +| Philips | 929002376801 | | Standard ZCL | +| Philips | 929002376803 | | Standard ZCL | +| Philips | 929002376901 | | Standard ZCL | +| Philips | 929002398602 | Battery | Standard ZCL | +| Philips | 929002401001 | | Standard ZCL | +| Philips | 929002401101 | | Standard ZCL | +| Philips | 929002401201 | | Standard ZCL | +| Philips | 929002422702 | | Standard ZCL | +| Philips | 929002422801 | | Standard ZCL | +| Philips | 929002422901 | | Standard ZCL | +| Philips | 9290024406 | | Standard ZCL | +| Philips | 9290024406A | | Standard ZCL | +| Philips | 9290024426 | | Standard ZCL | +| Philips | 92900244777 | | Standard ZCL | +| Philips | 929002459201 | | Standard ZCL | +| Philips | 9290024683 | | Standard ZCL | +| Philips | 9290024684 | | Standard ZCL | +| Philips | 9290024687 | | Standard ZCL | +| Philips | 9290024688 | | Standard ZCL | +| Philips | 9290024691 | | Standard ZCL | +| Philips | 9290024691A | | Standard ZCL | +| Philips | 929002469202 | | Standard ZCL | +| Philips | 929002469216 | | Standard ZCL | +| Philips | 9290024693 | | Standard ZCL | +| Philips | 929002471601 | | Standard ZCL | +| Philips | 9290024717 | | Standard ZCL | +| Philips | 929002471901 | | Standard ZCL | +| Philips | 929002477901 | | Standard ZCL | +| Philips | 9290024782 | | Standard ZCL | +| Philips | 9290024783 | | Standard ZCL | +| Philips | 929002478401 | | Standard ZCL | +| Philips | 9290024785 | | Standard ZCL | +| Philips | 9290024796 | | Standard ZCL | +| Philips | 9290024896 | | Standard ZCL | +| Philips | 929002966501 | | Standard ZCL | +| Philips | 9290029808 | | Standard ZCL | +| Philips | 929002980901 | | Standard ZCL | +| Philips | 929002994901 | | Standard ZCL | +| Philips | 929003017102 | Battery | Standard ZCL | +| Philips | 9290030211 | | Standard ZCL | +| Philips | 929003021301 | | Standard ZCL | +| Philips | 929003045201 | | Standard ZCL | +| Philips | 929003045301 | | Standard ZCL | +| Philips | 929003045401 | | Standard ZCL | +| Philips | 929003045501 | | Standard ZCL | +| Philips | 929003045901 | | Standard ZCL | +| Philips | 929003046201 | | Standard ZCL | +| Philips | 929003046601 | | Standard ZCL | +| Philips | 929003047001 | | Standard ZCL | +| Philips | 929003047101 | | Standard ZCL | +| Philips | 929003047401 | | Standard ZCL | +| Philips | 929003047501 | | Standard ZCL | +| Philips | 929003047601 | | Standard ZCL | +| Philips | 929003047801 | | Standard ZCL | +| Philips | 929003048201 | | Standard ZCL | +| Philips | 929003050601 | | Standard ZCL | +| Philips | 9290030509 | | Standard ZCL | +| Philips | 9290030514 | | Standard ZCL | +| Philips | 9290030516 | | Standard ZCL | +| Philips | 9290030517 | | Standard ZCL | +| Philips | 9290030518 | | Standard ZCL | +| Philips | 9290030519 | | Standard ZCL | +| Philips | 9290030520 | | Standard ZCL | +| Philips | 9290030521 | | Standard ZCL | +| Philips | 9290030523 | | Standard ZCL | +| Philips | 929003052601 | | Standard ZCL | +| Philips | 929003052701 | | Standard ZCL | +| Philips | 929003052901 | | Standard ZCL | +| Philips | 929003053001 | | Standard ZCL | +| Philips | 929003053201 | | Standard ZCL | +| Philips | 929003053401 | | Standard ZCL | +| Philips | 929003054001 | | Standard ZCL | +| Philips | 929003054101 | | Standard ZCL | +| Philips | 929003054201 | | Standard ZCL | +| Philips | 929003054301 | | Standard ZCL | +| Philips | 929003054401 | | Standard ZCL | +| Philips | 929003054501 | | Standard ZCL | +| Philips | 929003054601 | | Standard ZCL | +| Philips | 929003054701 | | Standard ZCL | +| Philips | 929003054801 | | Standard ZCL | +| Philips | 929003055201 | | Standard ZCL | +| Philips | 929003055401 | | Standard ZCL | +| Philips | 929003055501 | | Standard ZCL | +| Philips | 929003055701 | | Standard ZCL | +| Philips | 929003055801 | | Standard ZCL | +| Philips | 929003055901 | | Standard ZCL | +| Philips | 929003056001 | | Standard ZCL | +| Philips | 929003056701 | | Standard ZCL | +| Philips | 929003056801 | | Standard ZCL | +| Philips | 929003056901 | | Standard ZCL | +| Philips | 9290030674 | Motion, Temperature, Battery, Illuminance | Standard ZCL | +| Philips | 9290030675 | Motion, Temperature, Battery, Illuminance | Standard ZCL | +| Philips | 929003074701 | | Standard ZCL | +| Philips | 929003074801 | | Standard ZCL | +| Philips | 929003089301 | | Standard ZCL | +| Philips | 929003098601 | | Standard ZCL | +| Philips | 929003098901 | | Standard ZCL | +| Philips | 929003099001 | | Standard ZCL | +| Philips | 929003099101 | | Standard ZCL | +| Philips | 929003099301 | | Standard ZCL | +| Philips | 929003103601 | | Standard ZCL | +| Philips | 929003115701 | | Standard ZCL | +| Philips | 929003116001 | | Standard ZCL | +| Philips | 929003116101 | | Standard ZCL | +| Philips | 929003116401 | | Standard ZCL | +| Philips | 929003116601 | | Standard ZCL | +| Philips | 929003117201 | | Standard ZCL | +| Philips | 929003117401 | | Standard ZCL | +| Philips | 929003117801 | | Standard ZCL | +| Philips | 929003128401 | | Standard ZCL | +| Philips | 929003128501 | | Standard ZCL | +| Philips | 929003128601 | | Standard ZCL | +| Philips | 929003128701 | | Standard ZCL | +| Philips | 929003128801 | | Standard ZCL | +| Philips | 929003128901 | | Standard ZCL | +| Philips | 929003129001 | | Standard ZCL | +| Philips | 9290031345 | | Standard ZCL | +| Philips | 9290031346 | | Standard ZCL | +| Philips | 9290031347 | | Standard ZCL | +| Philips | 929003134801 | | Standard ZCL | +| Philips | 9290031451 | | Standard ZCL | +| Philips | 9290031452 | | Standard ZCL | +| Philips | 9290031508 | | Standard ZCL | +| Philips | 9290031509 | | Standard ZCL | +| Philips | 9290031512 | | Standard ZCL | +| Philips | 929003151501 | | Standard ZCL | +| Philips | 929003151601 | | Standard ZCL | +| Philips | 929003151701 | | Standard ZCL | +| Philips | 92900336667 | | Standard ZCL | +| Philips | 929003479901 | | Standard ZCL | +| Philips | 929003498601 | | Standard ZCL | +| Philips | 929003516101 | | Standard ZCL | +| Philips | 929003521401 | | Standard ZCL | +| Philips | 929003521501 | | Standard ZCL | +| Philips | 929003521601 | | Standard ZCL | +| Philips | 929003521701 | | Standard ZCL | +| Philips | 929003526301 | | Standard ZCL | +| Philips | 929003531502 | | Standard ZCL | +| Philips | 929003531702 | | Standard ZCL | +| Philips | 929003535301 | | Standard ZCL | +| Philips | 929003536001 | | Standard ZCL | +| Philips | 929003553001 | | Standard ZCL | +| Philips | 929003555701 | | Standard ZCL | +| Philips | 9290035639 | Contact, Battery | Standard ZCL | +| Philips | 9290035753 | | Standard ZCL | +| Philips | 929003575501 | | Standard ZCL | +| Philips | 929003575701 | | Standard ZCL | +| Philips | 9290035842 | | Standard ZCL | +| Philips | 929003596001 | | Standard ZCL | +| Philips | 929003596101 | | Standard ZCL | +| Philips | 929003597601 | | Standard ZCL | +| Philips | 929003597701 | | Standard ZCL | +| Philips | 929003597702 | | Standard ZCL | +| Philips | 929003597802 | | Standard ZCL | +| Philips | 929003597901 | | Standard ZCL | +| Philips | 929003621101 | | Standard ZCL | +| Philips | 929003621301 | | Standard ZCL | +| Philips | 929003666501 | | Standard ZCL | +| Philips | 929003666701 | | Standard ZCL | +| Philips | 929003666901 | | Standard ZCL | +| Philips | 929003667001 | | Standard ZCL | +| Philips | 9290036744 | | Standard ZCL | +| Philips | 9290036745 | | Standard ZCL | +| Philips | 929003674601 | | Standard ZCL | +| Philips | 929003711201 | | Standard ZCL | +| Philips | 9290037121 | | Standard ZCL | +| Philips | 929003736101 | | Standard ZCL | +| Philips | 929003736201 | | Standard ZCL | +| Philips | 929003736301 | | Standard ZCL | +| Philips | 929003736401 | | Standard ZCL | +| Philips | 929003736501 | | Standard ZCL | +| Philips | 929003736601 | | Standard ZCL | +| Philips | 929003736701 | | Standard ZCL | +| Philips | 929003777301 | | Standard ZCL | +| Philips | 929003802101 | | Standard ZCL | +| Philips | 9290038022 | | Standard ZCL | +| Philips | 929003808401 | | Standard ZCL | +| Philips | 929003808501 | | Standard ZCL | +| Philips | 929003808601 | | Standard ZCL | +| Philips | 929003808701 | | Standard ZCL | +| Philips | 929003808801 | | Standard ZCL | +| Philips | 929003808901 | | Standard ZCL | +| Philips | 929003809001 | | Standard ZCL | +| Philips | 929003809101 | | Standard ZCL | +| Philips | 929003809301 | | Standard ZCL | +| Philips | 929003809401 | | Standard ZCL | +| Philips | 929003809501 | | Standard ZCL | +| Philips | 929003809601 | | Standard ZCL | +| Philips | 929003809701 | | Standard ZCL | +| Philips | 929003810901 | | Standard ZCL | +| Philips | 929003812701 | | Standard ZCL | +| Philips | 929003812901 | | Standard ZCL | +| Philips | 929003816901 | | Standard ZCL | +| Philips | 929003817002 | | Standard ZCL | +| Philips | 929003822701 | | Standard ZCL | +| Philips | 929003822901 | | Standard ZCL | +| Philips | 929003823501 | | Standard ZCL | +| Philips | 929003853404 | | Standard ZCL | +| Philips | 9290038536H | | Standard ZCL | +| Philips | 9290038539 | | Standard ZCL | +| Philips | 929003853901 | | Standard ZCL | +| Philips | 9290038548H | | Standard ZCL | +| Philips | 9290038549H | | Standard ZCL | +| Philips | 9290038550H | | Standard ZCL | +| Philips | 9290038551 | | Standard ZCL | +| Philips | 9290038552 | | Standard ZCL | +| Philips | 9290038561 | | Standard ZCL | +| Philips | 929003856201 | | Standard ZCL | +| Philips | 929003856303 | | Standard ZCL | +| Philips | 929003856401 | | Standard ZCL | +| Philips | 929003856501 | | Standard ZCL | +| Philips | 929004276602 | | Standard ZCL | +| Philips | 929004276902 | | Standard ZCL | +| Philips | 929004284702 | | Standard ZCL | +| Philips | 929004291601 | | Standard ZCL | +| Philips | 929004294901 | | Standard ZCL | +| Philips | 929004294903 | | Standard ZCL | +| Philips | 9290042970A | | Standard ZCL | +| Philips | 929004297401 | | Standard ZCL | +| Philips | 929004308301 | | Standard ZCL | +| Philips | 929004308401 | | Standard ZCL | +| Philips | 929004321001 | | Standard ZCL | +| Philips | 929004581801 | | Standard ZCL | +| Philips | 929004581901 | | Standard ZCL | +| Philips | 929004582001 | | Standard ZCL | +| Philips | 929004608001 | | Standard ZCL | +| Philips | 929004610402 | | Standard ZCL | +| Philips | 929004611002 | | Standard ZCL | +| Philips | 929004611201 | | Standard ZCL | +| Philips | 929004611301 | | Standard ZCL | +| Philips | LP_CF_7904008_EU | | Standard ZCL | +| Philips | LWG004 | | Standard ZCL | +| Philips | RDM005 | Battery | Standard ZCL | +| Phoscon | Hive | Battery | Standard ZCL | +| Plugwise | 160-01 | | Standard ZCL | +| Powernity / Xanlite | PO-BOCO-ELEC | Humidity | Tuya | +| Profalux | MAI-ZTP20F | Battery | Standard ZCL | +| Prolight | 5412748727364 | | Standard ZCL | +| Prolight | 5412748727371 | | Standard ZCL | +| Prolight | 5412748727388 | Battery | Standard ZCL | +| Prolight | 5412748727395 | | Standard ZCL | +| Prolight | 5412748727401 | | Standard ZCL | +| Prolight | 5412748727432 | | Standard ZCL | +| Pulsar LLC | LPC-V1 | | Standard ZCL | +| PushOk Hardware | POK001 | Battery | Standard ZCL | +| PushOk Hardware | POK003 | Contact, Temperature, Battery | Standard ZCL | +| PushOk Hardware | POK006 | Battery | Standard ZCL | +| PushOk Hardware | POK008 | Battery, Temperature | Standard ZCL | +| PushOk Hardware | POK010 | Contact, Temperature, Humidity, Battery | Standard ZCL | +| PushOk Hardware | POK019 | Contact, Battery | Standard ZCL | +| PushOk Hardware | POK020 | Battery | Standard ZCL | +| QA | QADZ1 | | Standard ZCL | +| QA | QADZ2 | | Standard ZCL | +| QA | QADZ4DIN | | Standard ZCL | +| QA | QAFZ200 | | Standard ZCL | +| QA | QARZ1DC | | Standard ZCL | +| QA | QARZ2LR | | Standard ZCL | +| QA | QARZ3LR | | Standard ZCL | +| QA | QARZ4LR | | Standard ZCL | +| QA | QARZDC1LR | | Standard ZCL | +| QA | QAT42Z1 | | Standard ZCL | +| QA | QAT42Z1B | | Standard ZCL | +| QA | QAT42Z1H | | Standard ZCL | +| QA | QAT42Z2 | | Standard ZCL | +| QA | QAT42Z2B | | Standard ZCL | +| QA | QAT42Z2H | | Standard ZCL | +| QA | QAT42Z3 | | Standard ZCL | +| QA | QAT42Z3B | | Standard ZCL | +| QA | QAT42Z3H | | Standard ZCL | +| QA | QAT44Z4H | | Standard ZCL | +| QA | QAT44Z6 | | Standard ZCL | +| QA | QAT44Z6H | | Standard ZCL | +| Quirky | POFLW-WH02 | Water | Standard ZCL | +| Quotra | B07CVL9SZF | | Standard ZCL | +| Quotra | B07JHL6DRV | | Standard ZCL | +| RGB Genie | ZB-1026 | | Standard ZCL | +| RGB Genie | ZB-3008 | | Standard ZCL | +| RGB Genie | ZB-3009 | | Standard ZCL | +| RGB Genie | ZB-5001 | Battery | Standard ZCL | +| RGB Genie | ZB-5004 | Battery | Standard ZCL | +| RGB Genie | ZB-5028 | Battery | Standard ZCL | +| RGB Genie | ZB-5121 | Battery | Standard ZCL | +| RGB Genie | ZB-5122 | Battery | Standard ZCL | +| ROBB | ROB_200-001-0 | Contact, Battery | Standard ZCL | +| ROBB | ROB_200-003-0 | | Standard ZCL | +| ROBB | ROB_200-003-1 | | Standard ZCL | +| ROBB | ROB_200-004-0 | | Standard ZCL | +| ROBB | ROB_200-004-1 | | Standard ZCL | +| ROBB | ROB_200-006-0 | | Standard ZCL | +| ROBB | ROB_200-007-0 | Battery | Standard ZCL | +| ROBB | ROB_200-008-0 | Battery | Standard ZCL | +| ROBB | ROB_200-009-0 | Battery | Standard ZCL | +| ROBB | ROB_200-011-0 | | Standard ZCL | +| ROBB | ROB_200-011-1 | | Standard ZCL | +| ROBB | ROB_200-014-0 | | Standard ZCL | +| ROBB | ROB_200-016-0 | Battery | Standard ZCL | +| ROBB | ROB_200-017-0 | Temperature | Standard ZCL | +| ROBB | ROB_200-017-1 | Temperature | Standard ZCL | +| ROBB | ROB_200-018-0 | Battery | Standard ZCL | +| ROBB | ROB_200-024-0 | Battery | Standard ZCL | +| ROBB | ROB_200-025-0 | Battery | Standard ZCL | +| ROBB | ROB_200-026-0 | | Standard ZCL | +| ROBB | ROB_200-030-0 | | Standard ZCL | +| ROBB | ROB_200-030-1 | | Standard ZCL | +| ROBB | ROB_200-035-0 | | Standard ZCL | +| ROBB | ROB_200-050-0 | | Standard ZCL | +| ROBB | ROB_200-060-0 | | Standard ZCL | +| ROBB | ROB_200-061-0 | | Standard ZCL | +| ROBB | ROB_200-063-0 | | Standard ZCL | +| ROBB | ROB_200-070-0 | Motion, Battery, Temperature, Humidity, Illuminance | Standard ZCL | +| ROBB | ROB_200-081-0 | Battery | Standard ZCL | +| ROBB | ROB_200-084-0 | Battery | Standard ZCL | +| ROBB smarrt | ROB_200-026-1 | | Standard ZCL | +| ROOME | HSC1-WD-0 | Contact | Standard ZCL | +| RTX | ZMS4 | Motion | Standard ZCL | +| RTX | ZVG1 | Battery | Standard ZCL | +| Rademacher | 35104001 | | Standard ZCL | +| Rademacher | 35144001 | | Standard ZCL | +| Rademacher | RDM-35274001 | | Standard ZCL | +| Radium | LMZA4376 | | Standard ZCL | +| Repenic Ltd. | RD-250ZG | | Standard ZCL | +| SIMON | SM0501 | | Standard ZCL | +| SIMON | SM0502 | | Standard ZCL | +| SLC | S32052 | | Standard ZCL | +| SLV | 1001248 | | Standard ZCL | +| SLV | 1001923 | | Standard ZCL | +| SLV | 1005314 | | Standard ZCL | +| SLV | 1005318 | | Standard ZCL | +| SMLIGHT | SLZB-06M | | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/14 | Motion | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/16 | | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/18 | | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/21A | Contact | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/21B | Contact | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/21C | Contact | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/22 | Motion | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/22A | Motion | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/22B | Motion | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/23 | | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/24 | Smoke | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/24A | Smoke | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/25 | | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/26 | | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/28 | | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/33 | Motion | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/34 | | Standard ZCL | +| SMaBiT (Bitron Video) | AV2010/37 | Water | Standard ZCL | +| SOHAN Electric | RDCBC/Z | | Standard ZCL | +| SONOFF | BASIC-ZB1GSP | | Standard ZCL | +| SONOFF | BASICZBR3 | | Standard ZCL | +| SONOFF | MG1_5RZ | Motion | Standard ZCL | +| SONOFF | MINI-ZB1GS | | Standard ZCL | +| SONOFF | MINI-ZB1GSP | | Standard ZCL | +| SONOFF | MINI-ZB2GS | | Standard ZCL | +| SONOFF | MINI-ZB2GS-L | | Standard ZCL | +| SONOFF | MINI-ZBDIM | | Standard ZCL | +| SONOFF | S26R2ZB | | Standard ZCL | +| SONOFF | S31ZB | | Standard ZCL | +| SONOFF | S40ZBTPB | | Standard ZCL | +| SONOFF | S60ZBTPF | | Standard ZCL | +| SONOFF | S60ZBTPG | | Standard ZCL | +| SONOFF | S61SZBTPB | | Standard ZCL | +| SONOFF | SA-028/SA-029 | | Standard ZCL | +| SONOFF | SNZB-01 | Battery | Standard ZCL | +| SONOFF | SNZB-01P | Battery | Standard ZCL | +| SONOFF | SNZB-03 | Motion, Battery | Standard ZCL | +| SONOFF | SNZB-03P | Motion, Battery | Standard ZCL | +| SONOFF | SNZB-03PR2 | Motion, Illuminance, Battery | Standard ZCL | +| SONOFF | SNZB-04 | Contact, Battery | Standard ZCL | +| SONOFF | SNZB-04P | Contact, Battery | Standard ZCL | +| SONOFF | SNZB-04PR2 | Contact, Battery | Standard ZCL | +| SONOFF | SNZB-05P | Water, Battery | Standard ZCL | +| SONOFF | SNZB-06P | Motion | Standard ZCL | +| SONOFF | SNZB-06P24 | Motion, Illuminance | Standard ZCL | +| SONOFF | SWV | Battery | Standard ZCL | +| SONOFF | SWV-ZF2 | Battery | Standard ZCL | +| SONOFF | SWV-ZFE | Battery | Standard ZCL | +| SONOFF | SWV-ZNE | Battery | Standard ZCL | +| SONOFF | Z111PL0H-1JX | | Standard ZCL | +| SONOFF | ZBM5-1C-120 | | Standard ZCL | +| SONOFF | ZBM5-2C-120 | | Standard ZCL | +| SONOFF | ZBM5-3C-120 | | Standard ZCL | +| SONOFF | ZBMINI | | Standard ZCL | +| SONOFF | ZBMINI-L | | Standard ZCL | +| SONOFF | ZBMINIL2 | | Standard ZCL | +| SONOFF | ZBMINIR2 | | Standard ZCL | +| SONOFF | ZBMicro | | Standard ZCL | +| SUTON | STB3L-125-ZJ | Temperature | Tuya | +| Salus Controls | OS600 | Contact | Standard ZCL | +| Salus Controls | SP600 | | Standard ZCL | +| Salus Controls | SPE600 | | Standard ZCL | +| Salus Controls | SR600 | | Standard ZCL | +| Salus Controls | SW600 | Contact | Standard ZCL | +| Salus Controls | SX885ZB | | Standard ZCL | +| Salus Controls | WLS600 | Water | Standard ZCL | +| Samotech | SM308 | | Standard ZCL | +| Samotech | SM308-2CH | | Standard ZCL | +| Samotech | SM308-S | | Standard ZCL | +| Samotech | SM309 | | Standard ZCL | +| Samotech | SM309-S | | Standard ZCL | +| Samotech | SM309-S-2CH | | Standard ZCL | +| Samotech | SM315 | | Standard ZCL | +| Samotech | SM323_v1 | | Standard ZCL | +| Samotech | SM323_v2 | | Standard ZCL | +| Samotech | SM324 | | Standard ZCL | +| Samotech | SM325-ZG | | Standard ZCL | +| Saswell | SEA801-Zigbee/SEA802-Zigbee | | Standard ZCL | +| Savolar | SAV-DL6IN-24V-12W | | Standard ZCL | +| Sber | SBDV-00029 | Motion, Battery | Standard ZCL | +| Sber | SBDV-00030 | Contact, Battery | Standard ZCL | +| Sber | SBDV-00154 | Water, Battery | Standard ZCL | +| Sber | SBDV-00196 | | Standard ZCL | +| Sber | SBDV-00197 | | Standard ZCL | +| Sber | SBDV-00199 | | Standard ZCL | +| Sber | SBDV-00200 | | Standard ZCL | +| Sber | SBDV-00202 | Device Temp | Standard ZCL | +| Scan Products | 12501 | | Standard ZCL | +| Scan Products | 12502 | | Standard ZCL | +| Schlage | BE468 | Battery | Standard ZCL | +| Schneider Electric | 3025CSGZ | | Standard ZCL | +| Schneider Electric | 41E10PBSWMZ-VW | | Standard ZCL | +| Schneider Electric | 41E2PBSWMZ/356PB2MBTZ | | Standard ZCL | +| Schneider Electric | 41EPBDWCLMZ/354PBDMBTZ | | Standard ZCL | +| Schneider Electric | 545D6102 | | Standard ZCL | +| Schneider Electric | 545D6115 | | Standard ZCL | +| Schneider Electric | 545D6514 | | Standard ZCL | +| Schneider Electric | 550D6001 | Battery | Standard ZCL | +| Schneider Electric | CCT5010-0001 | | Standard ZCL | +| Schneider Electric | CCT5010-0003 | | Standard ZCL | +| Schneider Electric | CCT5011-0001/CCT5011-0002/MEG5011-0001 | | Standard ZCL | +| Schneider Electric | CCT591011_AS | Contact | Standard ZCL | +| Schneider Electric | CCT592011 | Water | Standard ZCL | +| Schneider Electric | CCT595011 | Motion, Battery, Illuminance | Standard ZCL | +| Schneider Electric | CCT711119 | | Standard ZCL | +| Schneider Electric | CCTFR6000 | | Standard ZCL | +| Schneider Electric | CCTFR6730 | | Standard ZCL | +| Schneider Electric | E8331DST300ZB | | Standard ZCL | +| Schneider Electric | E8331SRY800ZB | | Standard ZCL | +| Schneider Electric | E8331SRY800ZB_NEW | | Standard ZCL | +| Schneider Electric | E8332DST350ZB | | Standard ZCL | +| Schneider Electric | E8332SRY800ZB | | Standard ZCL | +| Schneider Electric | E8332SRY800ZB_NEW | | Standard ZCL | +| Schneider Electric | E8333SRY800ZB | | Standard ZCL | +| Schneider Electric | E8333SRY800ZB_NEW | | Standard ZCL | +| Schneider Electric | EER40030 | | Standard ZCL | +| Schneider Electric | EER42000 | | Standard ZCL | +| Schneider Electric | EKO09716 | | Standard ZCL | +| Schneider Electric | EKO09738 | | Standard ZCL | +| Schneider Electric | MEG5116-0300/MEG5171-0000 | | Standard ZCL | +| Schneider Electric | MEG5116-0300_MEG5151-0000 | | Standard ZCL | +| Schneider Electric | MEG5116-0300_MEG5162-0000 | | Standard ZCL | +| Schneider Electric | MEG5126-0300 | | Standard ZCL | +| Schneider Electric | MEG5126-0300/MEG5171-0000 | | Standard ZCL | +| Schneider Electric | MEG5126-0300/MEG5172-0000 | | Standard ZCL | +| Schneider Electric | MEG5126-0300_MEG5152-0000 | | Standard ZCL | +| Schneider Electric | MEG5161-0000 | | Standard ZCL | +| Schneider Electric | MUR36014 | | Standard ZCL | +| Schneider Electric | NH3516A | | Standard ZCL | +| Schneider Electric | NH3526 | Motion, Illuminance | Standard ZCL | +| Schneider Electric | NH3527A | Motion, Illuminance | Standard ZCL | +| Schneider Electric | NHMOTION/UNIDIM/1 | Motion, Illuminance | Standard ZCL | +| Schneider Electric | S520530W | | Standard ZCL | +| Schneider Electric | S520619 | Motion, Temperature | Standard ZCL | +| Schneider Electric | U201DST600ZB | | Standard ZCL | +| Schneider Electric | U201SRY2KWZB | | Standard ZCL | +| Schneider Electric | U202DST600ZB | | Standard ZCL | +| Schneider Electric | U202SRY2KWZB | | Standard ZCL | +| Schneider Electric | W564100 | Motion, Illuminance, Temperature | Standard ZCL | +| Schneider Electric | W599001 | Smoke, Battery, Temperature | Standard ZCL | +| Schneider Electric | WDE002334 | | Standard ZCL | +| Schneider Electric | WDE002386 | | Standard ZCL | +| Schneider Electric | WDE002906/MEG5001-0300 | Battery | Standard ZCL | +| Schneider Electric | WDE002960 | | Standard ZCL | +| Schwaiger | HAL300 | | Standard ZCL | +| Schwaiger | HAL400 | | Standard ZCL | +| Schwaiger | HAL500 | | Standard ZCL | +| Schwaiger | HAL550 | | Standard ZCL | +| Schwaiger | HAL600 | | Standard ZCL | +| Schwaiger | HAL800 | | Standard ZCL | +| Schwaiger | ZHS-15 | | Standard ZCL | +| Scimagic | 1-ZB-WSD | Temperature | Tuya | +| Securifi | PP-WHT-US | | Standard ZCL | +| Sengled | E11-G13 | | Standard ZCL | +| Sengled | E11-G23/E11-G33 | | Standard ZCL | +| Sengled | E11-N13/E11-N13A/E11-N14/E11-N14A | | Standard ZCL | +| Sengled | E11-N1EA | | Standard ZCL | +| Sengled | E11-N1G | | Standard ZCL | +| Sengled | E11-U21U31 | | Standard ZCL | +| Sengled | E11-U2E | | Standard ZCL | +| Sengled | E11-U3E | | Standard ZCL | +| Sengled | E12-N14 | | Standard ZCL | +| Sengled | E12-N1E | | Standard ZCL | +| Sengled | E13-A21 | | Standard ZCL | +| Sengled | E13-N11 | Motion | Standard ZCL | +| Sengled | E1ACA4ABE38A | | Standard ZCL | +| Sengled | E1C-NB6 | | Standard ZCL | +| Sengled | E1C-NB7 | | Standard ZCL | +| Sengled | E1D-G73WNA | Contact, Battery | Standard ZCL | +| Sengled | E1F-N5E | | Standard ZCL | +| Sengled | E1F-N9G | | Standard ZCL | +| Sengled | E1G-G8E | | Standard ZCL | +| Sengled | E1M-G7H | Motion, Battery | Standard ZCL | +| Sengled | E21-N13A | | Standard ZCL | +| Sengled | E21-N14A | | Standard ZCL | +| Sengled | E21-N1EA | | Standard ZCL | +| Sengled | E22-N1E | | Standard ZCL | +| Sengled | E2D-G73 | Contact, Battery | Standard ZCL | +| Sengled | Z01-A19NAE26 | | Standard ZCL | +| Sengled | Z01-A60EAE27 | | Standard ZCL | +| Sengled | Z01-CIA19NAE26 | | Standard ZCL | +| Sercomm | AL-PIR02 | Motion, Battery | Standard ZCL | +| Sercomm | SE-RZ11 | | Standard ZCL | +| Sercomm | SZ-DWS04 | Contact, Temperature, Battery | Standard ZCL | +| Sercomm | SZ-DWS08 | Contact, Temperature, Battery | Standard ZCL | +| Sercomm | SZ-ESW01 | | Standard ZCL | +| Sercomm | SZ-ESW01-AU | | Standard ZCL | +| Sercomm | SZ-ESW02 | | Standard ZCL | +| Sercomm | SZ-ESW02N-CZ3 | | Standard ZCL | +| Sercomm | SZ-PIR04N | Motion, Temperature, Battery, Illuminance | Standard ZCL | +| Sercomm | SZ-WTD03 | Water | Standard ZCL | +| Sercomm | XHS2-SE | Contact, Temperature, Battery | Standard ZCL | +| Shada | 0190015 | | Standard ZCL | +| Shelly | S4DM-0010WW | | Standard ZCL | +| Shelly | S4DM-0A101WWL | | Standard ZCL | +| Shelly | S4EM-002CXCEU | | Standard ZCL | +| Shelly | S4PL-00116US | | Standard ZCL | +| Shelly | S4PL-00416EU | | Standard ZCL | +| Shelly | S4SN-0071A | Water, Battery | Standard ZCL | +| Shelly | S4SN-0U61X | Motion | Standard ZCL | +| Shelly | S4SW-001P8EU | | Standard ZCL | +| Shelly | S4SW-001X8EU | | Standard ZCL | +| Shelly | S4SW-002P16EU-COVER | | Standard ZCL | +| Shelly | S4SW-002P16EU-SWITCH | | Standard ZCL | +| Shelly | SBBT-102C | Battery | Standard ZCL | +| Shelly | SBBT-104CUS | Battery | Standard ZCL | +| Shelly | SBDW-103C | Contact, Battery | Standard ZCL | +| Shelly | SBMO-103Z | Motion, Battery | Standard ZCL | +| Shelly | SBRC-005B-B | Battery | Standard ZCL | +| Shenzhen Homa | HLC610-Z | | Standard ZCL | +| Shenzhen Homa | HLC614-ZLL | | Standard ZCL | +| Shenzhen Homa | HLC821-Z-SC | | Standard ZCL | +| Shenzhen Homa | HLC833-Z-SC | | Standard ZCL | +| Shenzhen Homa | HLD503-Z-CT | | Standard ZCL | +| Shenzhen Homa | HLD812-Z-SC | | Standard ZCL | +| Shenzhen Homa | HOMA1001_CT | | Standard ZCL | +| Shenzhen Homa | HOMA1001_RGB | | Standard ZCL | +| Shenzhen Homa | HOMA1001_RGBW | | Standard ZCL | +| Shenzhen Homa | HOMA1001_SC | | Standard ZCL | +| ShinaSystem | BSM-300ZB | Battery | Standard ZCL | +| ShinaSystem | DIO-300Z | | Standard ZCL | +| ShinaSystem | DLM-300Z | Battery | Standard ZCL | +| ShinaSystem | DSM-300ZB | Contact, Battery | Standard ZCL | +| ShinaSystem | FAM-300Z | Smoke, Battery | Standard ZCL | +| ShinaSystem | ISM300Z3 | | Standard ZCL | +| ShinaSystem | MSM-300ZB | Battery | Standard ZCL | +| ShinaSystem | OSM-300ZB | Motion, Battery | Standard ZCL | +| ShinaSystem | SBM300Z1 | | Standard ZCL | +| ShinaSystem | SBM300Z2 | | Standard ZCL | +| ShinaSystem | SBM300Z3 | | Standard ZCL | +| ShinaSystem | SBM300Z4 | | Standard ZCL | +| ShinaSystem | SBM300Z5 | | Standard ZCL | +| ShinaSystem | SBM300Z6 | | Standard ZCL | +| ShinaSystem | SBM300ZB1 | Battery | Standard ZCL | +| ShinaSystem | SBM300ZB2 | Battery | Standard ZCL | +| ShinaSystem | SBM300ZB3 | Battery | Standard ZCL | +| ShinaSystem | SBM300ZB4 | Battery | Standard ZCL | +| ShinaSystem | SBM300ZC1 | Battery | Standard ZCL | +| ShinaSystem | SBM300ZC2 | Battery | Standard ZCL | +| ShinaSystem | SBM300ZC3 | Battery | Standard ZCL | +| ShinaSystem | SBM300ZC4 | Battery | Standard ZCL | +| ShinaSystem | SQM300Z1 | | Standard ZCL | +| ShinaSystem | SQM300Z2 | | Standard ZCL | +| ShinaSystem | SQM300Z3 | | Standard ZCL | +| ShinaSystem | SQM300Z4 | | Standard ZCL | +| ShinaSystem | SQM300Z6 | | Standard ZCL | +| ShinaSystem | SQM300ZC4 | Battery | Standard ZCL | +| ShinaSystem | USM-300ZB | Motion, Battery, Temperature, Humidity, Illuminance | Standard ZCL | +| ShinaSystem | WCM-300Z | | Standard ZCL | +| Silicon Labs | RB-ElectricityDsp-061-3 | | Standard ZCL | +| Sinopé | DM2500ZB | | Standard ZCL | +| Sinopé | DM2550ZB | | Standard ZCL | +| Sinopé | RM3250ZB | | Standard ZCL | +| Sinopé | RM3500ZB | Water, Temperature | Standard ZCL | +| Sinopé | SP2600ZB | | Standard ZCL | +| Sinopé | SP2610ZB | | Standard ZCL | +| Sinopé | SW2500ZB | | Standard ZCL | +| Sinopé | WL4200 | Water, Temperature, Battery | Standard ZCL | +| Sinopé | WL4200S | Water, Temperature, Battery | Standard ZCL | +| Sinopé | WL4210 | Water, Temperature, Battery | Standard ZCL | +| Siterwell | GS361A-H04 | Battery | Standard ZCL | +| Skydance | WZ5_cct | | Standard ZCL | +| Skydance | WZ5_dim_1 | | Standard ZCL | +| Skydance | WZ5_rgb | | Standard ZCL | +| Skydance | WZ5_rgbcct | | Standard ZCL | +| Skydance | WZ5_rgbw | | Standard ZCL | +| Slacky-DIY | FreePad-08K-SlD | Battery | Standard ZCL | +| Slacky-DIY | FreePad-12K-SlD | Battery | Standard ZCL | +| Slacky-DIY | FreePad-20K-SlD | Battery | Standard ZCL | +| Slacky-DIY | RCS-ST16-z-SlD | | Standard ZCL | +| Slacky-DIY | Smoke Sensor TLSR8258 | Smoke, Battery | Standard ZCL | +| Slacky-DIY | TS0001_power-SlD | | Standard ZCL | +| Slacky-DIY | TS0041-M001-SlD | Battery | Standard ZCL | +| Slacky-DIY | TS0042-z-SlD | Battery | Standard ZCL | +| Slacky-DIY | TS0043-z-SlD | Battery | Standard ZCL | +| Slacky-DIY | TS0044-z-SlD | Battery | Standard ZCL | +| Slacky-DIY | TS0046-z-SlD | Battery | Standard ZCL | +| Slacky-DIY | TS011F_plug-SlD | | Standard ZCL | +| Slacky-DIY | TS0203-z-Sld | Contact, Battery | Standard ZCL | +| Slacky-DIY | TSM1-SlD | | Standard ZCL | +| Slacky-DIY | Watermeter_TLSR8258 | Water, Battery | Standard ZCL | +| Slacky-DIY | ZG-222ZA-z-SlD | Water, Battery | Standard ZCL | +| Smart Home Pty | HGZB-07A | | Standard ZCL | +| Smart Home Pty | HGZB-20-DE | | Standard ZCL | +| SmartThings | 3300-S | Contact, Temperature, Battery | Standard ZCL | +| SmartThings | 3305-S | Motion, Temperature, Battery | Standard ZCL | +| SmartThings | 3315-G | Water, Temperature, Battery | Standard ZCL | +| SmartThings | 3315-S | Water, Temperature, Battery | Standard ZCL | +| SmartThings | 3321-S | Motion, Temperature, Contact, Battery | Standard ZCL | +| SmartThings | 3325-S | Motion, Temperature, Battery | Standard ZCL | +| SmartThings | 7ZA-A806ST-Q1R | | Standard ZCL | +| SmartThings | F-ADT-WTR-1 | Water, Temperature, Battery | Standard ZCL | +| SmartThings | F-APP-UK-V2 | | Standard ZCL | +| SmartThings | F-MLT-US-2 | Motion, Temperature, Contact, Battery | Standard ZCL | +| SmartThings | GP-LBU019BBAWU | | Standard ZCL | +| SmartThings | GP-WOU019BBDWG | | Standard ZCL | +| SmartThings | IM6001-MPP01 | Motion, Temperature, Contact, Battery | Standard ZCL | +| SmartThings | IM6001-MTP01 | Motion, Temperature, Battery | Standard ZCL | +| SmartThings | IM6001-OTP05 | | Standard ZCL | +| SmartThings | IM6001-WLP01 | Water, Temperature, Battery | Standard ZCL | +| SmartThings | STS-IRM-250 | Motion, Temperature, Battery | Standard ZCL | +| SmartThings | STS-IRM-251 | Motion, Temperature, Battery | Standard ZCL | +| SmartThings | STS-OUT-US-2 | | Standard ZCL | +| SmartThings | STS-PRS-251 | Motion, Battery | Standard ZCL | +| SmartThings | STS-WTR-250 | Water, Battery, Temperature | Standard ZCL | +| SmartThings | STSS-IRM-001 | Motion | Standard ZCL | +| SmartThings | STSS-MULT-001 | Contact | Standard ZCL | +| SmartThings | STSS-PRES-001 | Motion, Battery | Standard ZCL | +| SmartThings | WTR-UK-V2 | Water, Temperature, Battery | Standard ZCL | +| Smartenit | 4040B | | Standard ZCL | +| SolarEdge | SEHAZB-DR-SWITCH-2 | | Standard ZCL | +| Somfy | 1811681 | Motion, Battery | Standard ZCL | +| Somfy | 1822647A | | Standard ZCL | +| Somfy | 1871154 | Battery | Standard ZCL | +| Somfy | 1871215B | | Standard ZCL | +| Somgoms | ZSTY-SM-11ZG-US-W | | Standard ZCL | +| Somgoms | ZSTY-SM-1DMZG-US-W | | Standard ZCL | +| Sowilo DS | L258 | | Standard ZCL | +| Spacetronik | ZB-DG02 | Gas | Tuya | +| Spacetronik | ZB-DG03 | Gas | Tuya | +| Spotmau | SP-PS1-02 | | Standard ZCL | +| Spotmau | SP-PS2-02 | | Standard ZCL | +| Spotmau | SP-PS3-02 | | Standard ZCL | +| Spotmau | SP-WS-02 | | Standard ZCL | +| Sprut.device | Bed.box | | Standard ZCL | +| Stello | STLO-23 | | Standard ZCL | +| Sunricher | 50208693 | Battery | Standard ZCL | +| Sunricher | 50208702 | | Standard ZCL | +| Sunricher | HK-SENSOR-4IN1-A | Motion, Battery, Temperature, Humidity, Illuminance | Standard ZCL | +| Sunricher | HK-SL-DIM-AU-R-A | | Standard ZCL | +| Sunricher | HK-SL-DIM-US-A | | Standard ZCL | +| Sunricher | HK-ZD-CCT-A | | Standard ZCL | +| Sunricher | SR-ZG2803-G4-5C | Battery | Standard ZCL | +| Sunricher | SR-ZG2819S-DIM | Battery | Standard ZCL | +| Sunricher | SR-ZG2835PAC-AU | | Standard ZCL | +| Sunricher | SR-ZG2835RAC-NK4 | | Standard ZCL | +| Sunricher | SR-ZG2835RAC-UK | | Standard ZCL | +| Sunricher | SR-ZG2836D5 | Battery | Standard ZCL | +| Sunricher | SR-ZG2836D5-G4 | Battery | Standard ZCL | +| Sunricher | SR-ZG2868EK7-CCT | Battery | Standard ZCL | +| Sunricher | SR-ZG2868EK7-DIM | Battery | Standard ZCL | +| Sunricher | SR-ZG2868K12-DIM | Battery | Standard ZCL | +| Sunricher | SR-ZG9001K12-DIM-Z4 | Battery | Standard ZCL | +| Sunricher | SR-ZG9001K12-DIM-Z5 | Battery | Standard ZCL | +| Sunricher | SR-ZG9001K2-DIM | Battery | Standard ZCL | +| Sunricher | SR-ZG9001K2-DIM2 | Battery | Standard ZCL | +| Sunricher | SR-ZG9001K8-DIM | Battery | Standard ZCL | +| Sunricher | SR-ZG9001T2-SW | | Standard ZCL | +| Sunricher | SR-ZG9001T4-DIM-EU | | Standard ZCL | +| Sunricher | SR-ZG9010A | Contact, Battery | Standard ZCL | +| Sunricher | SR-ZG9011A-DS | Contact, Battery | Standard ZCL | +| Sunricher | SR-ZG9023A-EU | | Standard ZCL | +| Sunricher | SR-ZG9030A-MW | Motion, Illuminance | Standard ZCL | +| Sunricher | SR-ZG9030F-PS | Motion, Illuminance | Standard ZCL | +| Sunricher | SR-ZG9032A-MW | Motion, Illuminance | Standard ZCL | +| Sunricher | SR-ZG9032A-PIR | Motion, Illuminance | Standard ZCL | +| Sunricher | SR-ZG9040A-S | | Standard ZCL | +| Sunricher | SR-ZG9040A/ZG9041A-D | | Standard ZCL | +| Sunricher | SR-ZG9041A-2R | | Standard ZCL | +| Sunricher | SR-ZG9041A-R | | Standard ZCL | +| Sunricher | SR-ZG9098A-Light | | Standard ZCL | +| Sunricher | SR-ZG9098A-Win | | Standard ZCL | +| Sunricher | SR-ZG9100A-S | | Standard ZCL | +| Sunricher | SR-ZG9101CS | | Standard ZCL | +| Sunricher | SR-ZG9101SAC-HP-CLN | | Standard ZCL | +| Sunricher | SR-ZG9101SAC-HP-SWITCH-2CH | | Standard ZCL | +| Sunricher | SR-ZG9101SAC-HP2 | | Standard ZCL | +| Sunricher | SRP-ZG9105-CC | | Standard ZCL | +| Sunricher | SRP-ZG9105-CV | | Standard ZCL | +| Sunricher | ZG192910-4 | | Standard ZCL | +| Sunricher | ZG2819S-CCT | Battery | Standard ZCL | +| Sunricher | ZG2819S-RGBW | Battery | Standard ZCL | +| Sunricher | ZG2835 | | Standard ZCL | +| Sunricher | ZG2835RAC | | Standard ZCL | +| Sunricher | ZG2855-RGB | Battery | Standard ZCL | +| Sunricher | ZG2858A | Battery | Standard ZCL | +| Sunricher | ZG9101SAC-HP | | Standard ZCL | +| Sunricher | ZG9101SAC-HP-Switch | | Standard ZCL | +| Sunricher | ZG9101SAC-HP-Switch-B | | Standard ZCL | +| Sunricher | ZGRC-KEY-017 | Battery | Standard ZCL | +| SuperLED | 70012 | | Standard ZCL | +| Svetomaniya | LDR-GU10-Mod | | Standard ZCL | +| Svetomaniya | QS-Zigbee-SEC01-Mod | | Standard ZCL | +| Svetomaniya | QS-Zigbee-SEC02-Mod | | Standard ZCL | +| Swann | SWO-MOS1PA | Motion | Standard ZCL | +| Swann | SWO-WDS1PA | Contact | Standard ZCL | +| Sylvania | 484719 | | Standard ZCL | +| Sylvania | 70552 | | Standard ZCL | +| Sylvania | 71831 | | Standard ZCL | +| Sylvania | 72567 | | Standard ZCL | +| Sylvania | 72569 | | Standard ZCL | +| Sylvania | 72922-A | | Standard ZCL | +| Sylvania | 73693 | | Standard ZCL | +| Sylvania | 73739 | | Standard ZCL | +| Sylvania | 73740 | | Standard ZCL | +| Sylvania | 73741 | | Standard ZCL | +| Sylvania | 73742 | | Standard ZCL | +| Sylvania | 73743 | Battery | Standard ZCL | +| Sylvania | 73773 | | Standard ZCL | +| Sylvania | 73807 | | Standard ZCL | +| Sylvania | 74282 | | Standard ZCL | +| Sylvania | 74283 | | Standard ZCL | +| Sylvania | 74388 | Contact, Battery, Temperature | Standard ZCL | +| Sylvania | 74453 | | Standard ZCL | +| Sylvania | 74580 | | Standard ZCL | +| Sylvania | 74696 | | Standard ZCL | +| Sylvania | 75541 | | Standard ZCL | +| Sylvania | 75564 | | Standard ZCL | +| Sylvania | LTFY004 | | Standard ZCL | +| TCI | 122576 | | Standard ZCL | +| TCI | 151570 | | Standard ZCL | +| TCI | 676-00301024955Z | | Standard ZCL | +| TCI | TCI - Mini ZLL I | | Standard ZCL | +| TCL | P2-WT | Water, Battery | Standard ZCL | +| TECH | VNTH-T2_v1 | Battery | Tuya | +| TECH | VNTH-T2_v2 | Battery | Tuya | +| TERNCY | CL001 | | Standard ZCL | +| TERNCY | DIM003 | | Standard ZCL | +| TERNCY | DL001 | | Standard ZCL | +| TERNCY | TERNCY-DC01 | Contact, Temperature, Battery | Standard ZCL | +| TERNCY | TERNCY-LS01 | | Standard ZCL | +| TERNCY | TERNCY-PP01 | Motion, Temperature, Illuminance | Standard ZCL | +| TERNCY | TERNCY-WS01 | | Standard ZCL | +| TERNCY | TERNCY-WS07-D3 | | Standard ZCL | +| TIS Control | BEE PIR 1 | Motion, Battery | Standard ZCL | +| TLW Global | K10-1220Z | | Standard ZCL | +| TLW Global | K10-1230Z | | Standard ZCL | +| TLW Global | K10-1250Z | | Standard ZCL | +| TNCE | RMDZB-1PNL63 | Temperature | Tuya | +| TOMZN | DDS238-1-Z1 | | Standard ZCL | +| TP-Link | CS100 | Contact, Battery | Standard ZCL | +| TP-Link | MS100 | Motion, Battery, Illuminance | Standard ZCL | +| Tapestry | THPZ1 | Motion, Temperature, Humidity | Standard ZCL | +| Task Lighting | T-TWAV-60W-PSR | | Standard ZCL | +| Technicolor | XHK1-TC | Motion, Battery, Contact, Temperature | Standard ZCL | +| The Light Group | S24013 | | Standard ZCL | +| The Light Group | S24019 | | Standard ZCL | +| The Light Group | S32053 | | Standard ZCL | +| The Light Group | S32055 | | Standard ZCL | +| The Light Group | S57003 | Battery | Standard ZCL | +| The Light Group | S57007 | Battery | Standard ZCL | +| Third Reality | 3RCB01057Z | | Standard ZCL | +| Third Reality | 3RDP01072Z | | Standard ZCL | +| Third Reality | 3RDS17BZ | Contact, Battery | Standard ZCL | +| Third Reality | 3RDTS01056Z | Contact, Battery | Standard ZCL | +| Third Reality | 3RMS16BZ | Motion, Battery | Standard ZCL | +| Third Reality | 3RPL01084Z | Motion, Illuminance | Standard ZCL | +| Third Reality | 3RPS01083Z | Motion, Battery | Standard ZCL | +| Third Reality | 3RSL011Z | | Standard ZCL | +| Third Reality | 3RSL012Z | | Standard ZCL | +| Third Reality | 3RSMR01067Z | Motion, Battery | Standard ZCL | +| Third Reality | 3RSNL02043Z | Motion, Illuminance | Standard ZCL | +| Third Reality | 3RSP019BZ | | Standard ZCL | +| Third Reality | 3RSP02028BZ | | Standard ZCL | +| Third Reality | 3RSP02064Z | | Standard ZCL | +| Third Reality | 3RSPE01044BZ | | Standard ZCL | +| Third Reality | 3RSS007Z | | Standard ZCL | +| Third Reality | 3RSS008Z | Battery | Standard ZCL | +| Third Reality | 3RSS009Z | Battery | Standard ZCL | +| Third Reality | 3RTHS0324Z | Battery, Temperature, Humidity | Standard ZCL | +| Third Reality | 3RVS01031Z | Vibration, Battery | Standard ZCL | +| Third Reality | 3RWK0148Z | Battery | Standard ZCL | +| Third Reality | 3RWS0218Z | Water, Battery | Standard ZCL | +| Third Reality | 3RWS18BZ | Water, Battery | Standard ZCL | +| Tongou | TO-Q-SYS-JZT | Temperature | Tuya | +| Tongou | TOQCB2-80 | Temperature | Tuya | +| Tongou | TOWSMR1 | Temperature | Tuya | +| Trust | ZCM-300 | | Standard ZCL | +| Trust | ZCTS-808 | Contact, Battery | Standard ZCL | +| Trust | ZLED-2709 | | Standard ZCL | +| Trust | ZLED-RGB9 | | Standard ZCL | +| Trust | ZLED-TUNE9 | | Standard ZCL | +| Trust | ZPIR-8000 | Motion, Battery | Standard ZCL | +| Trust | ZSDR-850 | Smoke, Battery | Standard ZCL | +| Trust | ZWLD-100 | Water, Battery | Standard ZCL | +| Trust | ZYCT-202 | | Standard ZCL | +| Tuya | 228WZH | Smoke, Temperature, Humidity | Tuya | +| Tuya | ATMS1601Z | | Standard ZCL | +| Tuya | BAB-1413_Pro | Battery | Tuya | +| Tuya | CK-BL702-AL-01 | | Standard ZCL | +| Tuya | CK-BL702-AL-01(7008_Z102LG01-1) | | Standard ZCL | +| Tuya | CTL-R1-TY-Zigbee | Motion, Illuminance | Tuya | +| Tuya | DCR-CO | Carbon Monoxide | Standard ZCL | +| Tuya | DCR-RQJ | Carbon Monoxide, Gas | Tuya | +| Tuya | DS-1450WN | | Standard ZCL | +| Tuya | E220-KR4N0Z0-HA | | Standard ZCL | +| Tuya | ERS-10TZBVK-AA | Battery | Standard ZCL | +| Tuya | F3-Pro | | Standard ZCL | +| Tuya | IH012-RT01 | Motion, Battery | Standard ZCL | +| Tuya | IH012-RT02 | Motion, Battery | Standard ZCL | +| Tuya | JKD-816COM-Z | Carbon Monoxide, Gas | Tuya | +| Tuya | LYAI-14 | Battery | Standard ZCL | +| Tuya | M8Pro | | Standard ZCL | +| Tuya | M9-zigbee-SL | Motion | Tuya | +| Tuya | M9-zigbee-SL-2 | Motion | Tuya | +| Tuya | M9Pro | | Standard ZCL | +| Tuya | MG-GPO04ZSLP | | Standard ZCL | +| Tuya | MG-ZG01W | | Standard ZCL | +| Tuya | MG-ZG02W | | Standard ZCL | +| Tuya | MG-ZG03W | | Standard ZCL | +| Tuya | MIR-HE200-TY | Motion, Illuminance | Tuya | +| Tuya | MTG075-ZB-RL | Motion, Illuminance | Tuya | +| Tuya | PA-44Z | Smoke, Battery | Tuya | +| Tuya | QS-Zigbee-SEC01-DC | | Standard ZCL | +| Tuya | QS-Zigbee-SEC01-U | | Standard ZCL | +| Tuya | QS-Zigbee-SEC02-U | | Standard ZCL | +| Tuya | R3 Smart Switch | | Standard ZCL | +| Tuya | RH3040 | Motion, Battery | Standard ZCL | +| Tuya | RT_ZCZ03Z | Motion, Illuminance | Tuya | +| Tuya | SA12IZL | Smoke, Battery | Standard ZCL | +| Tuya | SM0001 | | Standard ZCL | +| Tuya | SM0202 | Motion, Battery | Standard ZCL | +| Tuya | SMKG-2KNL-SD | Temperature | Tuya | +| Tuya | SNTZ007 | Contact, Battery | Standard ZCL | +| Tuya | SNTZ009 | Water | Standard ZCL | +| Tuya | SWS6TZ-WHITE | | Standard ZCL | +| Tuya | SZR07U | Motion | Tuya | +| Tuya | TM001-ZA/TM081 | Contact, Battery | Standard ZCL | +| Tuya | TRV601 | Battery | Tuya | +| Tuya | TRV602 | Battery | Tuya | +| Tuya | TRV602Z | Battery | Tuya | +| Tuya | TS0001 | | Standard ZCL | +| Tuya | TS0001_1_gang_switch | | Standard ZCL | +| Tuya | TS0001_fingerbot | Battery | Tuya | +| Tuya | TS0001_power | | Standard ZCL | +| Tuya | TS0001_switch_1_gang | | Standard ZCL | +| Tuya | TS0001_switch_module | | Standard ZCL | +| Tuya | TS0001_switch_module_1 | | Standard ZCL | +| Tuya | TS0001_switch_module_2 | | Standard ZCL | +| Tuya | TS0002 | | Standard ZCL | +| Tuya | TS0002_basic | | Standard ZCL | +| Tuya | TS0002_limited | | Standard ZCL | +| Tuya | TS0002_power | | Standard ZCL | +| Tuya | TS0003 | | Standard ZCL | +| Tuya | TS0003_3_gang_switch | | Standard ZCL | +| Tuya | TS0003_switch_3_gang | | Standard ZCL | +| Tuya | TS0003_switch_3_gang_with_backlight | | Standard ZCL | +| Tuya | TS0003_switch_module_1 | | Standard ZCL | +| Tuya | TS0003_switch_module_2 | | Standard ZCL | +| Tuya | TS0003_switch_module_3 | | Standard ZCL | +| Tuya | TS0004 | | Standard ZCL | +| Tuya | TS0004_fan_light_switch | | Standard ZCL | +| Tuya | TS0004_switch_module | | Standard ZCL | +| Tuya | TS0004_switch_module_2 | | Standard ZCL | +| Tuya | TS0006 | | Standard ZCL | +| Tuya | TS000F_power | | Standard ZCL | +| Tuya | TS0011 | | Standard ZCL | +| Tuya | TS0011_switch_module | | Standard ZCL | +| Tuya | TS0012 | | Standard ZCL | +| Tuya | TS0012_switch_module | | Standard ZCL | +| Tuya | TS0013 | | Standard ZCL | +| Tuya | TS0013_switch_module | | Standard ZCL | +| Tuya | TS0014 | | Standard ZCL | +| Tuya | TS0026 | | Standard ZCL | +| Tuya | TS0049 | | Standard ZCL | +| Tuya | TS004F | Battery | Standard ZCL | +| Tuya | TS004F_6_button | Battery | Standard ZCL | +| Tuya | TS0052 | | Standard ZCL | +| Tuya | TS0052_2 | | Standard ZCL | +| Tuya | TS0101 | | Standard ZCL | +| Tuya | TS0105 | | Standard ZCL | +| Tuya | TS0108 | | Standard ZCL | +| Tuya | TS0111 | | Standard ZCL | +| Tuya | TS0111_valve | | Standard ZCL | +| Tuya | TS0115 | | Standard ZCL | +| Tuya | TS011F_1 | | Standard ZCL | +| Tuya | TS011F_2_gang_2_usb_wall | | Standard ZCL | +| Tuya | TS011F_2_gang_power | | Standard ZCL | +| Tuya | TS011F_2_gang_wall | | Standard ZCL | +| Tuya | TS011F_3_gang | | Standard ZCL | +| Tuya | TS011F_4 | | Standard ZCL | +| Tuya | TS011F_5 | | Standard ZCL | +| Tuya | TS011F_din_smart_relay | | Standard ZCL | +| Tuya | TS011F_din_smart_relay_polling | | Standard ZCL | +| Tuya | TS011F_plug_1 | | Standard ZCL | +| Tuya | TS011F_plug_2 | | Standard ZCL | +| Tuya | TS011F_plug_3 | | Standard ZCL | +| Tuya | TS011F_quad_power1 | | Standard ZCL | +| Tuya | TS011F_socket_module | | Standard ZCL | +| Tuya | TS011F_switch_5_gang | | Standard ZCL | +| Tuya | TS011F_wall_outlet | | Standard ZCL | +| Tuya | TS011F_with_threshold | Temperature | Standard ZCL | +| Tuya | TS0121_plug | | Standard ZCL | +| Tuya | TS0202 | Motion, Battery | Standard ZCL | +| Tuya | TS0202_1 | Motion, Battery | Standard ZCL | +| Tuya | TS0202_2 | Motion, Battery | Standard ZCL | +| Tuya | TS0202_3 | Motion, Battery, Illuminance | Standard ZCL | +| Tuya | TS0203 | Contact, Battery | Standard ZCL | +| Tuya | TS0203_1 | Contact, Battery | Standard ZCL | +| Tuya | TS0204 | Gas | Standard ZCL | +| Tuya | TS0205 | Smoke, Battery | Standard ZCL | +| Tuya | TS0207_water_leak_detector | Water, Battery | Standard ZCL | +| Tuya | TS020C | Motion, Battery, Illuminance | Tuya | +| Tuya | TS0210 | Vibration, Battery | Standard ZCL | +| Tuya | TS0501A | | Standard ZCL | +| Tuya | TS0501B | | Standard ZCL | +| Tuya | TS0501B_dimmer | | Standard ZCL | +| Tuya | TS0501B_dimmer_2 | | Standard ZCL | +| Tuya | TS0502A | | Standard ZCL | +| Tuya | TS0502B | | Standard ZCL | +| Tuya | TS0503A | | Standard ZCL | +| Tuya | TS0503B | | Standard ZCL | +| Tuya | TS0504A | | Standard ZCL | +| Tuya | TS0504B | | Standard ZCL | +| Tuya | TS0505 | | Standard ZCL | +| Tuya | TS0505A | | Standard ZCL | +| Tuya | TS0505A_led | | Standard ZCL | +| Tuya | TS0505B_1 | | Standard ZCL | +| Tuya | TS0505B_2 | | Standard ZCL | +| Tuya | TS0505B_3 | | Standard ZCL | +| Tuya | TS0601-PIR-Sensor | Motion, Illuminance, Battery | Tuya | +| Tuya | TS0601_1gang_switch | | Standard ZCL | +| Tuya | TS0601_2gang_switch | | Standard ZCL | +| Tuya | TS0601_3_phase_clamp_meter_relay | | Standard ZCL | +| Tuya | TS0601_3gang_rkbxtclc | | Standard ZCL | +| Tuya | TS0601_3gang_switch | | Standard ZCL | +| Tuya | TS0601_4gang_7ytnacie | | Standard ZCL | +| Tuya | TS0601_6gang_switch | | Standard ZCL | +| Tuya | TS0601_GTZ10 | Battery | Tuya | +| Tuya | TS0601_TZE284_gnpflcoq | Motion, Illuminance, Temperature, Humidity, Battery | Tuya | +| Tuya | TS0601_bed_presence_sensor | Motion, Battery, Illuminance | Tuya | +| Tuya | TS0601_contact_temperature_humidity_sensor | Contact, Temperature, Humidity, Battery | Tuya | +| Tuya | TS0601_cover_switch_2 | | Standard ZCL | +| Tuya | TS0601_cover_with_1_switch | | Standard ZCL | +| Tuya | TS0601_cover_with_2_switch | | Standard ZCL | +| Tuya | TS0601_dimmer_1_gang_1 | | Standard ZCL | +| Tuya | TS0601_dimmer_1_gang_2 | | Standard ZCL | +| Tuya | TS0601_dimmer_1_gang_3 | | Standard ZCL | +| Tuya | TS0601_dimmer_2 | | Standard ZCL | +| Tuya | TS0601_dimmer_3 | | Standard ZCL | +| Tuya | TS0601_dimmer_4 | | Standard ZCL | +| Tuya | TS0601_dimmer_5 | | Standard ZCL | +| Tuya | TS0601_dimmer_knob | | Standard ZCL | +| Tuya | TS0601_din | | Standard ZCL | +| Tuya | TS0601_din_1 | | Standard ZCL | +| Tuya | TS0601_din_2 | | Standard ZCL | +| Tuya | TS0601_din_3 | | Standard ZCL | +| Tuya | TS0601_din_4 | Temperature | Tuya | +| Tuya | TS0601_fan_5_levels_and_light_5_levels | | Standard ZCL | +| Tuya | TS0601_fan_5_levels_and_light_switch | | Standard ZCL | +| Tuya | TS0601_fan_and_light_switch | | Standard ZCL | +| Tuya | TS0601_fan_switch | | Standard ZCL | +| Tuya | TS0601_gas_sensor_1 | Gas | Tuya | +| Tuya | TS0601_gas_sensor_2 | Gas | Tuya | +| Tuya | TS0601_gas_sensor_3 | Gas | Tuya | +| Tuya | TS0601_gas_sensor_4 | Gas | Tuya | +| Tuya | TS0601_human_presence_sensor | Motion | Standard ZCL | +| Tuya | TS0601_knob_dimmer_switch | | Standard ZCL | +| Tuya | TS0601_light | | Standard ZCL | +| Tuya | TS0601_motion_sensor | Motion | Standard ZCL | +| Tuya | TS0601_multifunction_switch | | Standard ZCL | +| Tuya | TS0601_pir | Motion, Illuminance, Battery | Tuya | +| Tuya | TS0601_pir_solar | Motion, Battery | Tuya | +| Tuya | TS0601_power_monitoring_switch | | Standard ZCL | +| Tuya | TS0601_smart_human_presence_sensor_1 | Motion, Illuminance | Standard ZCL | +| Tuya | TS0601_smart_temperature_switch | | Standard ZCL | +| Tuya | TS0601_smoke_1 | Smoke | Tuya | +| Tuya | TS0601_smoke_3 | Smoke | Tuya | +| Tuya | TS0601_smoke_4 | Smoke, Battery | Tuya | +| Tuya | TS0601_smoke_5 | Smoke, Battery | Tuya | +| Tuya | TS0601_smoke_6 | Smoke | Tuya | +| Tuya | TS0601_smoke_co | Smoke, Battery, Carbon Monoxide | Tuya | +| Tuya | TS0601_stairwell_switch | | Standard ZCL | +| Tuya | TS0601_switch | | Standard ZCL | +| Tuya | TS0601_switch_10 | | Standard ZCL | +| Tuya | TS0601_switch_1_gang | | Standard ZCL | +| Tuya | TS0601_switch_2_gang | | Standard ZCL | +| Tuya | TS0601_switch_3_gang | | Standard ZCL | +| Tuya | TS0601_switch_4_gang_1 | | Standard ZCL | +| Tuya | TS0601_switch_4_gang_2 | | Standard ZCL | +| Tuya | TS0601_switch_5_gang | | Standard ZCL | +| Tuya | TS0601_switch_6_gang | | Standard ZCL | +| Tuya | TS0601_switch_8_2 | | Standard ZCL | +| Tuya | TS0601_thermostat | | Standard ZCL | +| Tuya | TS0601_thermostat_1 | Battery | Tuya | +| Tuya | TS0601_thermostat_6 | Battery | Tuya | +| Tuya | TS0601_vibration_sensor | Contact, Battery, Vibration | Standard ZCL | +| Tuya | TS0601_water_sensor | Water | Standard ZCL | +| Tuya | TS0601_water_switch | Battery | Tuya | +| Tuya | TS0601_water_valve | Temperature | Tuya | +| Tuya | TS0601_water_valve_1 | | Standard ZCL | +| Tuya | TS0726_1_gang | | Standard ZCL | +| Tuya | TS0726_1_gang_scene_switch | | Standard ZCL | +| Tuya | TS0726_2_gang | | Standard ZCL | +| Tuya | TS0726_2_gang_scene_switch | | Standard ZCL | +| Tuya | TS0726_3_gang | | Standard ZCL | +| Tuya | TS0726_3_gang_scene_switch | | Standard ZCL | +| Tuya | TS0726_4_gang | | Standard ZCL | +| Tuya | TS0726_4_gang_scene_switch | | Standard ZCL | +| Tuya | TS0726_4_gang_switch_and_2_scene | | Standard ZCL | +| Tuya | TS0726_4_gang_switch_and_4_scene | | Standard ZCL | +| Tuya | TS0726_multi_1_gang | | Standard ZCL | +| Tuya | TS0726_multi_3_gang | | Standard ZCL | +| Tuya | TS0726_multi_4_gang | | Standard ZCL | +| Tuya | TS0726_switch_4g_2s | | Standard ZCL | +| Tuya | TS0901 | Battery | Standard ZCL | +| Tuya | TS1101_dimmer_module_1ch | | Standard ZCL | +| Tuya | TS1101_dimmer_module_2ch | | Standard ZCL | +| Tuya | TS110E_1gang_1 | | Standard ZCL | +| Tuya | TS110E_1gang_2 | | Standard ZCL | +| Tuya | TS110E_2gang_1 | | Standard ZCL | +| Tuya | TS110E_2gang_2 | | Standard ZCL | +| Tuya | TW-03 | | Standard ZCL | +| Tuya | TYZS1L | | Standard ZCL | +| Tuya | WHD02 | | Standard ZCL | +| Tuya | WLS-100z | Water, Battery | Standard ZCL | +| Tuya | WZ5_rgb_1 | | Standard ZCL | +| Tuya | Y1_IN | Motion, Illuminance | Tuya | +| Tuya | YSR-MINI-Z | Battery | Standard ZCL | +| Tuya | YXZBRB58 | Motion, Illuminance | Tuya | +| Tuya | ZBN-DJ-63 | Temperature | Tuya | +| Tuya | ZBN-JT-63 | | Standard ZCL | +| Tuya | ZD24_Presence_Sensor | Motion, Illuminance, Battery | Tuya | +| Tuya | ZF24 | Motion, Illuminance | Tuya | +| Tuya | ZF24Pro | Motion, Illuminance, Temperature, Humidity | Tuya | +| Tuya | ZG-102Z | Contact, Battery | Tuya | +| Tuya | ZG-102ZL | Contact, Illuminance, Battery | Tuya | +| Tuya | ZG-103Z | Vibration, Battery | Tuya | +| Tuya | ZG-204ZL | Motion, Illuminance, Battery | Tuya | +| Tuya | ZG-204ZM | Motion, Battery, Illuminance | Tuya | +| Tuya | ZG-205Z/A | Motion, Illuminance | Tuya | +| Tuya | ZG-205ZL | Motion, Illuminance | Tuya | +| Tuya | ZG-225Z | Gas | Tuya | +| Tuya | ZM-35H-Q | Motion, Battery | Standard ZCL | +| Tuya | ZN231392 | | Standard ZCL | +| Tuya | ZN2S-RS02E | | Standard ZCL | +| Tuya | ZPIR-10 | Motion, Battery, Illuminance | Tuya | +| Tuya | ZS-TYG3-SM-21Z | | Standard ZCL | +| Tuya | ZS-TYG3-SM-31Z | | Standard ZCL | +| Tuya | ZS-TYG3-SM-41Z | | Standard ZCL | +| Tuya | ZS-TYG3-SM-61Z | | Standard ZCL | +| Tuya | ZSS-QY-SSD-A-EN | Smoke, Battery | Tuya | +| Tuya | ZY-M100-24G | Motion, Illuminance | Tuya | +| Tuya | ZY-M100-24GV2 | Motion, Illuminance | Tuya | +| Tuya | ZY-M100-S_1 | Motion, Illuminance | Tuya | +| Tuya | ZY-M100-S_2 | Motion, Illuminance | Tuya | +| Tuya | ZY-M100-S_3 | Motion, Illuminance | Tuya | +| Tuya | ZY-ZHPS01-24G | Motion, Illuminance | Tuya | +| Tuya | ZY_HPS01 | Motion, Illuminance | Tuya | +| Tuya | \_TZ3000_h1ipgkwn | | Standard ZCL | +| Tuya | \_TZ3000_mw1pqqqt | | Standard ZCL | +| Tuya | \_TZE200_rgeapp2c | | Standard ZCL | +| Tuya | \_TZE28C1000000_jlbsptkl | | Standard ZCL | +| Tuya | gq8b1uv | | Standard ZCL | +| Tuya | rtsc11r | Motion, Illuminance | Tuya | +| UHome | TWV | Battery | Standard ZCL | +| Ubisys | C4 | | Standard ZCL | +| Ubisys | D1 | | Standard ZCL | +| Ubisys | H10 | | Standard ZCL | +| Ubisys | S1 | | Standard ZCL | +| Ubisys | S1-R | | Standard ZCL | +| Ubisys | S2 | | Standard ZCL | +| Universal Electronics Inc | UEHK2AZ0 | Motion, Battery, Contact, Temperature | Standard ZCL | +| Universal Electronics Inc | XHK1-UE | Motion, Battery, Contact, Temperature | Standard ZCL | +| Universal Electronics Inc | XHS1-UE | Motion, Temperature, Battery | Standard ZCL | +| Universal Electronics Inc | XHS2-UE | Contact, Temperature, Battery | Standard ZCL | +| VAV | VAV-256215-MOD1 | | Standard ZCL | +| VAV | VAV-256215-MOD2 | | Standard ZCL | +| VBLED | 43023 | | Standard ZCL | +| VSmart | HS-SEDR00ZB-VNM | Contact | Standard ZCL | +| VSmart | HS-SEOC00ZB-VNM | Motion, Battery | Standard ZCL | +| VSmart | HS-SW100ZB-VNM | | Standard ZCL | +| VSmart | HS-SW200ZB-VNM | | Standard ZCL | +| VSmart | HS-SW300ZB-VNM | | Standard ZCL | +| VSmart | HS-SW400ZB-VNM | | Standard ZCL | +| Vesternet | VES-ZB-DIM-004 | | Standard ZCL | +| Vesternet | VES-ZB-HLD-017 | | Standard ZCL | +| Vesternet | VES-ZB-REM-013 | Battery | Standard ZCL | +| Vesternet | VES-ZB-SWI-005 | | Standard ZCL | +| Vesternet | VES-ZB-SWI-015 | | Standard ZCL | +| Vesternet | VES-ZB-WAL-006 | Battery | Standard ZCL | +| Vesternet | VES-ZB-WAL-011 | Battery | Standard ZCL | +| Vesternet | VES-ZB-WAL-012 | Battery | Standard ZCL | +| Videosec | KRC-103 | | Standard ZCL | +| Villeroy & Boch | C0040000 | | Standard ZCL | +| Villeroy & Boch | C5850000 | | Standard ZCL | +| Villeroy & Boch | EC1366 | | Standard ZCL | +| Vimar | 03981 | | Standard ZCL | +| Vimar | 14592.0 | | Standard ZCL | +| Vimar | 14593 | | Standard ZCL | +| Vimar | 14595.0 | | Standard ZCL | +| Vimar | RemoteControl_v1.0 | | Standard ZCL | +| Visonic | GB-540 | Vibration | Standard ZCL | +| Visonic | MCT-302 SMA | Contact, Temperature, Battery | Standard ZCL | +| Visonic | MCT-340 E | Contact, Temperature, Battery | Standard ZCL | +| Visonic | MCT-340 SMA | Contact, Temperature, Battery | Standard ZCL | +| Visonic | MCT-350 SMA | Contact, Temperature | Standard ZCL | +| Visonic | MCT-370 SMA | Contact | Standard ZCL | +| Visonic | MP-840 | Motion, Temperature, Battery | Standard ZCL | +| Visonic | MP-841 | Motion | Standard ZCL | +| Vrey | VR-X701U | | Standard ZCL | +| WETEN | 1GNNTS | | Standard ZCL | +| WETEN | PCI E | | Standard ZCL | +| Wally | U02I007C.01 | Contact, Battery, Temperature, Humidity, Water | Standard ZCL | +| Waxman | 8850100 | Battery | Standard ZCL | +| Weiser | 9GED18000-009 | Battery | Standard ZCL | +| Weiser | 9GED21500-005 | Battery | Standard ZCL | +| Wenzhi | WZ-M100 | Motion, Illuminance | Tuya | +| Wiren Board | WB-MSW-ZIGBEE_v.4_official | Motion, Illuminance, Temperature, Humidity | Standard ZCL | +| Wirenboard | WB-MSW-ZIGBEE v.3 | Motion, Temperature, Humidity, Illuminance | Standard ZCL | +| Wirenboard | WB-MSW-ZIGBEE v.4 | Motion, Temperature, Humidity, Illuminance | Standard ZCL | +| Wisdom | DMZ250 | | Standard ZCL | +| Woolley | BSD29/BSD59 | | Standard ZCL | +| Woox | R7049 | Smoke | Standard ZCL | +| Woox | R7060 | Battery | Standard ZCL | +| Woox | R7067 | | Standard ZCL | +| Woox | R9077 | | Standard ZCL | +| Wyze | WLCKG1 | Battery | Standard ZCL | +| XAL | 050-0131558M | | Standard ZCL | +| XAL | 050-0511558F | | Standard ZCL | +| XAL | 050-1212558H | | Standard ZCL | +| Xiaomi | JTQJ-BF-01LM/BW | Gas | Aqara/LUMI | +| Xiaomi | JTYJ-GD-01LM/BW | Smoke, Battery, Device Temp | Aqara/LUMI | +| Xiaomi | MCCGQ01LM | Contact, Battery | Aqara/LUMI | +| Xiaomi | RTCGQ01LM | Motion, Battery | Aqara/LUMI | +| Xiaomi | ZNCZ02LM | Device Temp | Aqara/LUMI | +| Xiaomi | ZNCZ03LM | Device Temp | Aqara/LUMI | +| Xiaomi | ZNCZ04LM | Device Temp | Aqara/LUMI | +| XingHuoYuan | X2SK11 | | Standard ZCL | +| YOKIS | E2BP-UP | | Standard ZCL | +| YOKIS | E2BPA-UP | | Standard ZCL | +| YOKIS | E4BP-UP | | Standard ZCL | +| YOKIS | E4BPX-UP | | Standard ZCL | +| YOKIS | GALET4-UP | Temperature | Standard ZCL | +| YOKIS | MTR1300E-UP | | Standard ZCL | +| YOKIS | MTR2000E-UP | | Standard ZCL | +| YOKIS | MTR500E-UP | | Standard ZCL | +| YOKIS | MTV300E-UP | | Standard ZCL | +| YOKIS | TLC1-UP | Temperature | Standard ZCL | +| YOKIS | TLC2-UP | | Standard ZCL | +| YOKIS | TLC4-UP | | Standard ZCL | +| YOKIS | TLC8-UP | | Standard ZCL | +| YOKIS | TLM1-UP | Temperature | Standard ZCL | +| YOKIS | TLM2-UP | Temperature | Standard ZCL | +| YOKIS | TLM4-UP | Temperature | Standard ZCL | +| YSRSAI | YSR-MINI-01_dimmer | | Standard ZCL | +| YSRSAI | YSR-MINI-01_rgbcct | | Standard ZCL | +| YSRSAI | YSR-MINI-01_wwcw | | Standard ZCL | +| Yale | LIA | Battery | Standard ZCL | +| Yale | SOLIS01 | Battery | Standard ZCL | +| Yale | YAYRD256HA2619 | Battery | Standard ZCL | +| Yale | YDD-D4F0-TSDB | Battery | Standard ZCL | +| Yale | YDF40 | Battery | Standard ZCL | +| Yale | YDM60 | Battery | Standard ZCL | +| Yale | YMC420-W | Battery | Standard ZCL | +| Yale | YMF30 | Battery | Standard ZCL | +| Yale | YMF40/YDM4109+/YDF40 | Battery | Standard ZCL | +| Yale | YMF40A RL | Battery | Standard ZCL | +| Yale | YMI70A | Battery | Standard ZCL | +| Yale | YRD210-HA-605 | Battery | Standard ZCL | +| Yale | YRD216-HA2-619 | Battery | Standard ZCL | +| Yale | YRD220/YRD221 | Battery | Standard ZCL | +| Yale | YRD226/246 TSDB | Battery | Standard ZCL | +| Yale | YRD226HA2619 | Battery | Standard ZCL | +| Yale | YRD246HA20BP | Battery | Standard ZCL | +| Yale | YRD256HA20BP | Battery | Standard ZCL | +| Yale | YRD410-BLE | Battery | Standard ZCL | +| Yale | YRD420-BLE | Battery | Standard ZCL | +| Yale | YRD426NRSC | Battery | Standard ZCL | +| Yale | YRD430-BLE | Battery | Standard ZCL | +| Yale | YRD450-BLE | Battery | Standard ZCL | +| Yale | YRD652HA20BP | Battery | Standard ZCL | +| Yale | YRL-220L | Battery | Standard ZCL | +| Yale | YRL226 TS | Battery | Standard ZCL | +| Yale | YRL226L TS | Battery | Standard ZCL | +| Yale | YRL256 TS | Battery | Standard ZCL | +| Yale | YRM476 | Battery | Standard ZCL | +| Yale | ZYA-C4-MOD-S | Battery | Standard ZCL | +| Yandex | YNDX-00518 | Battery | Standard ZCL | +| Yandex | YNDX_00526 | Contact, Battery | Standard ZCL | +| Yandex | YNDX_00527 | Water, Battery | Standard ZCL | +| Yandex | YNDX_00528 | Motion, Illuminance, Battery | Standard ZCL | +| Yandex | YNDX_00530 | | Standard ZCL | +| Yandex | YNDX_00531 | | Standard ZCL | +| Yandex | YNDX_00532 | | Standard ZCL | +| Yandex | YNDX_00537 | | Standard ZCL | +| Yandex | YNDX_00538 | | Standard ZCL | +| Ynoa | 8718801528204 | | Standard ZCL | +| Ynoa | 8718801528273 | | Standard ZCL | +| Ynoa | 8718801528334 | Battery | Standard ZCL | +| Ynoa | LA-5KEY-RGBW | Battery | Standard ZCL | +| Ynoa | LA-A60-CCT | | Standard ZCL | +| Ynoa | LA-GU10-RGBW | | Standard ZCL | +| Ynoa | LA-PLUG-10Amp | | Standard ZCL | +| ZSVIOT | PN16 | | Standard ZCL | +| ZSVIOT | PN6 | | Standard ZCL | +| ZYXH | TS0601_switch_12 | | Standard ZCL | +| ZYXH | TS0601_switch_8 | | Standard ZCL | +| ZYXH | ZYXH_switch_24 | | Standard ZCL | +| Zbeacon | TS0721 | | Standard ZCL | +| Zemismart | HGZB-DLC4-N15B | | Standard ZCL | +| Zemismart | KES-606US-L4 | | Standard ZCL | +| Zemismart | LXN56-SS27LX1.1 | | Standard ZCL | +| Zemismart | LXZB-12A | | Standard ZCL | +| Zemismart | TB25 | | Standard ZCL | +| Zemismart | TB26-4 | | Standard ZCL | +| Zemismart | TB26-6 | | Standard ZCL | +| Zemismart | ZIGBEE-B09-UK | | Standard ZCL | +| Zemismart | ZMO-606-20A | | Standard ZCL | +| Zemismart | ZMO-606-P2 | | Standard ZCL | +| Zemismart | ZMS-206EU-2 | | Standard ZCL | +| Zemismart | ZMS-206EU-3 | | Standard ZCL | +| Zemismart | ZMS-206US-1 | | Standard ZCL | +| Zemismart | ZMS-206US-4 | | Standard ZCL | +| Zemismart | ZMS-208US-2 | | Standard ZCL | +| Zemismart | ZMS-208US-3 | | Standard ZCL | +| Zipato | rgbw2.zbee27 | | Standard ZCL | +| databyte.ch | ED2004-012 | | Standard ZCL | +| eWeLink | CK-BL702-AL-01_1 | | Standard ZCL | +| eWeLink | CK-BL702-MSW-01(7010) | | Standard ZCL | +| eWeLink | MG3-5RZ | Motion | Standard ZCL | +| eWeLink | SA-003-Zigbee | | Standard ZCL | +| eWeLink | SA-030-1 | | Standard ZCL | +| eWeLink | SNZB-05 | Water, Battery | Standard ZCL | +| eWeLink | SWITCH-ZR02 | | Standard ZCL | +| eWeLink | SWITCH-ZR03-1 | | Standard ZCL | +| eWeLink | ZB-SW01 | | Standard ZCL | +| eWeLink | ZB-SW02 | | Standard ZCL | +| eWeLink | ZB-SW03 | | Standard ZCL | +| eWeLink | ZB-SW04 | | Standard ZCL | +| eWeLink | ZB-SW05 | | Standard ZCL | +| eZEX | ECW-100-A03 | | Standard ZCL | +| easyiot | ZB-PM01 | | Standard ZCL | +| easyiot | ZB-PSW04 | | Standard ZCL | +| easyiot | ZB-SW08 | | Standard ZCL | +| easyiot | ZB-WB01 | Battery | Standard ZCL | +| easyiot | ZB-WB02 | Battery | Standard ZCL | +| easyiot | ZB-WB03 | Battery | Standard ZCL | +| easyiot | ZB-WB08 | Battery | Standard ZCL | +| iAlarm | SP02-ZB001 | Motion, Battery | Tuya | +| iCasa | ICZB-B1FC60/B3FC64/B2FC95/B2FC125 | | Standard ZCL | +| iCasa | ICZB-DC11 | | Standard ZCL | +| iCasa | ICZB-IW11D | | Standard ZCL | +| iCasa | ICZB-IW11SW | | Standard ZCL | +| iCasa | ICZB-IW21D | | Standard ZCL | +| iCasa | ICZB-KPD12 | Battery | Standard ZCL | +| iCasa | ICZB-KPD14S | Battery | Standard ZCL | +| iCasa | ICZB-KPD18S | Battery | Standard ZCL | +| iCasa | ICZB-R11D | | Standard ZCL | +| iCasa | ICZB-R12D | | Standard ZCL | +| iCasa | ICZB-RM11S | Battery | Standard ZCL | +| iHORN | HO-09ZB | Contact, Battery | Standard ZCL | +| iHORN | LH-990F | Motion | Standard ZCL | +| iHORN | LH-990ZB | Motion | Standard ZCL | +| iHORN | LH-992ZB | Motion | Standard ZCL | +| iHORN | LH03121 | Contact, Battery | Standard ZCL | +| iHseno | TS0601_human_presence | Motion, Battery | Tuya | +| iHseno | \_TZ3000_pgq7ormg | | Standard ZCL | +| iLightsIn | HLC610 | | Standard ZCL | +| iLightsIn | HSSA18-Z-MID | Motion, Illuminance | Standard ZCL | +| iStar | SCCV2401-1 | | Standard ZCL | +| iStar | SCCV2401-4 | | Standard ZCL | +| iStar | SCCV2403-2 | | Standard ZCL | +| ilux | 900008-WW | | Standard ZCL | +| smarli. | S-ZB-1RE1-R251 | | Standard ZCL | +| smarli. | S-ZB-PDM1-R251 | | Standard ZCL | +| xyzroe | ZigUSB | | Standard ZCL | +| xyzroe | ZigUSB_C6 | Temperature | Standard ZCL | + +## Not yet supported + +These devices are recognized by the upstream database but their **primary +sensor** reports over Tuya's `0xEF00` cluster in a form we can't yet decode +(typically an enum presence datapoint rather than a simple on/off). The driver +deliberately does **not** claim them - binding would leave them silent. Support +is a data refresh away as the mapping improves. + +| Vendor | Model | Sensor | +| -------- | ------------- | ------ | +| LeapMMW | MTD085-ZB | Motion | +| Merrytek | MSA201Z | Motion | +| ONENUO | 288WZ | Smoke | +| Tuya | ZG-205Z | Motion | +| Tuya | ZY-M100-24GV3 | Motion | +| Wenzhi | MTD285-ZB | Motion | diff --git a/drivers/zigbee3_device/driver.c4zproj b/drivers/zigbee3_device/driver.c4zproj new file mode 100644 index 0000000..7b1c8b2 --- /dev/null +++ b/drivers/zigbee3_device/driver.c4zproj @@ -0,0 +1,7 @@ + + + + + + + diff --git a/drivers/zigbee3_device/driver.lua b/drivers/zigbee3_device/driver.lua new file mode 100644 index 0000000..60a80df --- /dev/null +++ b/drivers/zigbee3_device/driver.lua @@ -0,0 +1,315 @@ +--- Zigbee 3 Device - generic per-device driver entry point. +--- Wires the DriverWorks lifecycle + Zigbee callbacks to the device runtime +--- (src/zigbee3). One instance per joined device; no static proxy - proxies, +--- companion connections, and variables are created dynamically on discovery. + +--#ifdef DRIVERCENTRAL +DC_FILENAME = "zigbee3_device.c4z" +--#else +DRIVER_GITHUB_REPO = "finitelabs/control4-zigbee3" +-- One driver, but one instance per joined device. The leader (lowest device id) +-- updates them all and settings sync across every instance (see +-- getSuiteDriverIds / syncPropertyToOtherInstances). +DRIVER_FILENAMES = { + "zigbee3_device.c4z", +} +--#endif + +require("lib.utils") +-- Paved-path common runtime: global.handlers provides the RFP/OBC binding +-- dispatch tables + UpdateProperty/SendToProxy that lib.values/lib.bindings use; +-- global.lib sets the JSON global; global.timer backs any driver timers. +require("drivers-common-public.global.handlers") +require("drivers-common-public.global.lib") +require("drivers-common-public.global.timer") +JSON = require("JSON") + +local log = require("lib.logging") +local values = require("lib.values") +local bindings = require("lib.bindings") +local events = require("lib.events") +--#ifndef DRIVERCENTRAL +local githubUpdater = require("lib.github-updater") +--#endif +local Device = require("zigbee3.device") + +local UPDATE_CHECK_INTERVAL_MS = 30 * 60 * 1000 -- leader checks GitHub every 30 min + +-- The static ZIGBEE transport connection declared in driver.xml. +local ZIGBEE_BINDING_ID = 6001 + +gInitialized = false +local device = nil + +--#ifndef DRIVERCENTRAL +-- Automatic updates (leader-elected, suite-wide) + +--- Every device ID across all instances of this driver, sorted ascending. +local function getSuiteDriverIds() + local ids = {} + for _, filename in ipairs(DRIVER_FILENAMES) do + for id in pairs(C4:GetDevicesByC4iName(filename) or {}) do + ids[#ids + 1] = tonumber(id) + end + end + table.sort(ids) + return ids +end + +--- Push a property to every OTHER instance, so Automatic Updates / +--- Update Channel stay aligned across all instances of this driver. +local function syncPropertyToOtherInstances(property, value) + local myId = C4:GetDeviceID() + for _, id in ipairs(getSuiteDriverIds()) do + if id ~= myId then + SetDeviceProperties(id, { [property] = value }, true) + end + end +end + +--- Pull + install any newer suite drivers from GitHub. +function UpdateDrivers(forceUpdate) + log:info("checking for driver updates%s", forceUpdate and " (forced)" or "") + githubUpdater + :updateAll(DRIVER_GITHUB_REPO, DRIVER_FILENAMES, Properties["Update Channel"] == "Prerelease", forceUpdate) + :next(function(updated) + if not IsEmpty(updated) then + log:info("updated driver(s): %s", table.concat(updated, ", ")) + else + log:info("no driver updates available") + end + end, function(err) + log:warn("update check failed: %s", tostring(err)) + end) +end + +--- Only the leader (lowest device ID in the suite) checks GitHub, so N per-device +--- instances don't all hit it. Recomputed each tick (the previous leader may be +--- gone). Runs on a repeating timer. +local function startUpdateChecks() + SetTimer("update_check", UPDATE_CHECK_INTERVAL_MS, function() + local isLeader = Select(getSuiteDriverIds(), 1) == C4:GetDeviceID() + if isLeader and toboolean(Properties["Automatic Updates"]) then + UpdateDrivers(false) + end + end, true) +end + +-- Action: update the suite now (any instance). +function EC.Update_Drivers() + UpdateDrivers(true) +end +--#endif + +function OnDriverInit() + --#ifdef DRIVERCENTRAL + require("cloud-client-byte") + C4:AllowExecute(false) + --#else + C4:AllowExecute(true) + --#endif + gInitialized = false + log:setLogName("zigbee3_device") + log:setLogLevel(Properties["Log Level"]) + log:setLogMode(Properties["Log Mode"]) + -- Restore dynamic variables + bindings + events early so Director reconnects them. + values:restoreValues() + bindings:restoreBindings() + events:restoreEvents() + C4:UpdateProperty("Driver Version", C4:GetDriverConfigInfo("version") or "") +end + +function OnDriverLateInit() + if not CheckMinimumVersion("Driver Status") then + return -- OS too old; CheckMinimumVersion disables + reports via Driver Status + end + device = Device:new() + -- Push a fresh snapshot to the Settings web UI whenever device state changes. + device:onUIChange(function() + pushUIState() + end) + for p in pairs(Properties) do + local ok, err = pcall(OnPropertyChanged, p) + if not ok then + log:error("OnPropertyChanged('%s'): %s", p, tostring(err)) + end + end + device:restoreModel() -- re-resolve from persist so a reload doesn't sit in "Waiting for device" + device:replay() -- replay last known readings + settings through the normal pipeline + device:updateStatus() + device:start() + gInitialized = true + --#ifndef DRIVERCENTRAL + startUpdateChecks() + --#endif + log:info("zigbee3_device initialized") +end + +function OnPropertyChanged(property) + local value = Properties[property] + if property == "Log Level" then + log:setLogLevel(value) + --#ifndef DRIVERCENTRAL + elseif property == "Automatic Updates" or property == "Update Channel" then + -- Keep the update settings aligned across every driver in the suite. + if gInitialized then + syncPropertyToOtherInstances(property, value) + end + --#endif + elseif property == "Log Mode" then + log:setLogMode(value) + end + -- Device settings are no longer properties - they're edited in the Settings + -- web UI (UIR._SET_SETTING). The remaining properties are all driver/cloud. + if gInitialized and device ~= nil then + device:notifyUI() -- driver-property change is mirrored in the UI's Driver tab + end +end + +-- Programming: "Set Configuration" command. Its Setting/Value dropdowns are +-- populated dynamically (GetCommandParamList -> GCPL) so only settings this +-- device actually supports appear; execution routes to Device:writeConfig. +function GCPL.Set_Configuration(paramName) + if device == nil or paramName ~= "Setting" then + return {} + end + return device:configChoices() +end + +function EC.Set_Configuration(params) + if device == nil then + return + end + device:setConfigChoice(Select(params, "Setting")) +end + +-- Programming: "Execute Action" - the same per-device list the Action property +-- offers, so a Selftest can be scheduled rather than only clicked. +function GCPL.Execute_Action(paramName) + if device == nil or paramName ~= "Action" then + return {} + end + return device:actionChoices() +end + +function EC.Execute_Action(params) + if device == nil then + return + end + device:runAction(Select(params, "Action")) +end + +-- Action: blink the device's LED so the installer can find it. Universal (ZCL +-- Identify 0x0003), so it's a static action; per-device actions like Selftest go +-- through the Execute Action programming command. +function EC.Identify() + if device ~= nil then + device:runAction("Identify") + end +end + +-- Settings web UI (www/html/index.html) +-- The page talks to the driver over UIRequest: POST /api/v1/items//commands +-- with the args base64-encoded in tParams.DATA. State is returned synchronously +-- AND pushed over the socket (C4:SendDataToUI) whenever the device changes. + +--- Decode the base64 JSON payload the web UI sends as tParams.DATA ("e30=" = {}). +local function uiParams(tParams) + local ok, decoded = pcall(function() + return JSON:decode(C4:Base64Decode((tParams or {}).DATA or "e30=")) + end) + return (ok and type(decoded) == "table") and decoded or {} +end + +--- Push the current device state to the UI. The whole state goes as ONE JSON +--- string param, which sidesteps C4:SendDataToUI's inability to serialize +--- booleans and nested tables (it throws on a bare boolean). +function pushUIState() + if device == nil then + return + end + C4:SendDataToUI("STATE", { data = JSON:encode(device:uiState()) }) +end + +--- Full refresh - the page calls this on load and after a socket reconnect. +function UIR._GET_STATE() + pushUIState() + return device and JSON:encode(device:uiState()) or "{}" +end + +--- Change one device setting: { key, value }. +function UIR._SET_SETTING(tParams) + local p = uiParams(tParams) + if device ~= nil and p.key ~= nil then + device:setSetting(p.key, p.value) + end +end + +--- Discard changes: stop enforcing the integrator's settings and revert the +--- shown values to what the device itself reports (Device:clearDesiredConfig). +function UIR._DISCARD_CHANGES() + if device ~= nil then + device:clearDesiredConfig() + end +end + +--- Change a driver/cloud property from the UI's Driver tab: { property, value }. +function UIR._SET_DRIVER(tParams) + local p = uiParams(tParams) + if p.property ~= nil then + C4:UpdateProperty(tostring(p.property), tostring(p.value)) + OnPropertyChanged(tostring(p.property)) + end +end + +function OnZigbeePacketIn(packet, profileId, clusterId, groupId, srcEndpoint, dstEndpoint) + if not gInitialized or device == nil then + return + end + local ok, err = pcall(function() + device:onPacket(packet, profileId, clusterId, groupId, srcEndpoint, dstEndpoint) + end) + if not ok then + log:error("OnZigbeePacketIn: %s", tostring(err)) + end +end + +function OnZigbeePacketSuccess() end + +function OnZigbeePacketFailed(packet, profileId, clusterId) + -- Expected for sleepy sensors until they're awake (see the config retry + -- window); keep it at debug so a normal install isn't noisy. + log:debug("Zigbee send failed on cluster 0x%04x", clusterId or 0) +end + +function OnNetworkBindingChanged(idBinding, bIsBound) + if device == nil then + return + end + if idBinding == ZIGBEE_BINDING_ID then + if bIsBound then + log:info("Zigbee transport bound; starting discovery") + device:start() + else + log:info("Zigbee transport UNBOUND; resetting device") + device:reset() + end + end +end + +function OnZigbeeOnlineStatusChanged(strStatus, strVersion, strSKU) + log:info("online status: status=%s version=%s SKU=%s", tostring(strStatus), tostring(strVersion), tostring(strSKU)) + if device == nil then + return + end + -- "ONLINE" / "OFFLINE" / "REBOOT" -> Driver Status + Offline Warning / Back + -- Online events (transitions only). + device:setOnlineStatus(strStatus) + -- The SKU may carry the device's ModelIdentifier - if so, resolve from it (no + -- Basic round-trip needed). resolve() no-ops for an unknown/empty value. + if type(strSKU) == "string" and strSKU ~= "" then + device:resolve(strSKU) + end +end + +function OnDriverDestroyed() end diff --git a/drivers/zigbee3_device/driver.xml b/drivers/zigbee3_device/driver.xml new file mode 100644 index 0000000..e5a1510 --- /dev/null +++ b/drivers/zigbee3_device/driver.xml @@ -0,0 +1,216 @@ + + Copyright 2026 Finite Labs, LLC. All rights reserved. + Zigbee 3 Device + Finite Labs + Zigbee 3 Device + Derek Miller + icons/device_sm.png + icons/device_lg.png + lua_gen + DriverWorks + 0 + 01/01/2026 12:00 AM + 01/01/2026 12:00 AM + 4.2.0 + True + + Other + + + + + + + + + + + True + + + + + 6001 + 6 + ZIGBEE + 4 + True + False + False + True + + + ZIGBEE + + + + + + + + 1 + Battery Low + When NAME battery is low + + + 2 + Trouble + When NAME failure is imminent + + + 3 + Offline Warning + When NAME has failed to report and gone offline + + + 4 + Back Online + When NAME has reported again after going offline + + + + + + + + diff --git a/drivers/zigbee3_device/www/icons/device_lg.png b/drivers/zigbee3_device/www/icons/device_lg.png new file mode 100644 index 0000000000000000000000000000000000000000..0d68ffc17d474c5978a0ad7b214c2c65533e39e3 GIT binary patch literal 2190 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

#^AdK|8unZ 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Ð$&XeISMMRne=Vs&mNl$}WaNHv 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 literal 0 HcmV?d00001 diff --git a/drivers/zigbee3_device/www/icons/experience_110.png b/drivers/zigbee3_device/www/icons/experience_110.png new file mode 100644 index 0000000000000000000000000000000000000000..44e875587227c92322c7cd38de4c256d3765215e GIT binary patch literal 11130 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 M07*qoM6N<$f^)o4kpKVy literal 0 HcmV?d00001 diff --git a/drivers/zigbee3_device/www/icons/experience_120.png b/drivers/zigbee3_device/www/icons/experience_120.png new file mode 100644 index 0000000000000000000000000000000000000000..7f29be135b0b05e7e7b014fa4468da7b1c658dd8 GIT binary patch literal 12203 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 literal 0 HcmV?d00001 diff --git a/drivers/zigbee3_device/www/icons/experience_130.png b/drivers/zigbee3_device/www/icons/experience_130.png new file mode 100644 index 0000000000000000000000000000000000000000..1c369a6d6586ce04647792cdda1993edbf8f1688 GIT binary patch literal 13915 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 literal 0 HcmV?d00001 diff --git a/drivers/zigbee3_device/www/icons/experience_30.png b/drivers/zigbee3_device/www/icons/experience_30.png new file mode 100644 index 0000000000000000000000000000000000000000..2df9dbc6f6da8a671792d2b22f47dc4796183a4b GIT binary patch literal 2024 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 bzi)0ea@n4<8=P?8!hc}$aA=9FNx=UB{S9z# literal 0 HcmV?d00001 diff --git a/drivers/zigbee3_device/www/icons/experience_40.png b/drivers/zigbee3_device/www/icons/experience_40.png new file mode 100644 index 0000000000000000000000000000000000000000..77f98257dd3f18b15bb27925d7d5715a3dd97ec8 GIT binary patch literal 2967 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 Sb-n|BXHR?l%sh4ZU;hU4u+Lfm literal 0 HcmV?d00001 diff --git a/drivers/zigbee3_device/www/icons/experience_60.png b/drivers/zigbee3_device/www/icons/experience_60.png new file mode 100644 index 0000000000000000000000000000000000000000..47e821f6946db059c48b74ca6cec583e49e81023 GIT binary patch literal 5017 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 literal 0 HcmV?d00001 diff --git a/drivers/zigbee3_device/www/icons/experience_70.png b/drivers/zigbee3_device/www/icons/experience_70.png new file mode 100644 index 0000000000000000000000000000000000000000..0f6cb77983b869a59c4cad65088fb4b2bb9449af GIT binary patch literal 5997 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 literal 0 HcmV?d00001 diff --git a/drivers/zigbee3_device/www/icons/experience_90.png b/drivers/zigbee3_device/www/icons/experience_90.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd74c280764f687499f71aa50db9333d36df85b GIT binary patch literal 8526 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 IM6N<$g0TcOB>(^b literal 0 HcmV?d00001 diff --git a/drivers/zigbee3_light/driver.c4zproj b/drivers/zigbee3_light/driver.c4zproj new file mode 100644 index 0000000..2cb3160 --- /dev/null +++ b/drivers/zigbee3_light/driver.c4zproj @@ -0,0 +1,7 @@ + + + + + + + diff --git a/drivers/zigbee3_light/driver.lua b/drivers/zigbee3_light/driver.lua new file mode 100644 index 0000000..845c859 --- /dev/null +++ b/drivers/zigbee3_light/driver.lua @@ -0,0 +1,2454 @@ +--#ifdef DRIVERCENTRAL +DC_PID = 0 -- TODO: assign DriverCentral product id +DC_X = nil +DC_FILENAME = "zigbee3_light.c4z" +--#endif +require("lib.utils") +require("drivers-common-public.global.handlers") +require("drivers-common-public.global.lib") +require("drivers-common-public.global.timer") + +JSON = require("JSON") + +local log = require("lib.logging") +local persist = require("lib.persist") +local constants = require("constants") + +local LightProto = require("zigbee3.light_protocol") + +--------------------------------------------------------------------------- +-- Bindings +--------------------------------------------------------------------------- + +local ON_BINDING = 300 +local TOGGLE_BINDING = 301 +local OFF_BINDING = 302 +local PROXY_BINDING = 5001 +local DEVICE_BINDING = 5002 + +--------------------------------------------------------------------------- +-- the device color modes that include brightness control +--------------------------------------------------------------------------- + +--- @type table +local COLOR_MODES_SUPPORTING_BRIGHTNESS = { + [LightProto.ColorMode.COLOR_MODE_UNKNOWN] = false, + [LightProto.ColorMode.COLOR_MODE_ON_OFF] = false, + [LightProto.ColorMode.COLOR_MODE_LEGACY_BRIGHTNESS] = true, + [LightProto.ColorMode.COLOR_MODE_BRIGHTNESS] = true, + [LightProto.ColorMode.COLOR_MODE_WHITE] = true, + [LightProto.ColorMode.COLOR_MODE_COLOR_TEMPERATURE] = true, + [LightProto.ColorMode.COLOR_MODE_COLD_WARM_WHITE] = true, + [LightProto.ColorMode.COLOR_MODE_RGB] = true, + [LightProto.ColorMode.COLOR_MODE_RGB_WHITE] = true, + [LightProto.ColorMode.COLOR_MODE_RGB_COLOR_TEMPERATURE] = true, + [LightProto.ColorMode.COLOR_MODE_RGB_COLD_WARM_WHITE] = true, +} + +--- @type table +local COLOR_MODES_SUPPORTING_RGB = { + [LightProto.ColorMode.COLOR_MODE_RGB] = true, + [LightProto.ColorMode.COLOR_MODE_RGB_WHITE] = true, + [LightProto.ColorMode.COLOR_MODE_RGB_COLOR_TEMPERATURE] = true, + [LightProto.ColorMode.COLOR_MODE_RGB_COLD_WARM_WHITE] = true, +} + +--- @type table +local COLOR_MODES_SUPPORTING_CCT = { + [LightProto.ColorMode.COLOR_MODE_COLOR_TEMPERATURE] = true, + [LightProto.ColorMode.COLOR_MODE_COLD_WARM_WHITE] = true, + [LightProto.ColorMode.COLOR_MODE_RGB_COLOR_TEMPERATURE] = true, + [LightProto.ColorMode.COLOR_MODE_RGB_COLD_WARM_WHITE] = true, +} + +--------------------------------------------------------------------------- +-- Persist keys and defaults +--------------------------------------------------------------------------- + +local P_PRESET_LEVEL = "preset_level" +local P_CLICK_RATE_UP = "click_rate_up" +local P_CLICK_RATE_DOWN = "click_rate_down" +local P_HOLD_RATE_UP = "hold_rate_up" +local P_HOLD_RATE_DOWN = "hold_rate_down" +local P_RATE_DEFAULT = "brightness_rate_default" +local P_COLOR_RATE_DEFAULT = "color_rate_default" +local P_ON_MODE = "brightness_on_mode" +local P_BUTTON_COLORS = "button_colors" +local P_SCENES = "scenes" +local P_MAX_ON_LEVEL = "max_on_level" +local P_MIN_ON_LEVEL = "min_on_level" +local P_BRIGHTNESS_PRESETS = "brightness_presets" +local P_COLOR_PRESETS = "color_presets" +local P_COLOR_ON_MODE = "color_on_mode" +local P_PREVIOUS_COLOR = "previous_color" +local P_BRIGHTNESS_ON_MODE_PRESET = "brightness_on_mode_preset" +local P_COLOR_ON_MODE_PRESET = "color_on_mode_preset" + +-- Color on-mode kinds. The proxy assigns presets with these origins/IDs to +-- distinguish dim-to-warm pairs from previous-color tracking. +local COLOR_ON_MODE_NONE = 0 +local COLOR_ON_MODE_FADE = 1 -- Dim-To-Warm +local COLOR_ON_MODE_PREVIOUS = 2 +local COLOR_ON_MODE_PRESET = 3 + +local SCENE_TIMER_PREFIX = "Scene_" +local SCENE_RAMP_TIMER = "SceneRamp" + +local DEFAULT_PRESET_LEVEL = 100 +local DEFAULT_CLICK_RATE = 500 +local DEFAULT_HOLD_RATE = 3000 +local DEFAULT_RATE = 500 + +local LIGHT_COLOR_MODE_FULL = 0 +local LIGHT_COLOR_MODE_CCT = 1 + +-- D65 whitepoint, used as a sane chromaticity default before any state is known +local DEFAULT_COLOR_X = 0.3127 +local DEFAULT_COLOR_Y = 0.3290 + +--------------------------------------------------------------------------- +-- State +--------------------------------------------------------------------------- + +local ENTITY +local STATE +local currentBrightness = 0 +local ledState = false +local supportsDimming = false +local supportsColor = false +local supportsCCT = false +-- The bulb's supported_color_modes from ListEntitiesLightResponse. We pick +-- the most specific mode per cmd intent (CCT vs RGB) and set color_mode +-- explicitly so the device doesn't have to infer from which fields we populate. +local supportedColorModes = {} +local minMireds = 153 -- ~6500K (cool) +local maxMireds = 500 -- ~2000K (warm) +local currentColorX = DEFAULT_COLOR_X +local currentColorY = DEFAULT_COLOR_Y +local currentColorMode = LIGHT_COLOR_MODE_CCT +local dynamicCapsSent = false + +-- The driver owns brightness/color state during a ramp. the device echoes +-- intermediate brightness values during a transition (one echo per command +-- received - they confirm the target of each command). We delegate the +-- physical ramp to the device's native transition_length and track ramp metadata +-- locally for STOP-mid-ramp interpolation via C4:GetTime() (ms precision). +local rampingBrightness = false +local rampingColor = false + +-- Ramp metadata: { startTime, startLevel, targetLevel, durationMs }. Cleared +-- when no ramp is in flight. +local brightnessRamp = nil +local colorRamp = nil + +-- Snapshot of brightness captured when BUTTON_ACTION PRESS arrives. The proxy +-- sends PRESS on button-down and decides click vs hold ~110ms later. By the +-- time a RELEASE_CLICK arrives, our hold ramp may have stepped 1-2%; on click +-- we restore to this snapshot before running the click ramp so a brief hold +-- step never inverts the click outcome. +local prePressBrightness = nil + +-- Set to true once a SET_COLOR_TARGET arrives during a single on-cycle. While +-- true, color_on_mode_fade does not recompute color from the brightness +-- formula. Cleared whenever brightness reaches 0 (the next on cycle is fresh +-- and should follow the formula again). +local fadeOverride = false + +-- LIGHT_BRIGHTNESS_TARGET_PRESET_ID from the proxy (Daylight Agent integration, +-- spec _2.1). Echoed back as LIGHT_BRIGHTNESS_CURRENT_PRESET_ID on subsequent +-- LIGHT_BRIGHTNESS_CHANGED so the proxy knows the active preset still owns the +-- current level. Cleared by SET_LEVEL / button presses / scene steps that +-- aren't preset-driven. +local currentBrightnessPresetId = nil + +-- LIGHT_COLOR_TARGET_PRESET_ID counterpart (spec _3.1). +local currentColorPresetId = nil + +--------------------------------------------------------------------------- +-- Driver lifecycle +--------------------------------------------------------------------------- + +function OnDriverInit() + --#ifdef DRIVERCENTRAL + require("cloud-client-byte") + C4:AllowExecute(false) + --#else + C4:AllowExecute(true) + --#endif + gInitialized = false + log:setLogName(C4:GetDeviceData(C4:GetDeviceID(), "name")) + log:setLogLevel(Properties["Log Level"]) + log:setLogMode(Properties["Log Mode"]) + log:trace("OnDriverInit()") +end + +function OnDriverLateInit() + log:trace("OnDriverLateInit()") + if not CheckMinimumVersion("Driver Status") then + return + end + + -- Fire OnPropertyChanged to set the initial Headers and other Property + -- global sets, they'll change if Property is changed. + for p, _ in pairs(Properties) do + local status, err = pcall(OnPropertyChanged, p) + if not status and err then + log:error("Error in OnPropertyChanged for property '%s': %s", p, err or "unknown error") + end + end + + gInitialized = true + UpdateProperty("Driver Status", "Disconnected") + SendToProxy(PROXY_BINDING, "ONLINE_CHANGED", { STATE = false }, "NOTIFY") + SendToProxy(DEVICE_BINDING, "REFRESH_STATE", {}, "NOTIFY") +end + +--------------------------------------------------------------------------- +-- Property handlers +--------------------------------------------------------------------------- + +function OPC.Driver_Status(propertyValue) + log:trace("OPC.Driver_Status('%s')", propertyValue) + if not gInitialized then + UpdateProperty("Driver Status", "Initializing", false) + return + end +end + +function OPC.Driver_Version(propertyValue) + log:trace("OPC.Driver_Version('%s')", propertyValue) + C4:UpdateProperty("Driver Version", C4:GetDriverConfigInfo("version")) +end + +function OPC.Log_Mode(propertyValue) + log:trace("OPC.Log_Mode('%s')", propertyValue) + log:setLogMode(propertyValue) + CancelTimer("LogMode") + if not log:isEnabled() then + UpdateProperty("Log Level", "3 - Info", true) + return + end + log:warn("Log mode '%s' will expire in 3 hours", propertyValue) + SetTimer("LogMode", 3 * ONE_HOUR, function() + log:warn("Setting log mode to 'Off' (timer expired)") + UpdateProperty("Log Mode", "Off", true) + end) + OnPropertyChanged("Log Level") +end + +function OPC.Log_Level(propertyValue) + log:trace("OPC.Log_Level('%s')", propertyValue) + log:setLogLevel(propertyValue) + if log:getLogLevel() >= 6 and log:isPrintEnabled() then + DEBUGPRINT = true + DEBUG_TIMER = true + DEBUG_RFN = true + DEBUG_URL = true + DEBUG_WEBSOCKET = true + else + DEBUGPRINT = false + DEBUG_TIMER = false + DEBUG_RFN = false + DEBUG_URL = false + DEBUG_WEBSOCKET = false + end +end + +--------------------------------------------------------------------------- +-- Helpers: entity capabilities +--------------------------------------------------------------------------- + +local function entitySupportsAnyMode(entity, modeTable) + local modes = Select(entity, "supported_color_modes") + if not IsList(modes) then + return false + end + for _, mode in ipairs(modes) do + if modeTable[mode] then + return true + end + end + return false +end + +local function entitySupportsBrightness(entity) + return entitySupportsAnyMode(entity, COLOR_MODES_SUPPORTING_BRIGHTNESS) +end + +local function entitySupportsColor(entity) + return entitySupportsAnyMode(entity, COLOR_MODES_SUPPORTING_RGB) +end + +local function entitySupportsCCT(entity) + return entitySupportsAnyMode(entity, COLOR_MODES_SUPPORTING_CCT) +end + +local function miredsToKelvin(m) + if not m or m <= 0 then + return 0 + end + return math.floor(1e6 / m + 0.5) +end + +local function kelvinToMireds(k) + if not k or k <= 0 then + return 0 + end + return 1e6 / k +end + +local function updateDynamicCapabilities(entity) + if dynamicCapsSent then + return + end + supportsDimming = entitySupportsBrightness(entity) + supportsColor = entitySupportsColor(entity) + supportsCCT = entitySupportsCCT(entity) + supportedColorModes = {} + local modes = Select(entity, "supported_color_modes") + if IsList(modes) then + for _, m in ipairs(modes) do + supportedColorModes[m] = true + end + end + -- Some the device entities report 0/0 for mireds. Keep our XML defaults in that case + -- so Composer's dialog doesn't get broken bounds. + local entityMin = tonumber(Select(entity, "min_mireds")) + local entityMax = tonumber(Select(entity, "max_mireds")) + if entityMin and entityMin > 0 then + minMireds = entityMin + end + if entityMax and entityMax > 0 then + maxMireds = entityMax + end + + log:info( + "Entity caps: brightness=%s color=%s cct=%s mireds=[%.1f, %.1f]", + tostring(supportsDimming), + tostring(supportsColor), + tostring(supportsCCT), + minMireds, + maxMireds + ) + + -- Emit the FULL set of dynamic capabilities (everything spec'd as + -- "Dynamic Capability: Yes" in the LIGHT_V2 cap docs, plus dynamic-only + -- caps from DYNAMIC_CAPABILITIES_CHANGED). Composer reads these at + -- runtime to gate UI elements; the static driver.xml values are only + -- the design-time defaults. Emitting the full set ensures Navigators + -- and Composer test panels reflect the actual bulb's capabilities. + local caps = { + -- Brightness/dimmer + dimmer = supportsDimming, + set_level = supportsDimming, + supports_target = supportsDimming, + supports_brightness_stop = supportsDimming, + ramp_level = supportsDimming, -- legacy 3.2-era cap; still gates test panel Ramp button + has_fixed_ramp_rate = false, + fixed_ramp_rate = 0, + brightness_rate_min = 0, + brightness_rate_max = 65535, + -- Color + supports_color = supportsColor, + supports_color_correlated_temperature = supportsCCT, + -- Misc + has_extras = false, + cold_start = false, + color_trace_tolerance = 2, -- xy round-trip through HSV/RGB drifts ~1; use 2 for margin + } + if supportsCCT then + -- CIE mireds invert vs Kelvin, so swap min/max during conversion. + caps.color_correlated_temperature_min = miredsToKelvin(maxMireds) + caps.color_correlated_temperature_max = miredsToKelvin(minMireds) + end + if supportsColor or supportsCCT then + caps.color_rate_behavior = 1 -- the device's transition_length applies to all aspects equally + caps.color_rate_min = 0 + caps.color_rate_max = 65535 + caps.supports_color_stop = true + else + caps.supports_color_stop = false + end + SendToProxy(PROXY_BINDING, "DYNAMIC_CAPABILITIES_CHANGED", caps, "NOTIFY", true) + + -- Tell the proxy we have three virtual buttons (top/bottom/toggle). Sent as + -- a string per the LIGHT_V2 NUMBER_BUTTONS notify format. Then emit a + -- BUTTON_INFO for each so Composer's GET_SETUP can populate names. + SendToProxy(PROXY_BINDING, "NUMBER_BUTTONS", "3", "NOTIFY") + local buttonNames = { + [constants.ButtonIds.TOP] = "Top", + [constants.ButtonIds.BOTTOM] = "Bottom", + [constants.ButtonIds.TOGGLE] = "Toggle", + } + for buttonId, name in pairs(buttonNames) do + local colors = persist:get(P_BUTTON_COLORS) or {} + local saved = colors[tostring(buttonId)] or {} + SendToProxy(PROXY_BINDING, "BUTTON_INFO", { + BUTTON_ID = buttonId, + NAME = name, + ON_COLOR = saved.on_color or "", + OFF_COLOR = saved.off_color or "", + }, "NOTIFY") + end + + -- Re-emit the persisted preset level so the proxy is seeded after a reload. + local presetLevel = tointeger(persist:get(P_PRESET_LEVEL)) + if presetLevel and presetLevel > 0 then + SendToProxy(PROXY_BINDING, "PRESET_LEVEL", tostring(presetLevel), "NOTIFY") + end + + -- Set last so a mid-function error retries on the next UPDATE_STATE rather + -- than leaving the proxy with a half-applied capability set. + dynamicCapsSent = true +end + +--------------------------------------------------------------------------- +-- Helpers: color conversions +--------------------------------------------------------------------------- + +-- HSV (h: 0-360, s: 0-100, v: 0-100) -> normalized RGB (each 0-1) +local function hsvToRGB(h, s, v) + local sf, vf = (s or 0) / 100, (v or 0) / 100 + local c = vf * sf + local hh = ((h or 0) / 60) % 6 + local x = c * (1 - math.abs((hh % 2) - 1)) + local m = vf - c + local r, g, b = 0, 0, 0 + if hh < 1 then + r, g, b = c, x, 0 + elseif hh < 2 then + r, g, b = x, c, 0 + elseif hh < 3 then + r, g, b = 0, c, x + elseif hh < 4 then + r, g, b = 0, x, c + elseif hh < 5 then + r, g, b = x, 0, c + else + r, g, b = c, 0, x + end + return r + m, g + m, b + m +end + +-- normalized RGB (0-1) -> HSV (h: 0-360, s: 0-100, v: 0-100) +local function rgbToHSV(r, g, b) + r, g, b = r or 0, g or 0, b or 0 + local mx = math.max(r, g, b) + local mn = math.min(r, g, b) + local d = mx - mn + local h = 0 + if d > 0 then + if mx == r then + h = 60 * (((g - b) / d) % 6) + elseif mx == g then + h = 60 * ((b - r) / d + 2) + else + h = 60 * ((r - g) / d + 4) + end + end + if h < 0 then + h = h + 360 + end + local s = mx > 0 and (d / mx) * 100 or 0 + return h, s, mx * 100 +end + +-- CIE 1931 xy chromaticity -> normalized RGB at full intensity. +-- Brightness is handled separately via the LIGHT_V2 brightness path. +local function xyToRGB(x, y) + local h, s = C4:ColorXYtoHSV(x, y) + local r, g, b = hsvToRGB(h or 0, s or 100, 100) + return r, g, b +end + +--------------------------------------------------------------------------- +-- Helpers: persistence +--------------------------------------------------------------------------- + +-- Clamp the persisted preset to a usable on-level. The proxy may send 0 via +-- SET_PRESET_LEVEL during testing; treat anything < 1 as "use the default" so +-- a tap of On/Toggle doesn't end up turning the light off. +local function getPresetLevel() + local v = tointeger(persist:get(P_PRESET_LEVEL)) + if not v or v < 1 then + return DEFAULT_PRESET_LEVEL + end + return math.min(v, 100) +end + +local function getOnBrightness() + local onMode = persist:get(P_ON_MODE) + local level = onMode and tointeger(onMode.level) + if level and level >= 1 then + return math.min(level, 100) + end + return getPresetLevel() +end + +local function getDefaultRate() + return persist:get(P_RATE_DEFAULT, DEFAULT_RATE) +end + +-- the device's transition_length applies to all aspects of a light_command +-- (brightness, color, color temperature) at the same time, so we declare +-- color_rate_behavior=1 ("Device only supports one rate for brightness and +-- color"). Composer in turn shows a single "Default Brightness and Color +-- Rate" setting; the brightness and color defaults are the same value. If +-- nothing has been persisted yet for color we fall back to the brightness +-- default rather than the hard-coded constant so the two can never drift. +local function getDefaultColorRate() + local colorRate = persist:get(P_COLOR_RATE_DEFAULT) + if colorRate ~= nil then + return colorRate + end + return getDefaultRate() +end + +local function getClickRateUp() + return persist:get(P_CLICK_RATE_UP, DEFAULT_CLICK_RATE) +end + +local function getClickRateDown() + return persist:get(P_CLICK_RATE_DOWN, DEFAULT_CLICK_RATE) +end + +local function getHoldRateUp() + return persist:get(P_HOLD_RATE_UP, DEFAULT_HOLD_RATE) +end + +local function getHoldRateDown() + return persist:get(P_HOLD_RATE_DOWN, DEFAULT_HOLD_RATE) +end + +local function getButtonColors(buttonId) + local colors = persist:get(P_BUTTON_COLORS, {}) + local key = tostring(buttonId) + if colors[key] then + return colors[key].on_color or "0000ff", colors[key].off_color or "000000" + end + return "0000ff", "000000" +end + +local function setButtonColors(buttonId, onColor, offColor) + local colors = persist:get(P_BUTTON_COLORS, {}) + local key = tostring(buttonId) + local existing = colors[key] or {} + colors[key] = { + on_color = onColor or existing.on_color or "0000ff", + off_color = offColor or existing.off_color or "000000", + } + persist:set(P_BUTTON_COLORS, colors) +end + +--------------------------------------------------------------------------- +-- Helpers: the device light commands +--------------------------------------------------------------------------- + +local function sendLightCommand(opts) + log:debug("sendLightCommand(%s)", opts) + SendToProxy(DEVICE_BINDING, "ENTITY_COMMAND", { + body = SerializeSafe(opts), + }) +end + +-- Pick the most specific the device color mode the bulb supports for a given +-- intent ("cct" or "rgb"). Order matters: prefer single-purpose modes (RGB, +-- COLD_WARM_WHITE) over combined modes (RGB_COLOR_TEMPERATURE, +-- RGB_COLD_WARM_WHITE) because the bulb's behavior in single-purpose modes +-- is unambiguous. Returns nil if no compatible mode is supported. +local function pickColorMode(intent) + local CM = LightProto.ColorMode + local order + if intent == "cct" then + order = { + CM.COLOR_MODE_COLD_WARM_WHITE, + CM.COLOR_MODE_COLOR_TEMPERATURE, + CM.COLOR_MODE_RGB_COLD_WARM_WHITE, + CM.COLOR_MODE_RGB_COLOR_TEMPERATURE, + } + else + order = { + CM.COLOR_MODE_RGB, + CM.COLOR_MODE_RGB_WHITE, + CM.COLOR_MODE_RGB_COLOR_TEMPERATURE, + CM.COLOR_MODE_RGB_COLD_WARM_WHITE, + } + end + for _, m in ipairs(order) do + if supportedColorModes[m] then + return m + end + end + return nil +end + +-- Map a target Kelvin to a (cold_white, warm_white) channel split based on +-- the bulb's reported mireds range. Pure cold = (1, 0) at min_mireds; pure +-- warm = (0, 1) at max_mireds; linear blend between. Returned values are 0-1 +-- floats matching the device's per-channel scale. +local function kelvinToCoolWarmSplit(kelvin) + local mireds = kelvinToMireds(kelvin) + local span = maxMireds - minMireds + if span <= 0 then + return 0.5, 0.5 + end + local ratio = math.max(0, math.min(1, (mireds - minMireds) / span)) + return 1 - ratio, ratio +end + +-- Convert an XY/mode color into the right the device cmd fields. Returns the +-- partial cmd table or nil if the bulb doesn't support color/CCT or the +-- provided values can't be mapped. +local function buildColorCmdFields(x, y, mode) + if not (supportsColor or supportsCCT) or x == nil or y == nil then + return nil + end + if mode == LIGHT_COLOR_MODE_CCT and supportsCCT then + local k = tonumber(C4:ColorXYtoCCT(x, y)) + if not k or k <= 0 then + return nil + end + local fields = { + has_color_temperature = true, + color_temperature = kelvinToMireds(k), + } + -- Set color_mode explicitly so the device doesn't have to infer. + local pickedMode = pickColorMode("cct") + if pickedMode then + fields.has_color_mode = true + fields.color_mode = pickedMode + end + -- For RGBCW / cold-warm-white capable bulbs, also drive the cold/warm + -- channels directly. the device would compute these internally from + -- color_temperature, but sending them ourselves removes ambiguity in + -- min_mireds/max_mireds reading and keeps the channel split exactly + -- where we expect it. + local CM = LightProto.ColorMode + if supportedColorModes[CM.COLOR_MODE_COLD_WARM_WHITE] or supportedColorModes[CM.COLOR_MODE_RGB_COLD_WARM_WHITE] then + local cw, ww = kelvinToCoolWarmSplit(k) + fields.has_cold_white = true + fields.cold_white = cw + fields.has_warm_white = true + fields.warm_white = ww + end + return fields + end + if supportsColor then + local r, g, b = xyToRGB(x, y) + local fields = { has_rgb = true, red = r, green = g, blue = b } + local pickedMode = pickColorMode("rgb") + if pickedMode then + fields.has_color_mode = true + fields.color_mode = pickedMode + end + return fields + end + return nil +end + +-- Apply the dim-to-warm formula from spec _7.2: +-- colorFinal.x = colorDim.x + (colorOn.x - colorDim.x) * brightness*.01 +-- colorFinal.y = colorDim.y + (colorOn.y - colorDim.y) * brightness*.01 +-- The "On" color is the color at 100%, "Dim" is the color at 1%. We get +-- both via UPDATE_COLOR_ON_MODE (onPreset = on color, fadePreset = dim +-- color). Returns nil if either color is missing or fade mode isn't active. +local function computeFadeColor(brightness) + local mode = persist:get(P_COLOR_ON_MODE) + if not mode then + return nil + end + local onPreset = mode.onPreset + local dimPreset = mode.fadePreset + if not onPreset or not dimPreset then + return nil + end + if onPreset.x == nil or onPreset.y == nil or dimPreset.x == nil or dimPreset.y == nil then + return nil + end + local b = math.max(0, math.min(100, brightness)) * 0.01 + return { + x = dimPreset.x + (onPreset.x - dimPreset.x) * b, + y = dimPreset.y + (onPreset.y - dimPreset.y) * b, + mode = onPreset.mode or LIGHT_COLOR_MODE_FULL, + } +end + +-- Determine which color on-mode is currently active. Returns one of +-- COLOR_ON_MODE_* constants. +local function getColorOnModeKind() + if not (supportsColor or supportsCCT) then + return COLOR_ON_MODE_NONE + end + local mode = persist:get(P_COLOR_ON_MODE) + if not mode or not mode.fadePreset then + return COLOR_ON_MODE_NONE + end + local fadeOrigin = mode.fadePreset.origin + if fadeOrigin and fadeOrigin > 0 then + -- Origin > 0 indicates fade is enabled (spec _21: origin 1=device, 2=agent). + return COLOR_ON_MODE_FADE + end + -- If no fade is configured but we have a stored previous color, treat as + -- previous mode. + if persist:get(P_PREVIOUS_COLOR) then + return COLOR_ON_MODE_PREVIOUS + end + if mode.onPreset and mode.onPreset.x then + return COLOR_ON_MODE_PRESET + end + return COLOR_ON_MODE_NONE +end + +-- The bulb is "logically on" if either we already think it's on or a ramp +-- is in flight targeting an on-state. Used so a SET_COLOR_TARGET arriving +-- mid-ramp from off→on doesn't send state=false (which kills the brightness +-- fade by reverting the bulb to off). +local function isLogicallyOn() + if rampingBrightness and brightnessRamp and (brightnessRamp.targetLevel or 0) > 0 then + return true + end + return currentBrightness > 0 +end + +-- Determine the on-color to use when transitioning from off to on, based on +-- the active color on-mode. Returns {x, y, mode} or nil. +local function resolveOnColor(brightnessLevel) + if not (supportsColor or supportsCCT) then + return nil + end + local kind = getColorOnModeKind() + if kind == COLOR_ON_MODE_FADE and not fadeOverride then + return computeFadeColor(brightnessLevel) + end + if kind == COLOR_ON_MODE_PREVIOUS then + local prev = persist:get(P_PREVIOUS_COLOR) + if prev and prev.x and prev.y then + return { x = prev.x, y = prev.y, mode = prev.mode or LIGHT_COLOR_MODE_FULL } + end + end + if kind == COLOR_ON_MODE_PRESET then + local mode = persist:get(P_COLOR_ON_MODE) + local onPreset = mode and mode.onPreset + if onPreset and onPreset.x and onPreset.y then + return { x = onPreset.x, y = onPreset.y, mode = onPreset.mode or LIGHT_COLOR_MODE_FULL } + end + end + return nil +end + +-- Tracks a recent off→on cmd that already carried the on-color. The proxy +-- typically follows a SET_BRIGHTNESS_TARGET with a SET_COLOR_TARGET that +-- carries the same color it already set in our brightness cmd; we use this +-- timestamp to deduplicate and avoid sending a redundant the device cmd that +-- would otherwise restart the in-flight transition. +local mergedColorUntil = 0 + +--------------------------------------------------------------------------- +-- Helpers: brightness notifications +--------------------------------------------------------------------------- + +local function notifyBrightnessChanged(level) + -- Snapshot the current color before the light goes off so color_on_mode_ + -- previous can restore it on the next on. Spec _7.4: "the proxy tracks the + -- last color reported by a driver before a BRIGHTNESS_CHANGED notification + -- occurs with a level of 0." We mirror that locally for non-proxy paths. + if level == 0 and currentBrightness > 0 then + persist:set(P_PREVIOUS_COLOR, { + x = currentColorX, + y = currentColorY, + mode = currentColorMode, + }) + -- A new on cycle is fresh: clear any prior dim-to-warm override so the + -- formula is re-applied next time the light turns on. Also drop any + -- color preset id; whatever drove the previous on-cycle's color no + -- longer applies after the light returns to off. + fadeOverride = false + currentColorPresetId = nil + end + currentBrightness = level + log:debug("LIGHT_BRIGHTNESS_CHANGED: %s", level) + -- Echo back the preset id from the most recent SET_BRIGHTNESS_TARGET so the + -- proxy / Daylight Agent (spec _10.2 / _2.1) knows the active preset still + -- owns the current level. Nil keys are dropped from the table at construct + -- time, so this is equivalent to omitting the field when no preset is set. + SendToProxy(PROXY_BINDING, "LIGHT_BRIGHTNESS_CHANGED", { + LIGHT_BRIGHTNESS_CURRENT = level, + LIGHT_BRIGHTNESS_CURRENT_PRESET_ID = currentBrightnessPresetId, + }, "NOTIFY") + local newLedState = level > 0 + if newLedState ~= ledState then + ledState = newLedState + -- MATCH_LED_STATE goes to each BUTTON_LINK binding (the keypad button + -- LEDs), not to the LIGHT_V2 proxy binding. STATE is a Lua boolean per + -- spec. Bottom is inverted: its LED lights when the light is OFF. + SendToProxy(ON_BINDING, "MATCH_LED_STATE", { STATE = newLedState }, "NOTIFY", true) + SendToProxy(OFF_BINDING, "MATCH_LED_STATE", { STATE = not newLedState }, "NOTIFY", true) + SendToProxy(TOGGLE_BINDING, "MATCH_LED_STATE", { STATE = newLedState }, "NOTIFY", true) + end +end + +local function notifyBrightnessChanging(target, rate) + log:debug("LIGHT_BRIGHTNESS_CHANGING: target=%s rate=%s", target, rate) + SendToProxy(PROXY_BINDING, "LIGHT_BRIGHTNESS_CHANGING", { + LIGHT_BRIGHTNESS_CURRENT = currentBrightness, + LIGHT_BRIGHTNESS_TARGET = target, + RATE = rate, + LIGHT_BRIGHTNESS_TARGET_PRESET_ID = currentBrightnessPresetId, + }, "NOTIFY", true) +end + +--------------------------------------------------------------------------- +-- Helpers: color notifications +--------------------------------------------------------------------------- + +local function notifyColorChanged(x, y, mode) + currentColorX = x + currentColorY = y + currentColorMode = mode + log:debug("LIGHT_COLOR_CHANGED: x=%.4f y=%.4f mode=%s", x, y, mode) + SendToProxy(PROXY_BINDING, "LIGHT_COLOR_CHANGED", { + LIGHT_COLOR_CURRENT_X = x, + LIGHT_COLOR_CURRENT_Y = y, + LIGHT_COLOR_CURRENT_COLOR_MODE = mode, + LIGHT_COLOR_CURRENT_PRESET_ID = currentColorPresetId, + }, "NOTIFY") +end + +local function notifyColorChanging(targetX, targetY, mode, rate) + log:debug("LIGHT_COLOR_CHANGING: x=%.4f y=%.4f mode=%s rate=%s", targetX, targetY, mode, rate) + SendToProxy(PROXY_BINDING, "LIGHT_COLOR_CHANGING", { + LIGHT_COLOR_CURRENT_X = currentColorX, + LIGHT_COLOR_CURRENT_Y = currentColorY, + LIGHT_COLOR_CURRENT_COLOR_MODE = currentColorMode, + LIGHT_COLOR_TARGET_X = targetX, + LIGHT_COLOR_TARGET_Y = targetY, + LIGHT_COLOR_TARGET_COLOR_MODE = mode, + -- Spec _10.7 names this LIGHT_COLOR_TARGET_COLOR_RATE; some older docs + -- and helper code use LIGHT_COLOR_TARGET_RATE so we send both for safety. + LIGHT_COLOR_TARGET_COLOR_RATE = rate, + LIGHT_COLOR_TARGET_RATE = rate, + LIGHT_COLOR_TARGET_PRESET_ID = currentColorPresetId, + }, "NOTIFY", true) +end + +-- Caller contract: only invoked when supportsDimming is true (lightOn/Off, +-- rampToBrightness, scene apply, etc. all gate on it). On/off-only entities +-- get a different code path that doesn't touch brightness. +local function setDeviceBrightness(level, rateMs) + local hasRate = rateMs and rateMs > 0 + local goingOn = level > 0 and currentBrightness == 0 + + -- Two-phase fade-up workaround. the device's light_call short-circuits on + -- state=false: brightness=0 in the same command is dropped, so the bulb's + -- stored brightness stays at whatever it was last set to (often 1.0). + -- When we then send state=true brightness=target with transition_length, + -- the device sees no brightness diff and the LED snaps on instead of fading. + -- Pre-pushing a state=true brightness=ε with transition=0 sets the stored + -- brightness to ~0 so the real ramp has a real diff to interpolate across. + -- 0.0039 = 1/256 — the smallest 8-bit PWM step, visually indistinguishable + -- from off. Using literal 0 risks the device converting state=true brightness=0 + -- back into state=false. + if goingOn and hasRate then + sendLightCommand({ + has_state = true, + state = true, + has_brightness = true, + brightness = 0.0039, + has_transition_length = true, + transition_length = 0, + }) + end + + -- Always include both state AND brightness in the command. The brightness + -- field is dropped by the device when state=false (see workaround above), but + -- including it for state=true is essential for the transition. + local cmd = { + has_state = true, + state = level > 0, + has_brightness = true, + brightness = (level > 0) and (level / 100.0) or 0, + has_transition_length = true, + -- A rate of 0 still gets sent so it cancels any in-flight transition on + -- the device rather than falling back to its default_transition_length. + transition_length = hasRate and rateMs or 0, + } + + -- Merge color into the brightness cmd so brightness+color animate as one + -- the device transition. Two scenarios: + -- 1. Dim-to-warm during any brightness change while fade mode is active + -- and not overridden — recompute via the formula every step. + -- 2. Off→on with any color on-mode (fade/previous/preset) — apply the + -- configured on-color in the same cmd. The proxy will typically also + -- send a SET_COLOR_TARGET right after this; mergedColorUntil makes + -- the SET_COLOR_TARGET handler skip a redundant the device cmd that + -- would otherwise cancel and restart the in-flight transition. + local mergedColor = nil + if level > 0 and not fadeOverride and getColorOnModeKind() == COLOR_ON_MODE_FADE then + mergedColor = computeFadeColor(level) + elseif goingOn then + mergedColor = resolveOnColor(level) + end + local mergedColorApplied = false + if mergedColor then + local colorFields = buildColorCmdFields(mergedColor.x, mergedColor.y, mergedColor.mode) + if colorFields then + for k, v in pairs(colorFields) do + cmd[k] = v + end + currentColorX = mergedColor.x + currentColorY = mergedColor.y + currentColorMode = mergedColor.mode + mergedColorApplied = true + -- Window during which a follow-up SET_COLOR_TARGET targeting the same + -- color is treated as already applied. 250ms covers the proxy's + -- typical inter-cmd gap (~6-50ms) with a margin. + mergedColorUntil = C4:GetTime() + 250 + -- The merged color is computed from on-mode rules (fade/previous/ + -- on-preset), not from an explicit SET_COLOR_TARGET. Clear any + -- lingering target-preset id so we don't echo a stale value. If the + -- proxy follows up with a SET_COLOR_TARGET inside mergedColorUntil, + -- that handler will set the correct id before brightnessRampFinished + -- emits the terminal LIGHT_COLOR_CHANGED. + currentColorPresetId = nil + -- Stash on the ramp metadata so brightnessRampFinished can emit the + -- terminal LIGHT_COLOR_CHANGED when the bulb's combined transition + -- completes. The proxy needs CHANGING (now) + CHANGED (at finish) to + -- keep its color-picker animation in sync. + if brightnessRamp then + brightnessRamp.mergedColor = { + x = mergedColor.x, + y = mergedColor.y, + mode = mergedColor.mode, + } + end + end + end + sendLightCommand(cmd) + -- Emit color CHANGING/CHANGED to mirror the brightness side: the proxy + -- doesn't always issue a SET_COLOR_TARGET (e.g. fade mode drives color + -- from the formula, not from a separate proxy-initiated cmd), so the + -- driver has to push these notifies for the picker to track. + if mergedColorApplied then + if hasRate then + notifyColorChanging(currentColorX, currentColorY, currentColorMode, rateMs) + else + notifyColorChanged(currentColorX, currentColorY, currentColorMode) + end + end +end + +--------------------------------------------------------------------------- +-- Helpers: brightness ramping +--------------------------------------------------------------------------- +-- the device has native transition_length smoothing on the bulb itself. We send +-- a single light_command with the full rate, the device handles the physical +-- ramp, and we track elapsed time locally so SET_BRIGHTNESS_STOP can +-- interpolate the device's current level mid-ramp using C4:GetTime() (ms). +-- +-- the device echoes one UPDATE_STATE per command it receives confirming the +-- target. During a ramp we ignore those echoes (rampingBrightness=true). +-- After the ramp ends we ignore brightness echoes for an additional grace +-- window in case stale echoes from a prior cmd arrive late and would +-- otherwise re-mutate currentBrightness and bounce the UI. + +local function cancelBrightnessRampTimers() + CancelTimer("BrightnessRampFinish") +end + +local function interpolatedBrightness() + if not brightnessRamp or brightnessRamp.durationMs <= 0 then + return currentBrightness + end + local elapsed = C4:GetTime() - brightnessRamp.startTime + if elapsed <= 0 then + return brightnessRamp.startLevel + end + if elapsed >= brightnessRamp.durationMs then + return brightnessRamp.targetLevel + end + local progress = elapsed / brightnessRamp.durationMs + local span = brightnessRamp.targetLevel - brightnessRamp.startLevel + return math.floor(brightnessRamp.startLevel + span * progress + 0.5) +end + +local function brightnessRampFinished(targetLevel) + cancelBrightnessRampTimers() + -- Capture mergedColor before nilling brightnessRamp so we can emit a + -- terminal LIGHT_COLOR_CHANGED for the color that piggybacked on this + -- ramp's transition_length (off→on with a configured on-color). + local mergedColor = brightnessRamp and brightnessRamp.mergedColor + rampingBrightness = false + brightnessRamp = nil + notifyBrightnessChanged(targetLevel) + if mergedColor then + notifyColorChanged(mergedColor.x, mergedColor.y, mergedColor.mode) + end +end + +-- Halt the in-flight the device transition at our interpolated current level. +local function brightnessRampStopped() + cancelBrightnessRampTimers() + if not rampingBrightness then + return + end + local stoppedAt = interpolatedBrightness() + rampingBrightness = false + brightnessRamp = nil + -- Cancel the device's in-flight transition by sending a 0-transition cmd at + -- the interpolated level. The bulb halts here. + setDeviceBrightness(stoppedAt, 0) + currentBrightness = stoppedAt + notifyBrightnessChanged(stoppedAt) +end + +local function rampToBrightness(level, rate, presetId) + level = math.max(0, math.min(100, math.floor((level or 0) + 0.5))) + rate = math.max(0, tointeger(rate) or 0) + + log:debug("rampToBrightness(%s, %s) from %s", level, rate, currentBrightness) + + -- Single source of truth for the active brightness preset id. SET_BRIGHTNESS_ + -- TARGET passes the proxy's id through; everywhere else (buttons, scenes, + -- lightOn, etc.) omits it so the id clears and CHANGED notifies don't echo + -- a stale value to the Daylight Agent. + currentBrightnessPresetId = presetId + + -- If a ramp is already running, snapshot the interpolated current level + -- before starting the new ramp so CHANGING tracks correctly and a future + -- STOP would interpolate from the right starting point. + if rampingBrightness then + currentBrightness = interpolatedBrightness() + end + + cancelBrightnessRampTimers() + rampingBrightness = false + brightnessRamp = nil + + local startingLevel = currentBrightness + if level == startingLevel then + notifyBrightnessChanged(level) + return + end + + if rate == 0 then + setDeviceBrightness(level, 0) + notifyBrightnessChanged(level) + return + end + + rampingBrightness = true + brightnessRamp = { + startTime = C4:GetTime(), + startLevel = startingLevel, + targetLevel = level, + durationMs = rate, + } + -- Single the device command - the bulb handles the physical transition. + setDeviceBrightness(level, rate) + notifyBrightnessChanging(level, rate) + SetTimer("BrightnessRampFinish", rate, function() + -- Belt-and-suspenders: snap state with a 0-transition cmd at target so + -- our state matches the bulb's even if the transition completed slightly + -- before/after our timer. + setDeviceBrightness(level, 0) + currentBrightness = level + brightnessRampFinished(level) + end, false) +end + +--------------------------------------------------------------------------- +-- Helpers: color ramping +--------------------------------------------------------------------------- +-- Same shape as brightness ramping: send a single the device light_command with +-- transition_length = rateMs so the bulb interpolates the physical color, and +-- track the logical color locally via a startTime/duration ramp record. + +local function cancelColorRampTimers() + CancelTimer("ColorRampFinish") +end + +-- Build and send an the device light_command reflecting the given color state. +local function sendColor(x, y, mode, rateMs) + if not (supportsColor or supportsCCT) then + return + end + -- isLogicallyOn so that a SET_COLOR_TARGET arriving mid-ramp from off→on + -- doesn't send state=false (which would cancel the brightness transition). + local cmd = { has_state = true, state = isLogicallyOn() } + if mode == LIGHT_COLOR_MODE_CCT and supportsCCT then + local k = tonumber(C4:ColorXYtoCCT(x, y)) + if k and k > 0 then + cmd.has_color_temperature = true + cmd.color_temperature = kelvinToMireds(k) + end + elseif supportsColor then + local r, g, b = xyToRGB(x, y) + cmd.has_rgb = true + cmd.red = r + cmd.green = g + cmd.blue = b + end + cmd.has_transition_length = true + cmd.transition_length = (rateMs and rateMs > 0) and rateMs or 0 + sendLightCommand(cmd) +end + +local function interpolatedColor() + if not colorRamp or colorRamp.durationMs <= 0 then + return currentColorX, currentColorY, currentColorMode + end + local elapsed = C4:GetTime() - colorRamp.startTime + if elapsed <= 0 then + return colorRamp.startX, colorRamp.startY, colorRamp.targetMode + end + if elapsed >= colorRamp.durationMs then + return colorRamp.targetX, colorRamp.targetY, colorRamp.targetMode + end + local progress = elapsed / colorRamp.durationMs + local x = colorRamp.startX + (colorRamp.targetX - colorRamp.startX) * progress + local y = colorRamp.startY + (colorRamp.targetY - colorRamp.startY) * progress + return x, y, colorRamp.targetMode +end + +local function colorRampFinished(targetX, targetY, targetMode) + cancelColorRampTimers() + rampingColor = false + colorRamp = nil + notifyColorChanged(targetX, targetY, targetMode) +end + +local function colorRampStopped() + cancelColorRampTimers() + if not rampingColor then + return + end + local x, y, mode = interpolatedColor() + rampingColor = false + colorRamp = nil + sendColor(x, y, mode, 0) + currentColorX = x + currentColorY = y + currentColorMode = mode + notifyColorChanged(x, y, mode) +end + +local function rampToColor(targetX, targetY, targetMode, rate) + rate = math.max(0, tointeger(rate) or 0) + + if rampingColor then + local x, y, _ = interpolatedColor() + currentColorX = x + currentColorY = y + end + + cancelColorRampTimers() + rampingColor = false + colorRamp = nil + + if rate == 0 then + currentColorX = targetX + currentColorY = targetY + currentColorMode = targetMode + sendColor(targetX, targetY, targetMode, 0) + notifyColorChanged(targetX, targetY, targetMode) + return + end + + rampingColor = true + colorRamp = { + startTime = C4:GetTime(), + startX = currentColorX, + startY = currentColorY, + targetX = targetX, + targetY = targetY, + targetMode = targetMode, + durationMs = rate, + } + -- Mode change is logically instantaneous; mid-ramp we're interpolating XY. + currentColorMode = targetMode + sendColor(targetX, targetY, targetMode, rate) + notifyColorChanging(targetX, targetY, targetMode, rate) + SetTimer("ColorRampFinish", rate, function() + sendColor(targetX, targetY, targetMode, 0) + currentColorX = targetX + currentColorY = targetY + currentColorMode = targetMode + colorRampFinished(targetX, targetY, targetMode) + end, false) +end + +--------------------------------------------------------------------------- +-- Helpers: on / off / toggle +--------------------------------------------------------------------------- + +local function lightOn(rate) + local level = getOnBrightness() + if not supportsDimming then + sendLightCommand({ has_state = true, state = true }) + notifyBrightnessChanged(100) + return + end + -- color_on_mode_previous/preset/fade are all handled by the merged-color + -- path inside setDeviceBrightness (via resolveOnColor on goingOn) so the + -- color rides on the brightness transition as a single the device cmd. Don't + -- pre-send a separate color cmd here; that would queue two commands and + -- the second would cancel and restart the in-flight transition. + rampToBrightness(level, rate or 0) +end + +local function lightOff(rate) + if supportsDimming then + rampToBrightness(0, rate or 0) + else + sendLightCommand({ has_state = true, state = false }) + notifyBrightnessChanged(0) + end +end + +local function lightToggle(rate) + if currentBrightness > 0 then + lightOff(rate) + else + lightOn(rate) + end +end + +--------------------------------------------------------------------------- +-- RFP: LIGHT_V2 proxy commands +--------------------------------------------------------------------------- + +function RFP.SET_BRIGHTNESS_TARGET(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_BRIGHTNESS_TARGET(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local level = tonumber(Select(tParams, "LIGHT_BRIGHTNESS_TARGET")) or 0 + local rate = tointeger(Select(tParams, "RATE")) or getDefaultRate() + -- spec _2.1: optional LIGHT_BRIGHTNESS_TARGET_PRESET_ID identifies the + -- preset (e.g. Daylight Agent) driving this target. Pass it through so + -- subsequent LIGHT_BRIGHTNESS_CHANGED notifies report it as the current + -- preset id; other rampToBrightness call sites omit it and clear the id. + local presetId = tointeger(Select(tParams, "LIGHT_BRIGHTNESS_TARGET_PRESET_ID")) + rampToBrightness(level, rate, presetId) +end + +function RFP.ON(idBinding, strCommand, tParams, args) + log:trace("RFP.ON(%s, %s)", idBinding, strCommand) + if idBinding ~= PROXY_BINDING then + return + end + lightOn() +end + +function RFP.OFF(idBinding, strCommand, tParams, args) + log:trace("RFP.OFF(%s, %s)", idBinding, strCommand) + if idBinding ~= PROXY_BINDING then + return + end + lightOff() +end + +function RFP.TOGGLE(idBinding, strCommand, tParams, args) + log:trace("RFP.TOGGLE(%s, %s)", idBinding, strCommand) + if idBinding ~= PROXY_BINDING then + return + end + lightToggle() +end + +-- DYNAMIC_ON / DYNAMIC_OFF (spec _1.3 / _1.2): O.S. 3.3.2+ Navigators send +-- these instead of plain ON/OFF for generic on/off interactions, allowing +-- the proxy to apply on-mode behavior (color fade, previous color, etc.). +-- We treat them identically to ON / OFF since lightOn/lightOff already +-- consult on-mode state. +function RFP.DYNAMIC_ON(idBinding, strCommand, tParams, args) + log:trace("RFP.DYNAMIC_ON(%s, %s)", idBinding, strCommand) + if idBinding ~= PROXY_BINDING then + return + end + lightOn() +end + +function RFP.DYNAMIC_OFF(idBinding, strCommand, tParams, args) + log:trace("RFP.DYNAMIC_OFF(%s, %s)", idBinding, strCommand) + if idBinding ~= PROXY_BINDING then + return + end + lightOff() +end + +function RFP.SET_LEVEL(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_LEVEL(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local level = tointeger(Select(tParams, "LEVEL")) or 0 + if supportsDimming then + rampToBrightness(level, 0) + elseif level > 0 then + lightOn() + else + lightOff() + end +end + +-- Legacy command, retained for compatibility with older Composer programming +-- and Alexa Voice Scenes (other LIGHT_V2 drivers carry the same forwarder). +function RFP.RAMP_TO_LEVEL(idBinding, strCommand, tParams, args) + log:trace("RFP.RAMP_TO_LEVEL(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + RFP.SET_BRIGHTNESS_TARGET(idBinding, "SET_BRIGHTNESS_TARGET", { + LIGHT_BRIGHTNESS_TARGET = Select(tParams, "LEVEL"), + RATE = Select(tParams, "TIME"), + }) +end + +function RFP.SET_COLOR_TARGET(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_COLOR_TARGET(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + + local kelvin = tonumber(Select(tParams, "LIGHT_COLOR_TARGET_COLOR_CORRELATED_TEMPERATURE")) + local x = tonumber(Select(tParams, "LIGHT_COLOR_TARGET_X")) + local y = tonumber(Select(tParams, "LIGHT_COLOR_TARGET_Y")) + local incomingMode = tointeger(Select(tParams, "LIGHT_COLOR_TARGET_MODE")) + local rate = tointeger( + Select(tParams, "LIGHT_COLOR_TARGET_COLOR_RATE") + or Select(tParams, "LIGHT_COLOR_TARGET_RATE") + or Select(tParams, "RATE") + ) or getDefaultColorRate() + + -- spec _3.1: if the proxy named a color preset and didn't pass explicit + -- coordinates, look the preset up locally so the bulb still receives + -- concrete values. Track the preset id either way so subsequent + -- LIGHT_COLOR_CHANGED notifies report it as the current preset. + local presetId = tointeger(Select(tParams, "LIGHT_COLOR_TARGET_PRESET_ID")) + if presetId ~= nil and not (x and y) and not (kelvin and kelvin > 0) then + local preset = (persist:get(P_COLOR_PRESETS) or {})[tostring(presetId)] + if preset then + x = preset.x + y = preset.y + incomingMode = preset.mode + else + log:warn("SET_COLOR_TARGET: unknown LIGHT_COLOR_TARGET_PRESET_ID=%s", presetId) + return + end + end + currentColorPresetId = presetId + + local targetX, targetY, targetMode + + if kelvin and kelvin > 0 and supportsCCT then + targetX, targetY = C4:ColorCCTtoXY(kelvin) + targetMode = LIGHT_COLOR_MODE_CCT + elseif incomingMode == LIGHT_COLOR_MODE_CCT and supportsCCT and x and y then + local k = tonumber(C4:ColorXYtoCCT(x, y)) + if not k or k <= 0 then + log:warn("SET_COLOR_TARGET: ColorXYtoCCT(%s, %s) returned %s", x, y, tostring(k)) + return + end + targetX, targetY, targetMode = x, y, LIGHT_COLOR_MODE_CCT + elseif x and y and supportsColor then + targetX, targetY, targetMode = x, y, LIGHT_COLOR_MODE_FULL + else + log:warn( + "SET_COLOR_TARGET ignored (kelvin=%s x=%s y=%s mode=%s color=%s cct=%s)", + tostring(kelvin), + tostring(x), + tostring(y), + tostring(incomingMode), + tostring(supportsColor), + tostring(supportsCCT) + ) + return + end + + -- Spec _7.2: any explicit SET_COLOR_TARGET while in fade mode disables the + -- formula until the next off→on cycle. We track this so subsequent + -- SET_BRIGHTNESS_TARGET commands during the same on cycle don't re-apply + -- dim-to-warm. + if currentBrightness > 0 then + fadeOverride = true + end + + -- Skip the device cmd if a SET_BRIGHTNESS_TARGET right before us already + -- merged this color into the brightness ramp cmd. Otherwise we'd send a + -- second cmd to the device that cancels and restarts the in-flight transition, + -- making the brightness fade-up snap visually. The earlier merged-color + -- path already emitted notifyColorChanging, and brightnessRampFinished + -- will emit notifyColorChanged when the ramp completes - so there is + -- nothing to notify here, just suppress the redundant the device cmd. + local now = C4:GetTime() + if now < mergedColorUntil and rampingBrightness then + log:debug("SET_COLOR_TARGET deduped (%sms remaining in merged-color window)", mergedColorUntil - now) + currentColorX = targetX + currentColorY = targetY + currentColorMode = targetMode + return + end + + rampToColor(targetX, targetY, targetMode, rate) +end + +-- Halt an in-flight brightness transition at the current stepped level. +function RFP.SET_BRIGHTNESS_STOP(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_BRIGHTNESS_STOP(%s, %s)", idBinding, strCommand) + if idBinding ~= PROXY_BINDING then + return + end + brightnessRampStopped() +end + +-- Spec _4 / _5: cap the on-level range. Stored in persist; rampToBrightness +-- doesn't enforce them today (the device bulbs natively go 0-100), but we +-- echo the value back per-spec so the proxy and Composer track the setting. +function RFP.SET_MAX_ON_LEVEL(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_MAX_ON_LEVEL(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local level = math.max(0, math.min(100, tointeger(Select(tParams, "LEVEL")) or 100)) + persist:set(P_MAX_ON_LEVEL, level) + SendToProxy(PROXY_BINDING, "MAX_ON", tostring(level), "NOTIFY") +end + +function RFP.SET_MIN_ON_LEVEL(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_MIN_ON_LEVEL(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local level = math.max(0, math.min(100, tointeger(Select(tParams, "LEVEL")) or 0)) + persist:set(P_MIN_ON_LEVEL, level) + SendToProxy(PROXY_BINDING, "MIN_ON", tostring(level), "NOTIFY") +end + +-- Halt an in-flight color transition at the current stepped XY/mode. +function RFP.SET_COLOR_STOP(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_COLOR_STOP(%s, %s)", idBinding, strCommand) + if idBinding ~= PROXY_BINDING then + return + end + colorRampStopped() +end + +function RFP.GET_CONNECTED_STATE(idBinding, strCommand, tParams, args) + log:trace("RFP.GET_CONNECTED_STATE(%s, %s)", idBinding, strCommand) + if idBinding ~= PROXY_BINDING then + return + end + SendToProxy(PROXY_BINDING, "ONLINE_CHANGED", { STATE = STATE ~= nil }, "NOTIFY") +end + +-- Legacy: re-emit the current brightness when the proxy asks. Modern callers +-- read the cached BRIGHTNESS_PERCENT variable, but the LIGHT_V2 contract +-- includes this command for compatibility. +function RFP.GET_LIGHT_LEVEL(idBinding, strCommand, tParams, args) + log:trace("RFP.GET_LIGHT_LEVEL(%s, %s)", idBinding, strCommand) + if idBinding ~= PROXY_BINDING then + return + end + notifyBrightnessChanged(currentBrightness) +end + +--------------------------------------------------------------------------- +-- Scene support (Advanced Lighting Scenes) +--------------------------------------------------------------------------- + +local function getScenes() + return persist:get(P_SCENES, {}) +end + +local function saveScenes(scenes) + persist:set(P_SCENES, scenes) +end + +-- Parse the LIGHT_V2 scene XML. The proxy passes a string of one or +-- more ... blocks describing what to do at each step. +-- Returns an array of normalized step tables. +local function parseSceneElements(elementsXml) + local steps = {} + if IsEmpty(elementsXml) then + return steps + end + local parsed = ParseXml("" .. elementsXml .. "") + local elementList = Select(parsed, "root", "element") or {} + if not IsList(elementList) then + elementList = { elementList } + end + for _, el in ipairs(elementList) do + if type(el) == "table" then + local rawBrightnessEnabled = Select(el, "brightnessEnabled") + local rawColorEnabled = Select(el, "colorEnabled") + local step = { + delay = tointeger(Select(el, "delay")) or 0, + brightnessRate = tointeger(Select(el, "brightnessRate") or Select(el, "rate")) or 0, + colorRate = tointeger(Select(el, "colorRate")) or 0, + level = tointeger(Select(el, "brightness") or Select(el, "level")), + levelEnabled = toboolean(rawBrightnessEnabled), + colorEnabled = toboolean(rawColorEnabled), + colorX = tonumber(Select(el, "colorX")), + colorY = tonumber(Select(el, "colorY")), + colorMode = tointeger(Select(el, "colorMode")), + } + -- Legacy schemas put at the element root with no + -- wrapper. Only promote when the wrapper is truly absent, not when it's + -- explicitly false (toboolean collapses nil and "false" to the same value). + if rawBrightnessEnabled == nil and rawColorEnabled == nil and step.level ~= nil then + step.levelEnabled = true + end + if step.colorRate == 0 and step.brightnessRate > 0 then + step.colorRate = step.brightnessRate + end + if step.levelEnabled or step.colorEnabled or step.delay > 0 then + table.insert(steps, step) + end + end + end + log:debug("parseSceneElements: %d step(s) parsed", #steps) + return steps +end + +-- Bumped any time we want to invalidate in-flight scene step callbacks. The +-- timer names alone don't always prevent a callback already queued by SetTimer +-- from running, so each step closure captures the generation it was born under +-- and bails out if it has changed. +local sceneGeneration = 0 + +local function stopAllScenes() + sceneGeneration = sceneGeneration + 1 + CancelTimer(SCENE_RAMP_TIMER) + local scenes = getScenes() + for sceneId, _ in pairs(scenes) do + CancelTimer(SCENE_TIMER_PREFIX .. tostring(sceneId)) + end + -- Drop any ramp state primed by an in-flight scene step so future echoes + -- don't get suppressed forever. Notify hooks that fired CHANGING are + -- finalised by the bulb's own state echo when ramping flags are cleared. + rampingBrightness = false + rampingColor = false + brightnessRamp = nil + colorRamp = nil +end + +local function applySceneStep(step) + -- Build one combined light_command so the device transitions atomically when + -- both brightness and color change in the same step. + if not step.levelEnabled and not step.colorEnabled then + return 0 + end + -- Cancel any in-flight ramp (whether from a prior step or a non-scene cmd) + -- and reset the flags so we can re-prime per this step's rates below. The + -- echo-suppression contract in UPDATE_STATE relies on rampingBrightness/ + -- rampingColor matching the cmd we are about to send. + cancelBrightnessRampTimers() + cancelColorRampTimers() + rampingBrightness = false + rampingColor = false + brightnessRamp = nil + colorRamp = nil + local cmd = {} + -- the device takes a single transition_length per cmd, so the bulb interpolates + -- both brightness and color over the longer of the two requested rates. Use + -- that unified rate for ramp metadata and notify payloads so the proxy's + -- picker animation, the local STOP-mid-step interpolation, and the SCENE_ + -- TIMER all agree on when the transition actually completes. + local rate = math.max(step.brightnessRate or 0, step.colorRate or 0) + if rate > 0 then + cmd.has_transition_length = true + cmd.transition_length = rate + end + local startTime = C4:GetTime() + -- A level of 0 means "off"; the color block is metadata for the next on. + -- Don't send color/RGB fields in that case so the device actually turns off. + local turningOff = step.levelEnabled and step.level == 0 + if step.levelEnabled and step.level ~= nil then + cmd.has_state = true + cmd.state = step.level > 0 + if step.level > 0 and supportsDimming then + cmd.has_brightness = true + cmd.brightness = step.level / 100.0 + end + -- Scene step is driving brightness directly; clear any active preset id + -- so subsequent CHANGED notifies don't echo a stale value. Color-only + -- steps don't touch this so a brightness preset can survive across them. + currentBrightnessPresetId = nil + -- Only prime a ramp when the level actually moves; an explicit step at + -- the current level with rate>0 would otherwise queue a pointless picker + -- animation and suppress the next echo for no reason. + if rate > 0 and step.level ~= currentBrightness then + rampingBrightness = true + brightnessRamp = { + startTime = startTime, + startLevel = currentBrightness, + targetLevel = step.level, + durationMs = rate, + } + notifyBrightnessChanging(step.level, rate) + end + end + if step.colorEnabled and step.colorX and step.colorY and not turningOff then + local mode = step.colorMode or LIGHT_COLOR_MODE_FULL + if mode == LIGHT_COLOR_MODE_CCT and supportsCCT then + local k = tonumber(C4:ColorXYtoCCT(step.colorX, step.colorY)) + if k and k > 0 then + cmd.has_color_temperature = true + cmd.color_temperature = kelvinToMireds(k) + end + elseif supportsColor then + local r, g, b = xyToRGB(step.colorX, step.colorY) + cmd.has_rgb = true + cmd.red = r + cmd.green = g + cmd.blue = b + end + cmd.has_state = true + cmd.state = true + currentColorPresetId = nil + local colorChanged = math.abs(step.colorX - currentColorX) > 1e-4 + or math.abs(step.colorY - currentColorY) > 1e-4 + or mode ~= currentColorMode + if rate > 0 and colorChanged then + rampingColor = true + colorRamp = { + startTime = startTime, + startX = currentColorX, + startY = currentColorY, + targetX = step.colorX, + targetY = step.colorY, + targetMode = mode, + durationMs = rate, + } + notifyColorChanging(step.colorX, step.colorY, mode, rate) + end + end + if next(cmd) ~= nil then + sendLightCommand(cmd) + end + return rate +end + +local function runScene(sceneId, generation) + if generation ~= nil and generation ~= sceneGeneration then + return + end + local gen = generation or sceneGeneration + local scenes = getScenes() + local scene = scenes[tostring(sceneId)] + if not scene then + log:warn("Scene %s not found", sceneId) + return + end + scene.state = scene.state or 0 + local timerName = SCENE_TIMER_PREFIX .. tostring(sceneId) + CancelTimer(timerName) + + while true do + if gen ~= sceneGeneration then + return + end + local idx = scene.state + 1 + if idx > #scene.elements then + if scene.flash then + scene.state = 0 + idx = 1 + else + scene.state = 0 + scenes[tostring(sceneId)] = scene + saveScenes(scenes) + return + end + end + local step = scene.elements[idx] + local delay = math.max(0, step.delay or 0) + scene.state = idx + scenes[tostring(sceneId)] = scene + saveScenes(scenes) + + -- When a step's ramp elapses, finalise any in-flight ramp metadata so + -- rampingBrightness/rampingColor are cleared and CHANGED notifies fire + -- before we apply the next step. + local function finishRampsAndAdvance() + if brightnessRamp and brightnessRamp.targetLevel ~= nil then + brightnessRampFinished(brightnessRamp.targetLevel) + end + if colorRamp and colorRamp.targetX and colorRamp.targetY and colorRamp.targetMode then + colorRampFinished(colorRamp.targetX, colorRamp.targetY, colorRamp.targetMode) + end + runScene(sceneId, gen) + end + + if delay > 0 then + SetTimer(timerName, delay, function() + if gen ~= sceneGeneration then + return + end + local rampMs = applySceneStep(step) + if rampMs > 0 then + SetTimer(timerName, rampMs, finishRampsAndAdvance) + else + runScene(sceneId, gen) + end + end) + return + end + + local rampMs = applySceneStep(step) + if rampMs > 0 then + SetTimer(timerName, rampMs, finishRampsAndAdvance) + return + end + -- otherwise loop synchronously to the next element + end +end + +function RFP.PUSH_SCENE(idBinding, strCommand, tParams, args) + log:trace("RFP.PUSH_SCENE(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local sceneId = tointeger(Select(tParams, "SCENE_ID")) + if sceneId == nil then + return + end + local elements = Select(tParams, "ELEMENTS") + local scenes = getScenes() + scenes[tostring(sceneId)] = { + elements = parseSceneElements(elements), + flash = toboolean(Select(tParams, "FLASH")), + ignoreRamp = toboolean(Select(tParams, "IGNORE_RAMP")), + fromGroup = toboolean(Select(tParams, "FROM_GROUP")), + state = 0, + } + saveScenes(scenes) + log:debug("Stored scene %s with %d element(s)", sceneId, #scenes[tostring(sceneId)].elements) +end + +function RFP.REMOVE_SCENE(idBinding, strCommand, tParams, args) + log:trace("RFP.REMOVE_SCENE(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local sceneId = tointeger(Select(tParams, "SCENE_ID")) + if sceneId == nil then + return + end + CancelTimer(SCENE_TIMER_PREFIX .. tostring(sceneId)) + local scenes = getScenes() + scenes[tostring(sceneId)] = nil + saveScenes(scenes) +end + +function RFP.CLEAR_ALL_SCENES(idBinding, strCommand, tParams, args) + log:trace("RFP.CLEAR_ALL_SCENES(%s, %s)", idBinding, strCommand) + if idBinding ~= PROXY_BINDING then + return + end + stopAllScenes() + saveScenes({}) +end + +function RFP.ALL_SCENES_PUSHED(idBinding, strCommand, tParams, args) + log:trace("RFP.ALL_SCENES_PUSHED(%s, %s)", idBinding, strCommand) + -- Marker that the proxy has finished pushing scenes; nothing to do. +end + +function RFP.ACTIVATE_SCENE(idBinding, strCommand, tParams, args) + log:trace("RFP.ACTIVATE_SCENE(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local sceneId = tointeger(Select(tParams, "SCENE_ID")) + if sceneId == nil then + return + end + stopAllScenes() + local scenes = getScenes() + local scene = scenes[tostring(sceneId)] + if not scene then + log:warn("ACTIVATE_SCENE: unknown scene id %s", sceneId) + return + end + scene.state = 0 + scenes[tostring(sceneId)] = scene + saveScenes(scenes) + runScene(sceneId) +end + +function RFP.DEACTIVATE_SCENE(idBinding, strCommand, tParams, args) + log:trace("RFP.DEACTIVATE_SCENE(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + -- The Advanced Lighting agent uses DEACTIVATE_SCENE to mark a scene "off" + -- in its own bookkeeping. Our driver doesn't track which scene is currently + -- "active" (the device just reflects the last commands sent), so we just + -- stop any running scene playback. + stopAllScenes() +end + +function RFP.RAMP_SCENE_UP(idBinding, strCommand, tParams, args) + log:trace("RFP.RAMP_SCENE_UP(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local sceneId = tointeger(Select(tParams, "SCENE_ID")) + local rate = tointeger(Select(tParams, "RATE")) or 0 + local scenes = getScenes() + local scene = sceneId and scenes[tostring(sceneId)] + if scene and scene.ignoreRamp then + return + end + stopAllScenes() + if supportsDimming then + rampToBrightness(getOnBrightness(), rate) + else + lightOn() + end +end + +function RFP.RAMP_SCENE_DOWN(idBinding, strCommand, tParams, args) + log:trace("RFP.RAMP_SCENE_DOWN(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local sceneId = tointeger(Select(tParams, "SCENE_ID")) + local rate = tointeger(Select(tParams, "RATE")) or 0 + local scenes = getScenes() + local scene = sceneId and scenes[tostring(sceneId)] + if scene and scene.ignoreRamp then + return + end + stopAllScenes() + if supportsDimming then + rampToBrightness(0, rate) + else + lightOff() + end +end + +function RFP.STOP_SCENE_RAMP(idBinding, strCommand, tParams, args) + log:trace("RFP.STOP_SCENE_RAMP(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + stopAllScenes() + brightnessRampStopped() + colorRampStopped() +end + +-- The published spec calls this command STOP_RAMP_SCENE; older / template code +-- uses STOP_SCENE_RAMP. Register both so the proxy can reach us either way. +RFP.STOP_RAMP_SCENE = RFP.STOP_SCENE_RAMP + +function RFP.TOGGLE_SCENE(idBinding, strCommand, tParams, args) + log:trace("RFP.TOGGLE_SCENE(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + -- We don't track per-scene "active" state on the device side, so we always + -- activate the requested scene. The agent's own bookkeeping handles toggle + -- semantics across the project. + RFP.ACTIVATE_SCENE(idBinding, "ACTIVATE_SCENE", tParams) +end + +--------------------------------------------------------------------------- +-- RFP: preset and rate management +--------------------------------------------------------------------------- + +function RFP.SET_PRESET_LEVEL(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_PRESET_LEVEL(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local level = tointeger(Select(tParams, "LEVEL")) or DEFAULT_PRESET_LEVEL + persist:set(P_PRESET_LEVEL, level) + -- PRESET_LEVEL notify takes a single BRIGHTNESS value (1-100) as a plain + -- string, not a parameter map. Sending it as {BRIGHTNESS=N} causes the + -- proxy to reject the value and revert the preset to 0 - blocking users + -- from changing the Default On level in Composer. + SendToProxy(PROXY_BINDING, "PRESET_LEVEL", tostring(level), "NOTIFY") +end + +function RFP.UPDATE_BRIGHTNESS_ON_MODE(idBinding, strCommand, tParams, args) + log:trace("RFP.UPDATE_BRIGHTNESS_ON_MODE(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local presetId = tointeger(Select(tParams, "BRIGHTNESS_PRESET_ID")) + local presetLevel = tonumber(Select(tParams, "BRIGHTNESS_PRESET_LEVEL")) or DEFAULT_PRESET_LEVEL + persist:set(P_ON_MODE, { id = presetId, level = presetLevel }) +end + +-- Per spec _21.2: SET_BRIGHTNESS_ON_MODE is sent by the proxy to tell the +-- driver which preset ID should be used as the "On" target. When the proxy +-- isn't the initiator (button link, scene), we use this to know what level +-- to ramp to. +function RFP.SET_BRIGHTNESS_ON_MODE(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_BRIGHTNESS_ON_MODE(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local presetId = tointeger(Select(tParams, "PRESET_ID")) + if presetId == nil then + return + end + persist:set(P_BRIGHTNESS_ON_MODE_PRESET, presetId) + -- Look up the preset's current level so getOnBrightness uses it immediately. + local presets = persist:get(P_BRIGHTNESS_PRESETS) or {} + local preset = presets[tostring(presetId)] + if preset and preset.level then + persist:set(P_ON_MODE, { id = presetId, level = preset.level }) + end +end + +function RFP.UPDATE_BRIGHTNESS_PRESET(idBinding, strCommand, tParams, args) + log:trace("RFP.UPDATE_BRIGHTNESS_PRESET(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local command = Select(tParams, "COMMAND") + local presetId = tointeger(Select(tParams, "ID")) + local level = tonumber(Select(tParams, "LEVEL")) + local name = Select(tParams, "NAME") + if presetId == nil then + return + end + local presets = persist:get(P_BRIGHTNESS_PRESETS) or {} + local key = tostring(presetId) + if command == "REMOVED" then + presets[key] = nil + else + presets[key] = { id = presetId, name = name, level = level } + end + persist:set(P_BRIGHTNESS_PRESETS, presets) + -- If this preset is the currently-active on-mode preset, refresh the + -- on-mode level so getOnBrightness picks up the change immediately. + local activeId = tointeger(persist:get(P_BRIGHTNESS_ON_MODE_PRESET)) + if activeId ~= nil and activeId == presetId then + if level == nil then + persist:delete(P_ON_MODE) + else + persist:set(P_ON_MODE, { id = presetId, level = level }) + end + end +end + +-- color_rate_behavior=1: brightness and color share a single default rate. +-- Composer's "Default Brightness and Color Rate" only sets one value; we +-- persist both keys to the same rate so the two getters can't drift. +function RFP.UPDATE_BRIGHTNESS_RATE_DEFAULT(idBinding, strCommand, tParams, args) + log:trace("RFP.UPDATE_BRIGHTNESS_RATE_DEFAULT(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local rate = tointeger(Select(tParams, "RATE")) or DEFAULT_RATE + persist:set(P_RATE_DEFAULT, rate) + persist:set(P_COLOR_RATE_DEFAULT, rate) +end + +function RFP.UPDATE_COLOR_RATE_DEFAULT(idBinding, strCommand, tParams, args) + log:trace("RFP.UPDATE_COLOR_RATE_DEFAULT(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local rate = tointeger(Select(tParams, "RATE")) or DEFAULT_RATE + persist:set(P_COLOR_RATE_DEFAULT, rate) + persist:set(P_RATE_DEFAULT, rate) +end + +-- Persist color presets keyed by ID so we can apply them when the proxy is +-- not the initiator (button link, scene, programming, dim-to-warm fade). +function RFP.UPDATE_COLOR_PRESET(idBinding, strCommand, tParams, args) + log:trace("RFP.UPDATE_COLOR_PRESET(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local command = Select(tParams, "COMMAND") + local presetId = tointeger(Select(tParams, "ID")) + if presetId == nil then + return + end + local presets = persist:get(P_COLOR_PRESETS) or {} + local key = tostring(presetId) + if command == "REMOVED" then + presets[key] = nil + else + presets[key] = { + id = presetId, + name = Select(tParams, "NAME"), + x = tonumber(Select(tParams, "COLOR_X")), + y = tonumber(Select(tParams, "COLOR_Y")), + mode = tointeger(Select(tParams, "COLOR_MODE")), + } + end + persist:set(P_COLOR_PRESETS, presets) +end + +-- Per spec _20.4: UPDATE_COLOR_ON_MODE carries the active On preset (and a +-- separate Fade pair for Dim-To-Warm). We persist both so we can drive color +-- ourselves on non-proxy on actions and apply the fade formula. +function RFP.UPDATE_COLOR_ON_MODE(idBinding, strCommand, tParams, args) + log:trace("RFP.UPDATE_COLOR_ON_MODE(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local mode = { + onPreset = { + id = tointeger(Select(tParams, "COLOR_PRESET_ID")), + origin = tointeger(Select(tParams, "COLOR_PRESET_ORIGIN")), + x = tonumber(Select(tParams, "COLOR_PRESET_COLOR_X")), + y = tonumber(Select(tParams, "COLOR_PRESET_COLOR_Y")), + mode = tointeger(Select(tParams, "COLOR_PRESET_COLOR_MODE")), + }, + fadePreset = { + id = tointeger(Select(tParams, "COLOR_FADE_PRESET_ID")), + origin = tointeger(Select(tParams, "COLOR_FADE_PRESET_ORIGIN")), + x = tonumber(Select(tParams, "COLOR_FADE_PRESET_COLOR_X")), + y = tonumber(Select(tParams, "COLOR_FADE_PRESET_COLOR_Y")), + mode = tointeger(Select(tParams, "COLOR_FADE_PRESET_COLOR_MODE")), + }, + } + persist:set(P_COLOR_ON_MODE, mode) +end + +-- SET_COLOR_ON_MODE (spec _9.1): proxy tells the driver which mode is active +-- (preset / fade / previous). We persist the mode kind so we can branch in +-- lightOn and brightness handling. +function RFP.SET_COLOR_ON_MODE(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_COLOR_ON_MODE(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local presetId = tointeger(Select(tParams, "PRESET_ID")) + persist:set(P_COLOR_ON_MODE_PRESET, presetId) + -- A fresh on-mode selection clears any prior fadeOverride so the formula + -- runs again on the next on cycle. + fadeOverride = false +end + +-- Click/hold rate echo notifies follow the same convention as PRESET_LEVEL: +-- the proxy expects a plain string with the rate value, not a parameter map. +-- Sending {RATE=N} causes the proxy to reject the value and revert the +-- setting to 0, which is why Composer keeps showing 0 after a save. +function RFP.SET_CLICK_RATE_UP(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_CLICK_RATE_UP(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local rate = tointeger(Select(tParams, "RATE")) or DEFAULT_CLICK_RATE + persist:set(P_CLICK_RATE_UP, rate) + SendToProxy(PROXY_BINDING, "CLICK_RATE_UP", tostring(rate), "NOTIFY") +end + +function RFP.SET_CLICK_RATE_DOWN(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_CLICK_RATE_DOWN(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local rate = tointeger(Select(tParams, "RATE")) or DEFAULT_CLICK_RATE + persist:set(P_CLICK_RATE_DOWN, rate) + SendToProxy(PROXY_BINDING, "CLICK_RATE_DOWN", tostring(rate), "NOTIFY") +end + +function RFP.SET_HOLD_RATE_UP(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_HOLD_RATE_UP(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local rate = tointeger(Select(tParams, "RATE")) or DEFAULT_HOLD_RATE + persist:set(P_HOLD_RATE_UP, rate) + SendToProxy(PROXY_BINDING, "HOLD_RATE_UP", tostring(rate), "NOTIFY") +end + +function RFP.SET_HOLD_RATE_DOWN(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_HOLD_RATE_DOWN(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local rate = tointeger(Select(tParams, "RATE")) or DEFAULT_HOLD_RATE + persist:set(P_HOLD_RATE_DOWN, rate) + SendToProxy(PROXY_BINDING, "HOLD_RATE_DOWN", tostring(rate), "NOTIFY") +end + +--------------------------------------------------------------------------- +-- RFP: button colors +--------------------------------------------------------------------------- + +function RFP.REQUEST_BUTTON_COLORS(idBinding, strCommand, tParams, args) + log:trace("RFP.REQUEST_BUTTON_COLORS(%s, %s)", idBinding, strCommand) + if idBinding ~= PROXY_BINDING then + return + end + for _, buttonId in ipairs({ 0, 1, 2 }) do + local onColor, offColor = getButtonColors(buttonId) + SendToProxy(PROXY_BINDING, "BUTTON_COLORS", { + BUTTON_ID = buttonId, + ON_COLOR = onColor, + OFF_COLOR = offColor, + }, "NOTIFY") + end + -- MATCH_LED_STATE per button binding, with bottom inverted (its LED lights + -- when the light is off so the keypad shows the toggle state correctly). + local isOn = currentBrightness > 0 + SendToProxy(ON_BINDING, "MATCH_LED_STATE", { STATE = isOn }, "NOTIFY", true) + SendToProxy(OFF_BINDING, "MATCH_LED_STATE", { STATE = not isOn }, "NOTIFY", true) + SendToProxy(TOGGLE_BINDING, "MATCH_LED_STATE", { STATE = isOn }, "NOTIFY", true) +end + +function RFP.SET_BUTTON_COLOR(idBinding, strCommand, tParams, args) + log:trace("RFP.SET_BUTTON_COLOR(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + local buttonId = tointeger(Select(tParams, "BUTTON_ID")) + local onColor = Select(tParams, "ON_COLOR") + local offColor = Select(tParams, "OFF_COLOR") + if buttonId == nil then + return + end + setButtonColors(buttonId, onColor, offColor) + if onColor then + SendToProxy(PROXY_BINDING, "BUTTON_INFO", { BUTTON_ID = buttonId, ON_COLOR = onColor }, "NOTIFY") + end + if offColor then + SendToProxy(PROXY_BINDING, "BUTTON_INFO", { BUTTON_ID = buttonId, OFF_COLOR = offColor }, "NOTIFY") + end +end + +--------------------------------------------------------------------------- +-- RFP: button actions (from proxy) +--------------------------------------------------------------------------- + +-- Restore brightness to the pre-press snapshot. Called when a RELEASE_CLICK +-- arrives after a brief hold-ramp has already stepped 1-2%. Cancels timers, +-- snaps device + state back to the snapshot, and returns the effective level +-- the click logic should use for direction decisions. If no snapshot exists +-- (e.g. CLICK without preceding PRESS via DO_CLICK), returns currentBrightness. +local function rewindToPrePress() + local snapshot = prePressBrightness + prePressBrightness = nil + cancelBrightnessRampTimers() + if not rampingBrightness or snapshot == nil then + rampingBrightness = false + return snapshot or currentBrightness + end + rampingBrightness = false + if currentBrightness ~= snapshot then + setDeviceBrightness(snapshot, 0) + currentBrightness = snapshot + end + return snapshot +end + +-- Shared button-action implementation. Used by RFP.BUTTON_ACTION (proxy -> +-- driver path, e.g. on-device buttons or programming) and by DO_CLICK / +-- DO_PUSH / DO_RELEASE (button-link path, e.g. a keypad button bound to one +-- of our BUTTON_LINK connections). Returns nothing. +local function handleButtonAction(buttonId, action) + if action == constants.ButtonActions.PRESS then + -- Button-down. Snapshot brightness for the click race, then start a hold + -- ramp at the persisted hold rate. If the proxy decides this was a click, + -- a RELEASE_CLICK will arrive ~110ms later and rewindToPrePress() will + -- undo any partial step before the click ramp runs. + prePressBrightness = currentBrightness + if not supportsDimming then + if buttonId == constants.ButtonIds.TOP then + lightOn() + elseif buttonId == constants.ButtonIds.BOTTOM then + lightOff() + elseif buttonId == constants.ButtonIds.TOGGLE then + lightToggle() + end + return + end + if buttonId == constants.ButtonIds.TOP then + rampToBrightness(getOnBrightness(), getHoldRateUp()) + elseif buttonId == constants.ButtonIds.BOTTOM then + rampToBrightness(0, getHoldRateDown()) + elseif buttonId == constants.ButtonIds.TOGGLE then + if currentBrightness > 0 then + rampToBrightness(0, getHoldRateDown()) + else + rampToBrightness(getOnBrightness(), getHoldRateUp()) + end + end + elseif action == constants.ButtonActions.RELEASE_HOLD then + prePressBrightness = nil + brightnessRampStopped() + elseif action == constants.ButtonActions.RELEASE_CLICK then + local effective = rewindToPrePress() + if buttonId == constants.ButtonIds.TOP then + if supportsDimming then + rampToBrightness(getOnBrightness(), getClickRateUp()) + else + lightOn() + end + elseif buttonId == constants.ButtonIds.BOTTOM then + if supportsDimming then + rampToBrightness(0, getClickRateDown()) + else + lightOff() + end + elseif buttonId == constants.ButtonIds.TOGGLE then + if supportsDimming then + if effective > 0 then + rampToBrightness(0, getClickRateDown()) + else + rampToBrightness(getOnBrightness(), getClickRateUp()) + end + else + if effective > 0 then + lightOff() + else + lightOn() + end + end + end + end +end + +function RFP.BUTTON_ACTION(idBinding, strCommand, tParams, args) + log:trace("RFP.BUTTON_ACTION(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= PROXY_BINDING then + return + end + + local buttonId = tointeger(Select(tParams, "BUTTON_ID")) + local action = tointeger(Select(tParams, "ACTION")) + + handleButtonAction(buttonId, action) + + -- Echo the button action AFTER the ramp setup. If we send this BEFORE the + -- LIGHT_BRIGHTNESS_CHANGING notify, the proxy treats it as a state-change + -- event and snaps the UI to the on/off target, then our CHANGING repositions + -- back to current and animates - producing a visible jump-and-rewind. + SendToProxy(PROXY_BINDING, "BUTTON_ACTION", { + BUTTON_ID = buttonId, + ACTION = action, + }, "NOTIFY") +end + +--------------------------------------------------------------------------- +-- RFP: button link bindings (DO_CLICK, DO_PUSH, DO_RELEASE) +--------------------------------------------------------------------------- + +local function buttonIdFromBinding(idBinding) + if idBinding == ON_BINDING then + return constants.ButtonIds.TOP + elseif idBinding == OFF_BINDING then + return constants.ButtonIds.BOTTOM + elseif idBinding == TOGGLE_BINDING then + return constants.ButtonIds.TOGGLE + end + return nil +end + +-- Button-link bindings forward to handleButtonAction directly. Unlike the +-- proxy-initiated BUTTON_ACTION path, we don't send a BUTTON_ACTION echo +-- back to the proxy here: the proxy is the one that sent us DO_*, so it +-- already knows the button fired. Echoing would make the proxy snap the UI +-- to the on/off target before our LIGHT_BRIGHTNESS_CHANGING animates. +function RFP.DO_CLICK(idBinding, strCommand, tParams, args) + log:trace("RFP.DO_CLICK(%s, %s)", idBinding, strCommand) + local buttonId = buttonIdFromBinding(idBinding) + if buttonId == nil then + return + end + handleButtonAction(buttonId, constants.ButtonActions.RELEASE_CLICK) +end + +function RFP.DO_PUSH(idBinding, strCommand, tParams, args) + log:trace("RFP.DO_PUSH(%s, %s)", idBinding, strCommand) + local buttonId = buttonIdFromBinding(idBinding) + if buttonId == nil then + return + end + handleButtonAction(buttonId, constants.ButtonActions.PRESS) +end + +function RFP.DO_RELEASE(idBinding, strCommand, tParams, args) + log:trace("RFP.DO_RELEASE(%s, %s)", idBinding, strCommand) + local buttonId = buttonIdFromBinding(idBinding) + if buttonId == nil then + return + end + handleButtonAction(buttonId, constants.ButtonActions.RELEASE_HOLD) +end + +--------------------------------------------------------------------------- +-- RFP: the device state updates +--------------------------------------------------------------------------- + +function RFP.UPDATE_DISCONNECT(idBinding, strCommand, tParams, args) + log:trace("RFP.UPDATE_DISCONNECT(%s, %s)", idBinding, strCommand) + if idBinding ~= DEVICE_BINDING then + return + end + cancelBrightnessRampTimers() + cancelColorRampTimers() + rampingBrightness = false + rampingColor = false + brightnessRamp = nil + colorRamp = nil + stopAllScenes() + ENTITY = nil + STATE = nil + dynamicCapsSent = false + supportsDimming = false + supportsColor = false + supportsCCT = false + supportedColorModes = {} + currentBrightness = 0 + ledState = false + prePressBrightness = nil + fadeOverride = false + mergedColorUntil = 0 + currentBrightnessPresetId = nil + currentColorPresetId = nil + UpdateProperty("Driver Status", "Disconnected") + SendToProxy(PROXY_BINDING, "ONLINE_CHANGED", { STATE = false }, "NOTIFY") + notifyBrightnessChanged(0) +end + +function RFP.UPDATE_STATE(idBinding, strCommand, tParams, args) + log:trace("RFP.UPDATE_STATE(%s, %s, %s)", idBinding, strCommand, tParams) + if idBinding ~= DEVICE_BINDING then + log:error("RFP.UPDATE_STATE called with idBinding %s, expected %s", idBinding, DEVICE_BINDING) + return + end + + local entity = DeserializeSafe(Select(tParams, "entity")) + local state = DeserializeSafe(Select(tParams, "state")) + if IsEmpty(entity) or IsEmpty(state) then + log:error("RFP.UPDATE_STATE called with invalid parameters: %s", tParams) + return + end + + log:trace("Entity: %s", entity) + log:trace("State: %s", state) + + local wasConnected = STATE ~= nil + local isFirstUpdate = ENTITY == nil + ENTITY = entity + STATE = state + + -- Connection state must be sent BEFORE dynamic capabilities + if not wasConnected then + UpdateProperty("Driver Status", "Connected") + SendToProxy(PROXY_BINDING, "ONLINE_CHANGED", { STATE = true }, "NOTIFY") + end + + -- Send dynamic capabilities after ONLINE_CHANGED + if isFirstUpdate then + updateDynamicCapabilities(entity) + end + + -- Map device brightness (0.0-1.0) to C4 (0-100) + local newBrightness + local isOn = Select(state, "state") or false + if not isOn then + newBrightness = 0 + elseif supportsDimming then + local brightness = tonumber(Select(state, "brightness")) or 1.0 + newBrightness = math.floor(brightness * 100 + 0.5) + newBrightness = math.max(0, math.min(100, newBrightness)) + if newBrightness == 0 and isOn then + newBrightness = 1 + end + else + newBrightness = 100 + end + + -- During a ramp, the device's echo confirms the target value (not the + -- interpolated physical value), so we ignore it - rampingBrightness will + -- be cleared in brightnessRampFinished or brightnessRampStopped, both of + -- which set currentBrightness to the appropriate value before the snap + -- cmd's echo can arrive. Outside a ramp, the echo's target equals what + -- we last set, so processing it is a no-op (newBrightness already + -- matches currentBrightness). + if rampingBrightness then + log:trace("UPDATE_STATE brightness=%s ignored (ramping)", newBrightness) + elseif isFirstUpdate or newBrightness ~= currentBrightness then + -- Spec note: LIGHT_BRIGHTNESS_CHANGED should always be sent when the + -- driver starts and/or when the hardware comes online so the proxy is + -- seeded with the actual brightness, even if it matches our default. + notifyBrightnessChanged(newBrightness) + end + + if isOn and (supportsColor or supportsCCT) and not rampingColor then + local activeMode = tointeger(Select(state, "color_mode")) + local newX, newY, newColorMode + if activeMode and COLOR_MODES_SUPPORTING_CCT[activeMode] and Select(state, "color_temperature") then + local mireds = tonumber(Select(state, "color_temperature")) + if mireds and mireds > 0 then + local k = miredsToKelvin(mireds) + newX, newY = C4:ColorCCTtoXY(k) + newColorMode = LIGHT_COLOR_MODE_CCT + end + elseif activeMode and COLOR_MODES_SUPPORTING_RGB[activeMode] then + local r = tonumber(Select(state, "red")) or 0 + local g = tonumber(Select(state, "green")) or 0 + local b = tonumber(Select(state, "blue")) or 0 + if r > 0 or g > 0 or b > 0 then + local h, s = rgbToHSV(r, g, b) + newX, newY = C4:ColorHSVtoXY(h, s, 100) + newColorMode = LIGHT_COLOR_MODE_FULL + end + end + -- Threshold matches xy round-trip drift through RGB / HSV (typically + -- 1-2e-3 in either coordinate). Tighter than this fires spurious notifies + -- and clears the active preset id when the bulb just echoes our own cmd + -- back. Looser than ~1e-2 starts missing visible changes. + local COLOR_ECHO_TOLERANCE = 5e-3 + if + newX + and newY + and newColorMode + and ( + isFirstUpdate + or math.abs(newX - currentColorX) > COLOR_ECHO_TOLERANCE + or math.abs(newY - currentColorY) > COLOR_ECHO_TOLERANCE + or newColorMode ~= currentColorMode + ) + then + -- Hardware-driven color change (out-of-band update): no preset is + -- driving this, so don't echo a stale preset id. + currentColorPresetId = nil + notifyColorChanged(newX, newY, newColorMode) + end + end +end + +--------------------------------------------------------------------------- +-- Binding change +--------------------------------------------------------------------------- + +OBC[DEVICE_BINDING] = function() + ENTITY = nil + STATE = nil + dynamicCapsSent = false + supportsDimming = false + supportsColor = false + supportsCCT = false + supportedColorModes = {} + currentBrightness = 0 + ledState = false + rampingBrightness = false + rampingColor = false + brightnessRamp = nil + colorRamp = nil + prePressBrightness = nil + fadeOverride = false + mergedColorUntil = 0 + currentBrightnessPresetId = nil + currentColorPresetId = nil + currentColorX = DEFAULT_COLOR_X + currentColorY = DEFAULT_COLOR_Y + currentColorMode = LIGHT_COLOR_MODE_CCT + cancelBrightnessRampTimers() + cancelColorRampTimers() + stopAllScenes() +end diff --git a/drivers/zigbee3_light/driver.xml b/drivers/zigbee3_light/driver.xml new file mode 100644 index 0000000..416a2d2 --- /dev/null +++ b/drivers/zigbee3_light/driver.xml @@ -0,0 +1,219 @@ + + Zigbee 3 Light + + Finite Labs + Zigbee 3 Light + Derek Miller + lua_gen + DriverWorks + Copyright 2026 Finite Labs, LLC. All rights reserved. + 01/01/2026 12:00:00 PM + + 3.3.0 + + Lighting + + + + + diff --git a/images/ui-device.png b/images/ui-device.png new file mode 100644 index 0000000000000000000000000000000000000000..d8cf0bd6680d72037a2213807abbcc60cfe8c18a GIT binary patch literal 77280 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ʃ|96kmI_M`?5=7ihfsSQtAn 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