From 285caa31949037a40fad20a5b5f52141147dcaff Mon Sep 17 00:00:00 2001 From: Michael Ingraham <34340210+meingraham@users.noreply.github.com> Date: Tue, 12 Nov 2019 16:12:20 -0500 Subject: [PATCH] Updated Zigbee Operation (markdown) --- Zigbee-Operation.md | 52 +++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/Zigbee-Operation.md b/Zigbee-Operation.md index 4670653c..7da9c137 100644 --- a/Zigbee-Operation.md +++ b/Zigbee-Operation.md @@ -6,8 +6,7 @@ Refer to the [Zigbee Commands](Commands#zigbee) Note: Zigbee will automatically boot the CC2530 device, configure it and wait for Zigbee messages. ### Z2T Status -You can inspect the log output to determine whether Z2T started correctly. Z2T sends several [`ZigbeeStatus`](Commands#zigbeestatus) messages to inform the MQTT host about initialization. - +You can inspect the log output to determine whether Z2T started correctly. Z2T sends several status messages to inform the MQTT host about initialization. Ex: ```{"ZigbeeState":{"Status":1,"Message":"CC2530 booted","RestartReason":"Watchdog","MajorRel":2,"MinorRel":6}}``` - `Status` contains a numeric code about the status message @@ -29,17 +28,8 @@ Ex: ```{"ZigbeeState":{"Status":1,"Message":"CC2530 booted","RestartReason":"Wat - `Message` (optional) a human-readable message - other fields depending on the message (e.g., Status=`50` or Status=`51`) - - -### ZigbeePermitJoin -By default, and for security reasons, the Zigbee coordinator does not automatically accept new devices. To pair new devices, use one of the following commands: -- `ZigbeePermitJoin 1`: enables pairing for 60 seconds -- `ZigbeePermitJoin 99`: enables pairing until next boot - -Then put your Zigbee device into pairing mode. This is usually accomplished by pressing the button on the device for 5 seconds or more. - -To stop pairing, use: -- `ZigbeePermitJoin 0` +### Pairing Zigbee Devices +By default, and for security reasons, the Zigbee coordinator does not automatically accept new devices. To pair new devices, use [`ZigbeePermitJoin 1`](Commands#zigbeepermitjoin). Once Z2T is in pairing mode, put the Zigbee device into pairing mode. This is usually accomplished by pressing the button on the device for 5 seconds or more. To stop pairing, use [`ZigbeePermitJoin 0`](Commands#zigbeepermitjoin). ### Reading sensors Sensor messages are published via MQTT when they are received from the Zigbee device. Unlike Zigbee2MQTT, there is currently no debouncing nor caching. @@ -87,10 +77,10 @@ Supported values: |`Battery`|Battery charge in percentage (integer)| |`ModelId`|Model name of the Zigbee device (string)
Ex: `lumi.weather`| -### Other commands -You can dump the internal information gathered about connected Zigbee devices with the command `ZigbeeStatus`. +### Device Information +You can dump the internal information gathered about connected Zigbee devices with the command [`ZigbeeStatus`](Commands#zigbeestatus). -List all connected devices with `ZigbeeStatus` +`ZigbeeStatus1` - List all connected devices ```yaml {"ZigbeeState-99":[{"ShortAddr":"0x6B58"},{"ShortAddr":"0xE9C3"},{"ShortAddr":"0x3D82"}]} ``` @@ -112,15 +102,15 @@ _(JSON pretty-printed for readability)_ } ``` -Get detailed information for each device, including long address, model and manufacturer with `ZigbeeStatus 1`: +`ZigbeeStatus 2` - Display detailed information for each device, including long address, model and manufacturer: ```yaml -{"ZigbeeState1":[{"ShortAddr":"0x6B58","IEEEAddr":"7CB03EAA0A0292DD","ModelId":"Plug 01","Manufacturer":"OSRAM"},{"ShortAddr":"0xE9C3","IEEEAddr":"00158D00036B50AE","ModelId":"lumi.weather","Manufacturer":"LUMI"},{"ShortAddr":"0x3D82","IEEEAddr":"0017880102FE1DBD","ModelId":"LWB010","Manufacturer":"Philips"}]} +{"ZigbeeState2":[{"ShortAddr":"0x6B58","IEEEAddr":"7CB03EAA0A0292DD","ModelId":"Plug 01","Manufacturer":"OSRAM"},{"ShortAddr":"0xE9C3","IEEEAddr":"00158D00036B50AE","ModelId":"lumi.weather","Manufacturer":"LUMI"},{"ShortAddr":"0x3D82","IEEEAddr":"0017880102FE1DBD","ModelId":"LWB010","Manufacturer":"Philips"}]} ``` _(JSON pretty-printed for readability)_ ```yaml { - "ZigbeeState1": [ + "ZigbeeState2": [ { "ShortAddr": "0x6B58", "IEEEAddr": "7CB03EAA0A0292DD", @@ -143,15 +133,24 @@ _(JSON pretty-printed for readability)_ } ``` -Get information about endpoints and ZCL clusters supported with `ZigbeeStatus 2`: +#### Identifying Target Device Endpoints +You can use `ZigbeeStatus3` to display information about all the endpoints and ZCL clusters supported. If probing was successful (at pairing time or using `ZigbeeProbe`), Tasmota will automatically find the right endpoint. If the device was not probed, you need to specify the endpoint explicitly. It is always better to explicitly add the endpoint number if you know it. + +##### Known Endpoints + +Device|Endpoint +-|- +OSRAM Plug|`0x03` +Philips Hue Bulb|`0x0B` + ```yaml -{"ZigbeeState2":[{"ShortAddr":"0x6B58","Endpoints":{"0x03":{"ProfileId":"0xC05E","ProfileIdName":"ZigBee Light Link","ClustersIn":["0x1000","0x0000","0x0003","0x0004","0x0005","0x0006","0x0B04","0xFC0F"],"ClustersOut":["0x0019"]}}},{"ShortAddr":"0xE9C3","Endpoints":{"0x01":{"ProfileId":"0x0104","ClustersIn":["0x0000","0x0003","0xFFFF","0x0402","0x0403","0x0405"],"ClustersOut":["0x0000","0x0004","0xFFFF"]}}},{"ShortAddr":"0x3D82","Endpoints":{"0x0B":{"ProfileId":"0xC05E"," ... +{"ZigbeeState3":[{"ShortAddr":"0x6B58","Endpoints":{"0x03":{"ProfileId":"0xC05E","ProfileIdName":"ZigBee Light Link","ClustersIn":["0x1000","0x0000","0x0003","0x0004","0x0005","0x0006","0x0B04","0xFC0F"],"ClustersOut":["0x0019"]}}},{"ShortAddr":"0xE9C3","Endpoints":{"0x01":{"ProfileId":"0x0104","ClustersIn":["0x0000","0x0003","0xFFFF","0x0402","0x0403","0x0405"],"ClustersOut":["0x0000","0x0004","0xFFFF"]}}},{"ShortAddr":"0x3D82","Endpoints":{"0x0B":{"ProfileId":"0xC05E"," ... ``` _(JSON pretty-printed for readability)_ ```yaml { - "ZigbeeState2": [ + "ZigbeeState3": [ { "ShortAddr": "0x6B58", "Endpoints": { @@ -206,4 +205,11 @@ _(JSON pretty-printed for readability)_ } ] } -``` \ No newline at end of file +``` + +Ex: OSRAM Zigbee plug: +```yaml +{"Device":"0x69CF","IEEEAddr":"0000000000000000","ModelId":"Plug 01","Manufacturer":"OSRAM","Endpoints":{"0x03":{"ProfileId":"0xC05E","ProfileIdName":"ZigBee Light Link","ClustersIn":["0x1000","0x0000","0x0003","0x0004","0x0005","0x0006","0x0B04","0xFC0F"],"ClustersOut":["0x0019"]}}} +``` + +The message above shows that the device supports only one endpoint `0x03` which accepts messages (`ClustersIn`) for clusters `"0x1000","0x0000","0x0003","0x0004","0x0005","0x0006","0x0B04","0xFC0F"`.