mirror of https://github.com/arendst/Tasmota.git
Remove Commands section
parent
d2c23f9a8a
commit
c541db8d66
212
Zigbee.md
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.
|
||||||
|
|
Loading…
Reference in New Issue