Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"adapter" to "coordinator" #3540

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ actions:
type: primary
features:
- title: Compatible
details: Zigbee2MQTT supports various Zigbee adapters and a big bunch of devices.
details: Zigbee2MQTT supports various Zigbee coordinators and a big bunch of devices.
- title: Integrations
details: Zigbee2MQTT integrates well with most home automation solutions because it uses MQTT.
- title: Open Source
Expand Down
14 changes: 7 additions & 7 deletions docs/advanced/remote-adapter/connect_to_a_remote_adapter.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Connect to a remote adapter
# Connect to a remote coordinator

This how-to explains how to run Zigbee2MQTT with an adapter on a remote location.
This how-to explains how to run Zigbee2MQTT with an coordinator on a remote location.
We will use ser2net for this which allows to connect to a serial port over TCP.
In this way you can e.g. setup a Raspberry Pi Zero with the adapter connected while running Zigbee2MQTT on a different system. The instructions below have to be executed on the system where the adapter is connected to.
In this way you can e.g. setup a Raspberry Pi Zero with the coordinator connected while running Zigbee2MQTT on a different system. The instructions below have to be executed on the system where the coordinator is connected to.

::: warning
Be aware that it is not recommended to use a Zigbee Coordinator via a Serial-Proxy-Server (also known as Serial-to-IP bridge or Ser2Net remote adapter) over a WiFi, WAN, or VPN connection.
Be aware that it is not recommended to use a Zigbee Coordinator via a Serial-Proxy-Server (also known as Serial-to-IP bridge or Ser2Net remote coordinator) over a WiFi, WAN, or VPN connection.

Serial protocols used by Zigbee Coordinator do not have enough robustness, resilience, or fault-tolerance to handle packet loss and latency delays that can occur over unstable connections.

Expand All @@ -26,7 +26,7 @@ sudo apt-get install ser2net
sudo nano /etc/ser2net.conf
```

Add the following entry, replace `/dev/ttyACM0` with the correct path to your adapter.
Add the following entry, replace `/dev/ttyACM0` with the correct path to your coordinator.

```
20108:raw:0:/dev/ttyACM0:115200 8DATABITS NONE 1STOPBIT
Expand All @@ -44,7 +44,7 @@ reboot
sudo nano /etc/ser2net.yaml
```

Add the following entry, replace `/dev/ttyACM0` with the correct path to your adapter.
Add the following entry, replace `/dev/ttyACM0` with the correct path to your coordinator.

```
connection: &con01
Expand Down Expand Up @@ -82,7 +82,7 @@ reboot

## 3. Configure

Now edit the Zigbee2MQTT `configuration.yaml` accordingly, replace `192.168.2.13` with the IP or hostname of your system where the adapter is connected to.
Now edit the Zigbee2MQTT `configuration.yaml` accordingly, replace `192.168.2.13` with the IP or hostname of your system where the coordinator is connected to.

