Remove Commands section

Michael Ingraham 2019-11-06 11:57:49 -05:00
parent d2c23f9a8a
commit c541db8d66
1 changed files with 1 additions and 211 deletions

212
Zigbee.md

@ -333,217 +333,7 @@ ZIG: zigbee device ready, listening...
``` ```
## Using Z2T ## Using Z2T
[Zigbee to Tasmota Configuration and Setup](Zigbee-Commands)
### Z2T Commands
Here are the additional commands available when Zigbee is activated. Note: Zigbee will automatically boot the CC2530 device, configure it and wait for Zigbee messages.
|Command|Paramaters|
|---|---|
|ZigbeePermitJoin|Enables or disables pairing of new devices, see below.<BR><BR>`ZigbeePermitjoin 1` enables pairing for 60 seconds<BR>`ZigbeePermitJoin 99` enables pairing until next boot<BR>`ZigbeePermitJoin 0` disables pairing|
|ZigbeeReset|Does a full reset and reconfiguration of the CC2530. Warning: you will need to re-pair all Zigbee devices<BR><BR>Ex: `ZigbeeReset 1`|
|ZigbeeStatus|Shows data collected from connected Zigbee devices, see examples below.<BR><BR>`ZigbeeStatus` shows the list of all Zigbee devices seen on the network until last boot, with their short address and friendly name.<BR>`ZigbeeStatus 1` adds Manufacturer ID and Model ID of each devices<BR>`ZigbeeStatus 2` adds list of endpoints of each device and the clusterIds supported in each endpoint.|
|ZigbeeZCLSend|Send a raw ZCL message to a Zigbee device. This is a low-level command, and requires to manually build the ZCL parameters. Most common usage will be provided as high-level functions.|
### Z2T Status
You can inspect the log output to determine whether Z2T started correctly. Z2T sends several `ZigbeeStatus` messages to inform the MQTT host about initialization:
Ex: ```{"ZigbeeStatus":{"Status":1,"Message":"CC2530 booted","RestartReason":"Watchdog","MajorRel":2,"MinorRel":6}}```
- `Status` contains a numeric code about the status message
- `0`: initialization complete, **Z2T is running normally**
- `1`: booting
- `2`: resetting CC2530 configuration
- `3`: starting Zigbee coordinator
- `20`: disabling Permit Join
- `21`: allowing Permit Join for 60 seconds
- `22`: allowing Permit Join until next boot
- `30`: Zigbee device connects or reconnects
- `31`: Received Node Descriptor information for a Zigbee device
- `32`: Received the list of active endpoints for a Zigbee device
- `33`: Received the simple Descriptor with active ZCL clusters for a Zigbee device
- `50`: reporting CC2530 firmware version
- `51`: reporting CC2530 device information and associated devices
- `98`: error, unsupported CC2530 firmware
- `99`: general error, **Z2T was unable to start**
- `Message` (optional) a human-readable message
- other fields depending on the message (Status=50 or Status=51)
### Permit Join
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`
### 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.
Example: [Xiaomi Aqara Sensor](https://www.aliexpress.com/item/32876734250.html)
<img src="https://user-images.githubusercontent.com/49731213/64921315-3a1b3680-d7c2-11e9-94a1-32e6ac6d4e72.jpg" width="140">
This sensor monitors humidity, temperature, and air pressure. Its Zigbee model ID is `lumi.weather`.
1. Put Z2T into pairing mode using the `ZigbeePermitJoin` command as described above
2. Press the Xiaomi Aqara sensor's button for 5 seconds to pair the devices. You will see a message as follows:
```
MQT: tele/<topic>/RESULT = {"ZigbeeStatus":{"Status":30,"IEEEAddr":"00158D00036B50AE","ShortAddr":"0x8F20","PowerSource":false,"ReceiveWhenIdle":false,"Security":false}}
```
|Field name|Value|
|---|---|
|`Status`|`30` indicates a device connect or reconnect. This is the opportunity to match IEEEAddress and short address|
|`IEEEAddr`|Long unique address (64 bits) of the device - factory set|
|`ShortAddr`|Short address (16 bits) randomly assigned to the device on this Zigbee network|
|`PowerSource`|`true` = the device is connected to a power source<BR>`false` = the device runs on battery|
|`ReceiveWhenIdle`|`true` = the device can receive commands when idle<BR>`false` = the device is not listening. Commands should be sent when the device reconnects and is idle|
|`Security`|Security capability (meaning unknown, to be determined)|
This device publishes sensor values roughly every hour or when a change occurs. You can also force an update pressing the device's button. It sends two kinds of messages, either 3x standard Zigbee messages, or a single proprietary message containing all sensor values.
Examples:
```
MQT: tele/<topic>/RESULT = {"0x8F20":{"Humidity":23.47}}
MQT: tele/<topic>/RESULT = {"0x8F20":{"Temperature":59.85}}
MQT: tele/<topic>/RESULT = {"0x8F20":{"Pressure":1005,"PressureUnit":"hPa"}}
MQT: tele/<topic>/RESULT = {"0x8F20":{"Temperature":23.47,"Humidity":58.97,"Pressure":1005.8,"PressureUnit":"hPa","Voltage":3.005,"Battery":100}}
MQT: tele/<topic>/RESULT = {"0x8F20":{"ModelId":"lumi.weather"}}
```
`0x8F20` is the ShortAddress of the sensor.
Supported values:
|Field name|Value|
|---|---|
|`Humidity`|Humidity in percentage (float)|
|`Pressure` and `PressureUnit`|Atmospheric pressure (float) and unit (string)<BR>Currently only `hPa` (A.K.A. mbar) is supported|
|`Temperature`|Temperature in Celsius (float)|
|`Voltage`|Battery voltage (float)|
|`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`.
List all connected devices with `ZigbeeStatus`
```yaml
{"ZigbeeStatus-99":[{"ShortAddr":"0x6B58"},{"ShortAddr":"0xE9C3"},{"ShortAddr":"0x3D82"}]}
```
_(JSON pretty-printed for readability)_
```yaml
{
"ZigbeeStatus-99": [
{
"ShortAddr":"0x6B58"
},
{
"ShortAddr":"0xE9C3"
},
{
"ShortAddr":"0x3D82"
}
]
}
```
Get detailed information for each device, including long address, model and manufacturer with `ZigbeeStatus 1`:
```yaml
{"ZigbeeStatus1":[{"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
{
"ZigbeeStatus1": [
{
"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"
}
]
}
```
Get information about endpoints and ZCL clusters supported with `ZigbeeStatus 2`:
```yaml
{"ZigbeeStatus2":[{"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
{
"ZigbeeStatus2": [
{
"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",
" ...
}
}
}
]
}
```
## Why another Zigbee project? ## Why another Zigbee project?
There are several excellent open-source Zigbee to MQTT solutions like the widely used [Zigbee2mqtt](https://www.zigbee2mqtt.io/) or [Aqara Hub](https://github.com/Frans-Willem/AqaraHub). Zigbee2mqtt is a comprehensive solution but requires at least a Raspberry Pi to run it. Z2T is a lightweight solution running on an ESP82xx Wi-Fi chip. Hence it is easier to deploy in your living room or around your home. There are several excellent open-source Zigbee to MQTT solutions like the widely used [Zigbee2mqtt](https://www.zigbee2mqtt.io/) or [Aqara Hub](https://github.com/Frans-Willem/AqaraHub). Zigbee2mqtt is a comprehensive solution but requires at least a Raspberry Pi to run it. Z2T is a lightweight solution running on an ESP82xx Wi-Fi chip. Hence it is easier to deploy in your living room or around your home.