SLZB-OS Operating system for SLZB series devices: SLZB-06x, SLZB-MRx, SLZB-06xU and SLZB-MRxU About SLZB-OS 1. About SLZB-OS 1.1 Overview SLZB-OS is the official firmware platform developed by SMLIGHT for its line of Zigbee and multi-radio Ethernet/USB/PoE adapters. It provides a web-based management interface that allows you to configure, monitor, and control your device from any browser on your local network — and, if desired, from remote locations via VPN or DDNS. The system is designed for stability, performance, and seamless integration with modern smart home ecosystems such as Zigbee2MQTT, Home Assistant (ZHA), and other MQTT-capable platforms. 1.2 Supported Devices SLZB-OS runs on a variety of SMLIGHT hardware, including but not limited to: SLZB-06x series: SLZB-06, SLZB-06M, SLZB-06P7, SLZB-06P10, SLZB-06MG24, SLZB-06MG26 SLZB-MRx series: SLZB-MR1, SLZB-MR2, SLZB-MR3, SLZB-MR4, SLZB-MRW10 SLZB-MRx series: SLZB-MR1U SLZB-USB-to-LAN adapter SLZB-UltimaX series: SLZB-Ultima1, SLZB-Ultima2, SLZB-Ultima3, SLZB-Ultima4,  Future-ready models: Support is regularly expanded via firmware updates. Note: Certain functions may differ depending on your device model and hardware capabilities (e.g., availability of PoE, dual-radio features, or USB passthrough). 1.3 Key Features Zigbee network management – Integrated Zigbee hub with support for popular coordinators and firmware. Multiple connectivity options – Ethernet, USB, Wi-Fi (where hardware supports it), and PoE. Direct integration – Works with Zigbee2MQTT and ZHA without additional bridges. Advanced features – Wi-Fi bridge, Bluetooth Proxy (ESPHome mode), dual-radio support, VPN, DDNS, automation scripts, and more. 31 interface languages – making it accessible to users worldwide. Advanced networking – VPN client/server, DDNS support, static/DHCP IP configuration. Custom automation – Built-in scripts and triggers for device behaviors. Security – User authentication, password management, and remote access controls. Diagnostics & logging – View detailed logs and debug information for troubleshooting. Firmware flexibility – Easy updates via local file upload or online sources. 1.4 Accessing the Interface Connect your SLZB device to your network via Ethernet, PoE, or USB (depending on model and mode). Determine its IP address using your router’s DHCP client list or a network scanning tool. Open a web browser and enter the device’s IP address in the format: http:// The SLZB-OS dashboard will load, showing system status and navigation menus. Dashboard 2. Dashboard The Dashboard is the first screen you see when logging into SLZB-OS. It provides an at-a-glance overview of your device’s current status, connectivity, and Zigbee network health. From here, you can quickly access detailed sections via the top or side navigation menus. 2.1 Layout Overview The dashboard typically consists of the following key blocks: Device Status Panel Model – Displays the hardware model (e.g., SLZB-MR1U). Firmware Version – Current SLZB-OS version installed. Uptime – How long the device has been running since last restart. CPU & Memory Usage – Real-time resource utilization. Network Status IP Address – Current assigned IPv4 address. Connection Type – Ethernet, PoE, USB, or Wi-Fi (depending on model). MAC Address – Unique network identifier. Link Status – Connection state and link speed. Zigbee Hub Summary Coordinator State – Online/Offline status. Connected Devices – Number of active Zigbee devices. Last Message – Timestamp of the last received Zigbee event. Zigbee2MQTT / ZHA Status – Shows which integration is currently active. Quick Actions Restart Device – Reboots the SLZB device. Restart Zigbee Hub – Restarts Zigbee coordinator service without rebooting the whole system. Open Zigbee2MQTT Web UI – Shortcut to Z2M frontend (if enabled). Check for Firmware Update – Quick link to update page. 2.2 Indicators & Colors Green – Normal operation. Yellow/Orange – Warning or degraded performance (e.g., high CPU usage). Red – Critical issue (e.g., coordinator offline). 2.3 Typical Uses Monitoring – Quickly verify if both network and Zigbee hub are running normally. Troubleshooting – Identify offline status or high resource load. Fast Navigation – Jump directly to network or Zigbee hub settings. Mode 3. Mode The Mode page lets you choose how the coordinator is exposed to your smart‑home stack. 3.1 Radio SoC Modes Your SLZB device’s primary radio SoC can operate in different roles depending on your smart home network design: 1. Zigbee Coordinator Creates and manages a Zigbee network. Required if this device is the main Zigbee hub in your setup. Works with Zigbee2MQTT, ZHA, and other Zigbee controllers. Allows pairing new devices and maintaining the full network routing table. 2. Zigbee Router Extends an existing Zigbee network by relaying messages between devices. Improves coverage and reliability in large or signal-challenged areas. Cannot create a network; must join an existing one. Useful for eliminating “dead zones” without replacing your main coordinator. 3. OpenThread Border Router (OTBR) Allows Thread devices (e.g., Matter over Thread) to join your home network. Bridges Thread to IP networks for integration into Matter-compatible platforms. Typically used alongside Matter controllers like Home Assistant, Google Home, or Apple HomeKit. 4. Zigbee Hub (SLZB-OS managed) Runs the Zigbee stack directly on the device under SLZB-OS control. No need for a PC/NAS to host Zigbee2MQTT or ZHA. Integrates easily via MQTT or native ZHA API. Managed through Zigbee Hub menu pages (Dashboard, Devices, Settings, MQTT). 3.2 Connection Modes Once the radio role is selected, choose how the coordinator/router connects to your automation system: A) Ethernet (Serial over TCP) Coordinator serial interface exposed as a TCP server. Ideal for stable wired installations (PoE optional). Use in remote Docker/VM/NAS setups where the Zigbee stack runs off-device. Access via: tcp://: B) USB (Direct Serial) Device acts as a USB dongle with a standard serial interface. Requires physical connection to the host running Z2M/ZHA. Best for small servers or Raspberry Pi deployments. C) Wi-Fi Coordinator available over Wi-Fi instead of Ethernet. Useful when wired connection isn’t possible. Expect slightly higher latency compared to Ethernet. 3.3 Additional Features These optional modes and functions can be enabled separately to expand device capabilities: Wi-Fi Bridge (Ethernet ↔ Wi-Fi) Handy for extending Wi-Fi coverage to IoT devices in Ethernet-only zones. A Wi-Fi bridge on U-series devices supports only NAPT mode. Two types: Transparent (802.1D) – Makes connected Wi-Fi devices visible on the Ethernet network. NAPT – Routes traffic from Wi-Fi clients via the device’s Ethernet uplink. NAPT mode on U-series devices supports port forwarding Bluetooth Proxy (ESPHome mode) Turns the device into a Bluetooth LE proxy for Home Assistant. Ideal for extending coverage of BLE sensors like Xiaomi/Mijia, Aqara, etc. Uses ESPHome firmware module within SLZB-OS. 3.4 How to Apply Changes Go to Mode in the SLZB-OS menu. Select Radio SoC mode (Coordinator / Router / OTBR / Zigbee Hub). Choose Connection mode (Ethernet / USB / Wi-Fi). Enable any Additional Features (Wi-Fi Bridge, BLE Proxy) if needed. Click Save/Apply. Restart the service or device if prompted. Confirm status in Dashboard and, for Zigbee Hub, under Zigbee Hub → Dashboard. Zigbee Hub Build your local ZigBee network without Z2M/ZHA About Zigbee Hub mode 4. About Zigbee Hub mode It is highly recommended to use U series coordinators for this mode (SLZB-06xU / MRxU / Ultima) Limitations: - no support for ZigBee devices that require a manufacturer code (Added starting from v3.4.3.dev3) - no support for ZGP and Touchlink - no OTA updates for ZigBee devices - limited support for ZigBee devices that use non-standard clusters (about 3,000 converters generated by AI since v3.4.3.dev3) - limited number of devices that can be paired:    U series coordinators - up to 80 devices.    non-U series - up to 16 devices. 4.1 What is Zigbee Hub in SLZB-OS? The Zigbee Hub feature allows the SLZB device to run its Zigbee network directly on the device — without needing an external computer, Raspberry Pi, or NAS to host the Zigbee stack. In Zigbee Hub mode, SLZB-OS launches an integrated Zigbee stack service that can connect directly to your smart home platform over MQTT. This mode is ideal for: Self-contained setups where the device acts as both the coordinator and the host. Reducing complexity by eliminating extra hardware. PoE/Ethernet-based installations for maximum stability. When Zigbee Hub is active, a dedicated Zigbee Hub menu appears in the SLZB-OS interface, containing the following pages: Dashboard – Live overview of Zigbee network status. Devices – List and manage all paired Zigbee devices. ZCN Builder - A tool that helps create custom converters for Zigbee devices. Network map - Map of your Zigbee network (v3.4.3.dev3+) Groups - Creating and managing Zigbee groups (v3.4.3.dev3+) MQTT – Configure the MQTT broker connection. Backup and Restore - Creating and restoring Zigbee network backups. Settings – Advanced Zigbee network and coordinator options. Feature overview Pairing Permit join for the whole network or through one router, at most 254 s; the hub closes the network again by itself. Install codes (QR code text of Aqara, Hue and Zigbee 3.0 devices). Automatic interview of every new device: node descriptor, endpoints, manufacturer, model, power source. binding and attribute reporting configured config. IAS zone enrollment for alarm sensors. Tuya initialization. Polling fallback: a mains device that cannot report an attribute (many Tuya plugs) has it polled automatically. Thousands of supported device models: standard Zigbee devices work without a converter. Device-specific converters. Home Assistant MQTT discovery for sensors, switches, lights, covers, climates, fans, locks, sirens, numbers, selects, buttons, texts and device triggers (buttons, remotes, scenes). Device availability: a device silent for too long is marked offline in Home Assistant and on the dashboard. Defaults: 10 min for mains devices, 25 h for battery devices. Groups: one Zigbee group command switches all members at once. Each group appears in Home Assistant as a light or switch. Network map of routers and their links with link quality (LQI). Channel change without re-pairing: the running network moves to the new channel together with its devices. Network key change without re-pairing. Backup and restore of the network, the devices and the settings. A backup is also made automatically after a channel or key change. Device tools in the web interface: bindings (to the hub or to another device), reporting and polling; read and write attributes, send any ZCL command; choose or update the device's converter. Local automation scripts: read device values and control devices from scripts running on the SLZB device. History for sensor values: U devices stores the history of value changes for your Zigbee sensors over the past 24 hours, with a sampling interval of 5 minutes. Device support Most devices that follow the Zigbee Cluster Library standard work without any converter: the hub reads the clusters the device has. Devices with their own data formats (Tuya datapoint devices, Xiaomi / Aqara, manufacturer-specific clusters) need a converter. There are three types: Built-in converters: a few dozen popular devices (Tuya, Lumi / Aqara, SONOFF, MOES, Third Reality), compiled into the firmware. Generated converters: about 3,900 converters, generated by AI. Coverage: Tuya: about 630 datapoint device models, 508 of them with every datapoint mapped; Philips Hue, IKEA, Aqara / Lumi, SONOFF, Innr, Gledopto, Heiman, Schneider Electric, Sunricher, Namron, Ledvance, Osram, MOES, Legrand, Danfoss, Shelly, Yale, Third Reality and many more. What they carry: the device's entities (with fields, composite climates / covers / lights / fans, schedules, button actions); the device configuration for pairing (bindings, reporting, attribute writes, time sync, periodic queries). Delivery: converters are not part of the firmware. The hub fetches the converter of a paired device from the SMLIGHT server and stores it. U devices download it themselves, and check for a newer version daily. Older devices get it through your browser while the web interface is open. Both are controlled by the setting "Allow downloading device converters from the SMLIGHT server" on the Zigbee Hub settings page. A converter fragment file ( .zcf) can also be installed by hand in the device dialog. Berry ZCN converters: your own converters written in Berry (ESP32-S3 devices). Zigbee Hub → ZCN Builder generates the code. See the Berry ZCN manual. Supported Zigbee clusters These clusters are handled for every device. The hub binds them and configures their reporting at the interview where needed. Cluster ID What you get Power Configuration 0x0001 Battery % and battery voltage (battery devices) Identify 0x0003 Answered as Zigbee 3.0 requires Scenes 0x0005 Scene recall / store of remotes as actions ( recall_1, ...) On/Off 0x0006 State and control; remote commands as actions ( on,  off,  toggle, per button) On/Off Switch Configuration 0x0007 Switch type and switch actions of relays Level Control 0x0008 Brightness, Level settings (on level, transition times, start-up level); remote commands as actions ( brightness_move_up, ...) Analog / Binary / Multistate Input 0x000C / 0x000F / 0x0012 Values named after the device's description, with units and state names Time 0x000A The hub answers the device's time requests (time zone and DST) Poll Control 0x0020 Check-ins answered; queued requests are sent to sleepy devices quickly OTA Upgrade 0x0019 Answered "no image available" (no firmware updates) Door Lock 0x0101 Lock / unlock, lock state, door state, lock operation events as actions Window Covering 0x0102 Open / close / stop, position and tilt Thermostat 0x0201 One climate entity: temperature, setpoint, modes, running state Fan Control 0x0202 Fan mode Thermostat User Interface 0x0204 Display unit, keypad lock Color Control 0x0300 Color, color temperature with the light's own range; remote color commands as actions Illuminance 0x0400 / 0x0401 Illuminance in lux, level status Temperature / Pressure / Flow / Humidity 0x0402 / 0x0403 / 0x0404 / 0x0405 Measurements Occupancy 0x0406 Occupancy CO2 / PM2.5 0x040D / 0x042A CO2 in ppm, PM2.5 in µg/m³ IAS Zone 0x0500 Alarm by zone type (motion, door, smoke, water leak, CO, vibration, ...), tamper, battery low IAS ACE 0x0501 Keypads / alarm remotes: arm / disarm / panic as actions; the hub answers the keypad and keeps the panel status (a select in Home Assistant) IAS WD 0x0502 Siren entity: tone, volume, duration Metering 0x0702 Energy / gas / water totals in the meter's own unit, instantaneous demand (power) Electrical Measurement 0x0B04 Voltage, current, power with the device's own multipliers and divisors Tuya 0xEF00 Datapoints through converters A dimmable endpoint (On/Off + Level, optionally Color) appears as one light, not as a switch and a number. An attribute the device answers as "unsupported" gets no entity. Home Assistant Enable Home Assistant MQTT Discovery on the Zigbee Hub → MQTT page (discovery prefix:  homeassistant by default). The hub then publishes the discovery of every device after each MQTT connection. Devices: every Zigbee device becomes a Home Assistant device, named with the name you give it in the hub, with its model and manufacturer. Entities: sensor, binary sensor, switch, light, cover, climate, fan, lock, siren, number, select, button, text. Actions: buttons and remotes appear as device triggers, ready for automations. Availability: with device availability on, entities become unavailable while the device is offline. Groups: a group appears as a light (members with brightness / color) or a switch. Stale entities: when a device gets a new converter, the old entities it no longer has can be deleted. Use Delete all Home Assistant discovery of the device in the device dialog; the current entities are published again right after. Retain: "Use retain for data topics" keeps the last values on the broker. With the timestamp on, you can see how old a retained value is. Zigbee network management Channel change: pick a new channel on the settings page, or send the MQTT action  channel_change. The hub tells the devices to move with it; sleeping devices follow when they wake up. No re-pairing is needed. The result arrives on  system_info/channel. Network key: Use your own key: the default key is the same on every hub, so generate your own for a new network. A new key on the settings page forms a new network. Change the key keeping the devices: the hub sends the new key to every device, then switches the network to it. A device that missed the key rejoins through the trust center. Install codes: for devices that join only with their install code. Enter the code in the permit join dialog, or send the MQTT action  add_install_code. Accepted formats: QR code text ( Z:...$I:...), Aqara, Hue,  |. Leaves and rejoins: A device that leaves the network is removed after 60 s, unless it comes back. A factory-reset device paired again keeps its name and settings. A device unknown to the hub (for example, from an old network) is asked to leave. Radio watchdog: the hub checks the radio regularly and restarts it if it stops answering. 4.2 Zigbee Hub → Dashboard The Dashboard is the central monitoring page for your Zigbee network. The dashboard contains cards of your ZigBee devices with the data they provide and controls. The dashboard is updated in real time via SSE. Sensor history Numeric sensors store a history of changes over the last 24 hours with a 5-minute interval; in the dashboard, such sensors are marked with a graph icon. To check the history, hover the cursor over the sensor and left-click. You will see a modal window with a graph of sensor changes. You can select a time range: 1h, 6h, or 24h. The hub stores information in 5-minute intervals, including the maximum, minimum, and average. This functionality is available only on U devices. 4.3 Zigbee Hub → Devices The Devices page lists every Zigbee device paired to your coordinator. Pairing control:  Permit Join (+ button on the bottom right side of the device table) – Allow or deny new devices joining the network. For each device, you’ll see: Name / Friendly Name – Human-readable identifier. IEEE Address – Unique device ID. Network Address – Short Zigbee address assigned by the coordinator. Last Seen – Timestamp of the last communication. Powering – Device power source (AC/battery) or ? if the device does not provide information. Link Quality (LQI) – Signal strength indicator. Actions: Rename device Remove/unpair device View device details (clusters, endpoints, bindings) Bind/unbind devices (if supported) Typical uses: Verify devices are online and responsive. Rename devices for easier identification in automations. Remove devices no longer in use. Device config How to rename device Select the pencil icon Enter new name and press "Save". Maximum length - 50 characters. Device config Click on the wrench Binding This menu sends the device a bind request to the coordinator, the device must be active to accept this. If it is a battery-powered device you need to wake it up. Configure reporting Polling Allows you to configure polling of the selected attribute after a certain time interval Exposes Provides information about expected data from the device and examples of using MQTT, HTTP, and Berry API to get or set device state. IMPORTANT! This section provides information about EXPECTED data from the device, based on information about the device clusters or converter (if it exists). This information may not match the actual behavior of the device if it uses non-standard clusters! If this is a Tuya DP device, then information will be displayed here only if a converter exists for the device! Other tools Here you can find the ZCN converter number (if used) and download device information ZCN Builder A helper tool to facilitate the creation of custom Berry converters for your Zigbee devices. Full manual: https://smlight.tech/support/manuals/books/slzb-os/page/berry-zcn-system-manual Network Map Visual representation of your Zigbee network. Groups This page allows you to combine multiple Zigbee relays or lamps into a single group and control them all simultaneously with a single command. Supports up to 32 groups of 32 members each. 4.4 Zigbee Hub → MQTT v3.2.4 and later OS versions Starting with v3.2.4, MQTT can be used independently of the Zigbee Hub and all general MQTT settings have been moved to a separate page. OS versions up to v3.2.4 This page configures the MQTT connection that SLZB-OS uses to communicate with your smart home platform. This screenshot shows an older version of the page Configuration fields include: MQTT Server Address – IP or hostname of your broker (e.g., mqtt://192.168.1.100). Port – Default 1883 for MQTT, 8883 for MQTT over TLS. Username / Password – Broker authentication (if required). Base Topic – Topic prefix for Zigbee messages (default: zhub). Discovery Prefix - Home assistant main topic name. Tips: For Home Assistant with Mosquitto add-on, use the HA IP and port 1883. Always use a unique base topic if you run multiple Zigbee networks. Save and restart Zigbee Hub after making MQTT changes. Backup and Restore Creates a new full backup Allows you to upload a backup to the device's storage Specifies to restore this backup Downloads this backup to your PC Delete this backup 4.5 Zigbee Hub → Settings The Settings page contains deeper configuration for the Zigbee coordinator. v3.4.3.dev3 and later SLZB-OS uses a well-known default network key! If you want to achieve maximum security, you should generate a random network key. Network key Generate - generates a new random network key. Default - sets the default network key. Change the key keeping the devices - Initiates the network key migration procedure while retaining most of your devices. Some sleeping devices may not receive the new key if they are asleep at the time of migration. Device converters Allow downloading device converters from the SMLIGHT server - Enables the downloading (and periodic updating) of special .zcf converters for your paired Zigbee devices. These converters are required to provide support for non-standard Zigbee devices and vendor-locked devices. When this option is enabled, the Zigbee Hub will send the model and manufacturer of a newly paired Zigbee device to our server to search for an available converter, if one is found, it will be downloaded. NO ANY PERSONAL DATA IS SENDED! The Zigbee Hub will check for converter updates every 24 hours. If this option is disabled, support for non-standard Zigbee devices will not be available. Device availability Tracks Zigbee packets from your devices and stores the timestamp of the last received packet. If this time exceeds the limit specified in the settings, it will mark the device as unavailable in the dashboard and via MQTT discovery. Older OS versions Typical settings available: Network Parameters: PAN ID – Zigbee network identifier. Channel – RF channel (11–26; avoid Wi-Fi overlap if possible). Extended PAN ID – Long network identifier. Transmit Power – Radio TX power in dBm (higher = longer range, more power draw). Show in debug log - Select which categories of Zigbee-related information are recorded in the Log & Debug page. Zigbee Hub messages – Logs high-level events from the Zigbee Hub service (e.g., device joins, status updates). Raw Zigbee packets – Logs low-level Zigbee frame data; useful for deep protocol debugging. Zigbee MQTT – Logs MQTT messages related to Zigbee communication, including publishes and subscriptions. Best practices: Change the Zigbee channel only on a fresh network (re-pair required after change). Keep Permit Join disabled most of the time for security. Adjust transmit power to match your coverage needs and regulatory limits. 4.6 Troubleshooting Problems when starting a Zigbee network OS v3.0.9 update is breaking. If you updated OS to v3.0.9 and started getting this error then follow the instructions below Network commissioning timed out - most likely network with the same panId or extendedPanId already exists nearby. Network formation refused there is too much RF interference or network with the same panId or extendedPanId already exists. If you got this error after updating Zigbee chip: - turn off coordinator - turn off ALL Zigbee routers that were connected to Zigbee Hub. This is important, it will not work without this - turn on coordinator. Zigbee Hub should start now but zigbee devices will be unavailable - remove all devices (click on the red trash can) - download and run berry script below, this script will keep permit join enabled as long as it is running #META {"start":0} #Insert your code below import ZHB ZHB.waitForStart(0xFF) while 1 ZHB.permitJoin(254) SLZB.delay(255 * 1000) end - turn back on previously disabled zigbee devices - repair all devices - after devices repaired you can stop and delete script Other cases: - move the coordinator away from the wifi router - make sure there is no other coordinator nearby with the same zigbee network settings MQTT API Zigbee Hub mode has the ability to connect to local or remote MQTT/MQTTS brokers. This document describes MQTT API for SLZB-OS 3.0.9 or higher Topics are divided into IN and OUT. IN - you can send messages to these topics. OUT - Zigbee Hub sends messages to these topics. zHub topics format  is the base topic of the MQTT settings;   is the device's IEEE address in hex (16 digits). Topic Direction Purpose /data//// OUT Values:  {"data":{"val":...}} (with  "ts" when the timestamp is on, see below);  _ for a field of a value /data//lqi OUT Link quality of the device /cmd//// IN Cluster commands (payload: the command's value, or raw hex) /write//// IN Attribute writes /read//// IN Attribute reads /gcmd/// IN Group commands: On/Off  ON /  OFF /  TOGGLE, Level 1..254, Color  #rrggbb /  r,g,b, color temperature (mireds) /gdata/// OUT Group state from its members /availability/ OUT online /  offline (retained, when availability is on) /system_control IN Hub actions (below) /system_info/ OUT Events:  device_joined,  device_annonce,  device_leave,  device_removed,  device_limit,  device_request,  device_converter,  attr_write_rsp,  data_confirm,  channel,  nwk_key Timestamp (Zigbee Hub → MQTT → "Timestamp in data reports", off by default): every value report, link quality and group state gets  "ts", the time the hub received the value. Formats: Setting Example ISO_8601 "2026-10-21T07:15:30Z" ISO_8601_Local "2026-10-21T10:15:30+03:00" (the time zone set on the SLZB device) epoch 1792566930 (seconds) {"data": {"type_sm": "report", "val": "21.50", "status": "SUCCESS", "ts": "2026-10-21T07:15:30Z"}} There is no timestamp until the SLZB device has set its clock over NTP. Data topic (OUT) General data topic format below: base topic / data / zigbee device ieee / zigbee endpoint / zigbee cluster / zigbee attribute base topic - global prefix, so you can have few Zigbee Hubs connected to one broker, you just have to set different base topics. data - static text (topic type) zigbee device ieee - sender IEEE address in HEX format. zigbee endpoint - zigbee endpoint from which this message is coming, DEC format. zigbee cluster - zigbee cluster from which this message is coming, HEX format. zigbee attribute - zigbee attribute from which this message is coming, HEX format. Data topic example: zhub/data/a4c1383439bf5cc9/1/0000/0001 Read topic (IN) (available from v3.3.0) This topic accepts requests to read attributes of ZigBee devices. When you send a message to this topic, the coordinator generates and sends a request for the specified attribute to the target ZigBee device. The device must be online to accept the request, so this is usually used for AC-powered devices. Topic format: base topic / read / zigbee device ieee / zigbee endpoint / zigbee cluster / zigbee attribute base topic - global prefix, so you can have few Zigbee Hubs connected to one broker, you just have to set different base topics. read - static text (topic type) zigbee device ieee - sender IEEE address in HEX format. zigbee endpoint - zigbee endpoint from which this message is coming, DEC format. zigbee cluster - zigbee cluster from which this message is coming, HEX format. zigbee attribute - zigbee attribute from which this message is coming, HEX format. Read topic example:  zhub/read/a4c1383439bf5cc9/1/0006/0000 payload: any text Attribute update will be sent to  data topic! PLEASE NOTE! You must add any text content to the payload! Do not send an empty payload to this topic! An empty payload will only delete this topic (if it exists). The coordinator will not respond to empty payloads. Command topic (IN) This topic is intended for sending ZCL commands to a Zigbee device. General cmd topic format below: base topic / cmd / zigbee device ieee / zigbee endpoint / zigbee cluster / zigbee command base topic - global prefix, so you can have few Zigbee Hubs connected to one broker, you just have to set different base topics. cmd - static text (topic type) zigbee device ieee - target zigbee device IEEE address in HEX format. zigbee endpoint - target zigbee device endpoint to which this message is coming, DEC format. zigbee cluster - target zigbee device cluster to which this message is coming, HEX format. zigbee command - zigbee command to send, HEX format. Some clusters have special handlers for input commands, such as the ON/OFF or Light cluster. You can find their formats below: ON/OFF cluster payload format for command topic ON - send ON command OFF - send OFF command Example:  zhub/cmd/a4c1383439bf5cc9/1/0006 payload: ON Will send command to enable relay or light device. Level control for Light cluster payload format 0000 command payload is a number in DEC from 1 to 254, the larger the number, the brighter the lamp will be. Color control cluster payload format 0007 command payload is a color in HEX or RGB format. For example: 255,29,0 or #FFFFFF 000a command payload is a light temperature in mired. For example: 200 Other clusters If no built-in clusters or ZCN converters has overridden the processing of this command, if the command contains a payload, it must be a HEX string of the following format: - Bytes without spaces, uppercase, multiple of two. Example: 010203FF - Bytes with spaces, uppercase, grouped by two. Example: 01 02 03 FF Write topic (IN) This topic is intended for writing ZigBee device ZCL attributes. General write topic format below: base topic / write / zigbee device ieee / zigbee endpoint / zigbee cluster / zigbee attribute base topic - global prefix, so you can have few Zigbee Hubs connected to one broker, you just have to set different base topics. write - static text (topic type) zigbee device ieee - target zigbee device IEEE address in HEX format. zigbee endpoint - target zigbee device endpoint to which this message is coming, DEC format. zigbee cluster - target zigbee device cluster to which this message is coming, HEX format. zigbee attribute - target zigbee device attribute to which this message is coming, HEX format. Cluster 0006, attribute 4003 payload format Last state - device will remember its state ON - device will be on after power loss OFF - device will be off after power loss Cluster EF00 (Tuya DP) payload format Please note that the write topic format for Tuya is different! base topic / write / zigbee device ieee / 1 / ef00 / data point / data type data point - Tuya data point id. You can read more about it here: https://www.zigbee2mqtt.io/advanced/support-new-devices/03_find_tuya_data_points.html data type - a number that represents the type of data being sent. 0 - RAW,  1 - BOOL,  2 - INT,  3 - STRING,  4 - ENUM,  5 - BITMAP Examples: topic: zhub/write/a4c138d089d1418c/1/ef00/0018/1 payload: 1 Any other clusters/attributes payload format Payload should contain JSON: {"type": , "data":} type - a number that represents the type of data being sent. Zigbee Data Types and Data Type IDs Data Class Data Type Data Type ID Null No data Reserved 0x00 0x01—0x07 General Data 8-bit data 16-bit data 24-bit data 32-bit data 40-bit data 48-bit data 56-bit data 64-bit data 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f Logical Boolean Reserved 0x10 0x11—0x17 Bitmap 8-bit data 16-bit data 24-bit data 32-bit data 40-bit data 48-bit data 56-bit data 64-bit data 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f Unsigned integer Unsigned 8-bit integer Unsigned 16-bit integer Unsigned 24-bit integer Unsigned 32-bit integer Unsigned 40-bit integer Unsigned 48-bit integer Unsigned 56-bit integer Unsigned 64-bit integer 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 Signed integer Signed 8-bit integer Signed 16-bit integer Signed 24-bit integer Signed 32-bit integer Signed 40-bit integer Signed 48-bit integer Signed 56-bit integer Signed 64-bit integer 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f Enumeration 8-bit enumeration 16-bit enumeration Reserved 0x30 0x31 0x32—0x37 Floating point Semi-precision Single precision Double precision Reserved 0x38 0x39 0x3a 0x3b—0x3f String Reserved Octet string Character string Long octet string Long character string Reserved 0x40 0x41 0x42 0x43 0x44 0x45—0x47 Ordered sequence Array Reserved Structure Reserved 0x48 0x49—0x4b 0x4c 0x4d—0x4f Collection Set Bag Reserved 0x50 0x51 0x52—0x57 Reserved - 0x58—0xdf Time Time of day Date UTC Time Reserved 0xe0 0xe1 0xe2 0xe3—0xe7 Identifier Cluster ID Attribute ID BACnet ID Reserved 0xe8 0xe9 0xea 0xeb—0xef Miscellaneous IEEE Address 128-bit security key Reserved 0xf0 0xf1 0xf2—0xfe Unknown Unknown 0xff data - a HEX string of the following format: - Bytes without spaces, uppercase, multiple of two. Example: 010203FF - Bytes with spaces, uppercase, grouped by two. Example: 01 02 03 FF Please note that the number of bytes in the payload strictly depends on the data type! For example, if you send data with type 16-bit integer, the number of bytes in the payload should be 2. Example:  {"type": 33, "data":"0000"} 33 - is 0x21 converted to DEC System control topic (IN) (available from v3.3.0) This topic allows you to control main functions of the Zigbee Hub. Topic format: base topic / system_control Payload format: {"action": "", } {"action": "permit_join", "time": 60} {"action": "channel_change", "channel": 25} {"action": "nwk_key_rotate"} {"action": "add_install_code", "code": "Z:00124B00...$I:..."} {"action": "binding", "mode": "to_coordinator", "scrIeee": "...", "scrEp": 1, "scrCl": 6} {"action": "binding", "mode": "to_device", "scrIeee": "...", "scrEp": 1, "scrCl": 6, "dstIeee": "...", "dstEp": 1} {"action": "configure_reporting", "ieee": "...", "ep": 1, "cl": 1026, "attr": 0, "dType": 41, "minRep": 10, "maxRep": 3600, "change": 10} Permit join action Allows you to open a ZigBee network to add new devices. Payload format: {"action": "permit_join", "time":