```yaml
serial:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ For flashing procedure follow [DigiBlurs guide](https://www.digiblur.com/2020/07

## 2. Configure

Now edit the Zigbee2MQTT `configuration.yaml` accordingly, replace `192.168.2.13` with the IP or hostname of your system where the adapter is connected to. Also replace `20108` with the port you configured while flashing the Gateway (in step 6 from previous point).
Now edit the Zigbee2MQTT `configuration.yaml` accordingly, replace `192.168.2.13` with the IP or hostname of your system where the coordinator is connected to. Also replace `20108` with the port you configured while flashing the Gateway (in step 6 from previous point).

Keep in mind that the EZSP support is currently **experimental**.

Expand Down
18 changes: 9 additions & 9 deletions docs/advanced/zigbee/02_improve_network_range_and_stability.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,30 @@

In case you are experiencing an unstable or bad network range you can do the following things to improve your network.

## Adapter
## Coordinator

Use a [recommended](../../guide/adapters/README.md) adapter, especially the CC2530 and CC2531 are known to perform poorly.
Use a [recommended](../../guide/adapters/README.md) coordinator, especially the CC2530 and CC2531 are known to perform poorly.

## Avoid devices from AwoX

It is known that AwoX devices cause network issues. In case you are having issues, remove them from your network.
It [may help](https://github.com/Koenkk/zigbee2mqtt/discussions/18366) to OTA update your device via the "AwoX HomeControl" app over Bluetooth.

## USB based adapter
## USB based coordinator

The range of these adapters can greatly be improved when connecting them with an USB extension
cable instead of directly plugging it into the computer (e.g. Raspberry Pi). When plugged directly into the computer, the antenna suffers from interference of radio signals and electrical components of the computer. Also be sure not to position the adapter too close
The range of these coordinators can greatly be improved when connecting them with an USB extension
cable instead of directly plugging it into the computer (e.g. Raspberry Pi). When plugged directly into the computer, the antenna suffers from interference of radio signals and electrical components of the computer. Also be sure not to position the coordinator too close
to any other radio transmitting devices (e.g. a Wi-Fi router) or an SSD.

A **USB extension cable** of 50 cm is already enough to reduce the interference. Preferably get one with shielding as this may give better results ([source](https://www.reddit.com/r/homeassistant/comments/10ebkis/psareminder_about_zigbee_interference/)).

**Do not underestimate this!** Placing your adapter close to an USB port can kill the radio signal entirely as demonstrated in [this article](https://www.unit3compliance.co.uk/2-4ghz-intra-system-or-self-platform-interference-demonstration/).
**Do not underestimate this!** Placing your coordinator close to an USB port can kill the radio signal entirely as demonstrated in [this article](https://www.unit3compliance.co.uk/2-4ghz-intra-system-or-self-platform-interference-demonstration/).

Additionally, it may help to plug the adapter to a USB 2 instead of USB 3 port.
Additionally, it may help to plug the coordinator to a USB 2 instead of USB 3 port.

### Try different orientations of the adapter
### Try different orientations of the coordinator

RF connection between the adapter and other devices also depends on the way it is oriented in space. You might be having very poor `linkquality` reports and intermittent ping failures but once the adapter is rotated a little it all can change greatly without re-locating the coordinator far away. Try to experiment with positioning and orienting the adapter in space while monitoring the `linkquality` values reported. You might find it useful to buy a small rotating USB connector like this:
RF connection between the coordinator and other devices also depends on the way it is oriented in space. You might be having very poor `linkquality` reports and intermittent ping failures but once the coordinator is rotated a little it all can change greatly without re-locating the coordinator far away. Try to experiment with positioning and orienting the coordinator in space while monitoring the `linkquality` values reported. You might find it useful to buy a small rotating USB connector like this:

![rotating USB connector](https://i.imgur.com/AI41Oxz.png)

Expand Down
26 changes: 13 additions & 13 deletions docs/advanced/zigbee/04_sniff_zigbee_traffic.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Download and install [Npcap](https://nmap.org/npcap/) and make sure you select t

### Usage

Use Adapter for loopback traffic capture. Then set the Zigbee protocol filter: `udp.port==17754` (default ZEP port) to only see Zigbee traffic.
Use Coordinator for loopback traffic capture. Then set the Zigbee protocol filter: `udp.port==17754` (default ZEP port) to only see Zigbee traffic.

Wireshark will start and log the Zigbee messages once the sniffer is started. As these messages are encrypted we need to add 2 encryption keys. The first one is the Trust Center link key, which is the same for (almost) every Zigbee network. The second one is the network encryption key (Transport Key).

Expand Down Expand Up @@ -81,9 +81,9 @@ Now Wireshark is able to decrypt the messages. When e.g. turning on a light you
- Computer
- Ubuntu / Debian machine (tested with Ubuntu 18.04 / 18.10 and Debian 10)
- Windows machine (tested with Windows 10)
- CC2531 adapter
- CC2531 coordinator

### 1. Flashing the CC2531 adapter
### 1. Flashing the CC2531 coordinator

The CC2531 needs to be flashed with a sniffer firmware. Flash the firmware using the instructions from [Flashing the CC2531](../../guide/adapters/flashing/flashing_the_cc2531.md).

Expand Down Expand Up @@ -155,17 +155,17 @@ Run the ZBOSS executable in `gui\zboss_sniffer.exe`, enter the path to your Wire
- If you get `couldn't run /usr/bin/dumpcap in child process: permission denied` when running whsniff, check if /usr/bin/dumpcap is executable for everyone. Or `chmod 755 /usr/bin/dumpcap`.
- You may need to remove `modemmanager` as this has been known to cause issues. [Howto](../../guide/faq/README.md#modemmanager-is-installed)

## With EmberZNet and HUSBZB-1 adapters
## With EmberZNet and HUSBZB-1 coordinators

### Prerequisites for USB adapters
### Prerequisites for USB coordinators

#### Linux

The adapter should work out of the box and require no extra step.
The coordinator should work out of the box and require no extra step.

#### Windows

Install drivers (whichever works for your adapter):
Install drivers (whichever works for your coordinator):

- [Silicon Labs CP210x Universal Windows Driver](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads)
- Extract drivers to a folder
Expand All @@ -181,7 +181,7 @@ Install drivers (whichever works for your adapter):
- Linux machine (tested with Debian 12 64-bit)
- Windows machine (tested with Windows 11)
- MacOS machine
- EmberZNet or HUSBZB-1 adapter
- EmberZNet or HUSBZB-1 coordinator
- Wireshark (optional, can write directly to a [PCAP file](https://github.com/Nerivec/ember-zli/wiki/Sniff#sending-to-pcap-file) instead)
- NodeJS / npm (if using npm-based installation method)

Expand All @@ -200,7 +200,7 @@ Install drivers (whichever works for your adapter):
- Computer
- Linux machine (tested with Ubuntu 18.10)
- Windows machine (tested with Windows 10)
- EmberZNet or HUSBZB-1 adapter
- EmberZNet or HUSBZB-1 coordinator
- Wireshark
- Java

Expand All @@ -211,24 +211,24 @@ Both Windows and Linux use the same program for sniffing. You can fetch a precom
You can also find a PDF documentation from ZSmart Systems [here](https://www.opensmarthouse.org/files/download/ZigBeeWiresharkSniffer.pdf).

::: tip TIP
Linux: Some EmberZNet adapters use the exact same USB identifiers as a brltty udev-registered device, so if your EmberZNet USB dongle is not recognized, just disable the rule of brltty for idVendor=1a86, idProduct=7523 (same as the CH340 serial converter used in the EmberZNet adapter). Edit /`usr/lib/udev/rules.d/85-brltty.rules` and comment `# ENV{PRODUCT}=="1a86/7523/*", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"`. Unplug and replug the EmberZNet adapter.
Linux: Some EmberZNet coordinators use the exact same USB identifiers as a brltty udev-registered device, so if your EmberZNet USB dongle is not recognized, just disable the rule of brltty for idVendor=1a86, idProduct=7523 (same as the CH340 serial converter used in the EmberZNet coordinator). Edit /`usr/lib/udev/rules.d/85-brltty.rules` and comment `# ENV{PRODUCT}=="1a86/7523/*", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"`. Unplug and replug the EmberZNet coordinator.
:::

#### 2. Sniffing traffic

In a terminal or command line, run `java -jar ZigbeeSniffer.jar -baud 115200 -flow {OPTION} -port {PORT} -c {CHANNEL}`.

Depending on your adapter, `OPTION` should be replaced by `none` (Sonoff Dongle-E, SLZB-06m...) or `hardware` (HUSBZB-1, SkyConnect...).
Depending on your coordinator, `OPTION` should be replaced by `none` (Sonoff Dongle-E, SLZB-06m...) or `hardware` (HUSBZB-1, SkyConnect...).

##### Windows

Open the Device Manager (Win+X, M) and find which COM port your adapter is using in `Ports (COM & LPT)`. It should be something like COM3, COM6. `PORT` should be replaced by that value.
Open the Device Manager (Win+X, M) and find which COM port your coordinator is using in `Ports (COM & LPT)`. It should be something like COM3, COM6. `PORT` should be replaced by that value.

##### Linux

`PORT` will be something like `/dev/ttyUSB0` or wherever you plugged in your HUSBZB-1 device.

## With nRF52 adapter
## With nRF52 coordinator

### Prerequisites

Expand Down
22 changes: 11 additions & 11 deletions docs/guide/adapters/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ sidebarDepth: 1
next: ../installation/
---

# Supported Adapters
# Supported Coordinators

All officially supported adapters are listed on this page. Note that before an adapter can be used with Zigbee2MQTT it has to be flashed with a coordinator firmware (some adapters come preflashed).
All officially supported coordinators are listed on this page. Note that before an coordinator can be used with Zigbee2MQTT it has to be flashed with a coordinator firmware (some coordinators come preflashed).

- [zStack based (Texas Instruments)](./zstack.md)
- [EmberZNet based (Silicon Labs)](./emberznet.md)
Expand All @@ -14,31 +14,31 @@ All officially supported adapters are listed on this page. Note that before an a
- [ZBOSS based (Nordic Semiconductor)](./zboss.md)

::: tip TIP
Want to migrate to a different adapter? Read [this](../faq/README.md#how-do-i-migrate-from-one-adapter-to-another)
Want to migrate to a different coordinator? Read [this](../faq/README.md#how-do-i-migrate-from-one-adapter-to-another)
:::

## Notes

Before buying an adapter, please read the notes below!
Before buying an coordinator, please read the notes below!

- Want to migrate to a different adapter? This may require repairing all your devices in some cases, see [FAQ](../faq/README.md#what-does-and-does-not-require-repairing-of-all-devices)
- Network adapters connected via WiFi might have reduced stability as the serial protocol does not have enough fault-tolerance to handle packet loss or latency delays that can normally occur over WiFi connections. If cannot use a locally connected USB or UART/GPIO adapter then the recommendation is to use remote adapter that connected via Ethernet (wired) to avoid issues.
- Want to migrate to a different coordinator? This may require repairing all your devices in some cases, see [FAQ](../faq/README.md#what-does-and-does-not-require-repairing-of-all-devices)
- Network coordinators connected via WiFi might have reduced stability as the serial protocol does not have enough fault-tolerance to handle packet loss or latency delays that can normally occur over WiFi connections. If cannot use a locally connected USB or UART/GPIO coordinator then the recommendation is to use remote coordinator that connected via Ethernet (wired) to avoid issues.
- What are the differences between the various CC2652/CC1352 chips?
- Chips ending with `P` have a power amplifier which support up-to 20dBm vs 5dBm on adapters ending with `R`/`RB`.
- Chips ending with `P` have a power amplifier which support up-to 20dBm vs 5dBm on coordinators ending with `R`/`RB`.
- Chips starting with `CC1352` support the sub-1 GHz frequency (which is not relevant for Zigbee since it uses 2.4 GHz), `CC2652` only supports 2.4 GHz. So for Zigbee2MQTT purposes there is no difference between `CC1352` and `CC2652`.
- Chips ending with `RB` don't require a crystal on the PCB, this only makes a difference for the manufacturing process.

### Coordinator backups

Note that only adapters based on zStack or EmberZNet currently support backing up the coordinator (`coordinator_backup.json`).
Note that only coordinators based on zStack or EmberZNet currently support backing up the coordinator (`coordinator_backup.json`).

#### Flashing an existing adapter
#### Flashing an existing coordinator

Flashing tools can be used to upgrade the firmware on an existing adapter without needing to repair devices. See the [FAQ](https://www.zigbee2mqtt.io/guide/faq/#what-does-and-does-not-require-repairing-of-all-devices) for information on what does and does not require repairing of devices.
Flashing tools can be used to upgrade the firmware on an existing coordinator without needing to repair devices. See the [FAQ](https://www.zigbee2mqtt.io/guide/faq/#what-does-and-does-not-require-repairing-of-all-devices) for information on what does and does not require repairing of devices.

#### Is your OS unable to find your device?

If you're asking yourself "Why won't my dongle or adapter show up?" when you are using (for example) Flash Programmer 2, chances are that your OS can't communicate with your device over VCP (Virtual COM Port) serial port, causing your dongle not showing up as a flashable device. To fix this problem, be sure to install a USB-to-UART bridge/converter VCP driver for your operating system like the one at [Silicon Labs](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers), [FTDI Chip](https://ftdichip.com/drivers/vcp-drivers/), or [WCH (CH34x/CH91xx)](http://www.wch-ic.com/downloads/category/30.html).
If you're asking yourself "Why won't my dongle or coordinator show up?" when you are using (for example) Flash Programmer 2, chances are that your OS can't communicate with your device over VCP (Virtual COM Port) serial port, causing your dongle not showing up as a flashable device. To fix this problem, be sure to install a USB-to-UART bridge/converter VCP driver for your operating system like the one at [Silicon Labs](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers), [FTDI Chip](https://ftdichip.com/drivers/vcp-drivers/), or [WCH (CH34x/CH91xx)](http://www.wch-ic.com/downloads/category/30.html).

### Router

Expand Down
4 changes: 2 additions & 2 deletions docs/guide/adapters/deconz.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# deCONZ (Dresden Elektronik)

::: warning ATTENTION
Various features are not supported by this adapter, in case you depend on these features, consider a different adapter.
Various features are not supported by this coordinator, in case you depend on these features, consider a different coordinator.

- [Changing the channel](../configuration/zigbee-network.md#changing-the-zigbee-channel), changing requires re-pairing all devices.
- Adding [install codes](../../guide/usage/mqtt_topics_and_messages.md#zigbee2mqttbridgerequestinstall_codeadd), which is required to pair some devices.
Expand All @@ -24,7 +24,7 @@ Other supported settings are: `adapter_concurrent` and `adapter_delay` ([docs](.

ConBee / ConBee II / ConBee III / RaspBee / RaspBee II

USB connected adapters (ConBee / ConBee II / ConBee III) and Raspberry Pi GPIO modules (RaspBee and RaspBee II).
USB connected coordinators (ConBee / ConBee II / ConBee III) and Raspberry Pi GPIO modules (RaspBee and RaspBee II).

Add the correct baudrate to the `configuration.yaml` into the serial section.

Expand Down
Loading