Updated Zigbee Operation (markdown)

Michael Ingraham 2019-11-12 16:12:20 -05:00
parent 7fbeb62708
commit 285caa3194
1 changed files with 29 additions and 23 deletions

@ -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)<BR>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)_
}
]
}
```
```
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"`.