howto patched
This commit is contained in:
@@ -24,7 +24,7 @@ ls -l /dev/serial/by-id/
|
|||||||
You should see a persistent device path similar to:
|
You should see a persistent device path similar to:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
/dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_...
|
/dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_2281293efa9aef1190f1b69061ce3355-if00-port0 -> ../../ttyUSB0
|
||||||
```
|
```
|
||||||
|
|
||||||
Use this `/dev/serial/by-id/...` path instead of `/dev/ttyUSB0` or
|
Use this `/dev/serial/by-id/...` path instead of `/dev/ttyUSB0` or
|
||||||
@@ -35,7 +35,7 @@ Check the label on the dongle to determine its adapter type:
|
|||||||
| Dongle model | Zigbee2MQTT adapter type |
|
| Dongle model | Zigbee2MQTT adapter type |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| `ZBDongle-P` | `zstack` |
|
| `ZBDongle-P` | `zstack` |
|
||||||
| `ZBDongle-E` | `ember` |
|
|
||||||
|
|
||||||
The two dongles have similar names but contain different radio chips.
|
The two dongles have similar names but contain different radio chips.
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ References:
|
|||||||
|
|
||||||
- [Zigbee2MQTT adapter configuration](https://www.zigbee2mqtt.io/guide/configuration/adapter-settings.html)
|
- [Zigbee2MQTT adapter configuration](https://www.zigbee2mqtt.io/guide/configuration/adapter-settings.html)
|
||||||
- [ZBDongle-P documentation](https://www.zigbee2mqtt.io/guide/adapters/zstack.html)
|
- [ZBDongle-P documentation](https://www.zigbee2mqtt.io/guide/adapters/zstack.html)
|
||||||
- [ZBDongle-E documentation](https://www.zigbee2mqtt.io/guide/adapters/emberznet.html)
|
|
||||||
|
|
||||||
## 2. Install the Mosquitto MQTT broker
|
## 2. Install the Mosquitto MQTT broker
|
||||||
|
|
||||||
@@ -56,13 +56,130 @@ sudo systemctl enable --now mosquitto
|
|||||||
systemctl status mosquitto --no-pager
|
systemctl status mosquitto --no-pager
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo tee /etc/mosquitto/conf.d/zigbee2mqtt.conf >/dev/null <<'EOF'
|
||||||
|
listener 1883 192.168.178.56
|
||||||
|
allow_anonymous true
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
and restart the service
|
||||||
|
|
||||||
For an initial setup confined to the Pi and a trusted LAN, the local broker is
|
For an initial setup confined to the Pi and a trusted LAN, the local broker is
|
||||||
sufficient. Configure authentication before exposing MQTT outside your trusted
|
sufficient. Configure authentication before exposing MQTT outside your trusted
|
||||||
network.
|
network.
|
||||||
|
|
||||||
Reference: [Mosquitto downloads](https://mosquitto.org/download/)
|
Reference: [Mosquitto downloads](https://mosquitto.org/download/)
|
||||||
|
|
||||||
## 3. Run Zigbee2MQTT with Docker
|
## 3. Install Docker and Docker Compose
|
||||||
|
|
||||||
|
Identify the operating system and architecture first:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
grep -E '^(ID|VERSION_CODENAME)=' /etc/os-release
|
||||||
|
dpkg --print-architecture
|
||||||
|
```
|
||||||
|
|
||||||
|
On a Raspberry Pi 5, the architecture should normally be `arm64`. Select the
|
||||||
|
repository below that matches the reported `ID`. Do not combine an Ubuntu
|
||||||
|
codename such as `noble` with the Debian repository.
|
||||||
|
|
||||||
|
Install the prerequisites:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y ca-certificates curl
|
||||||
|
sudo install -m 0755 -d /etc/apt/keyrings
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ubuntu (`ID=ubuntu`, including `VERSION_CODENAME=noble`)
|
||||||
|
|
||||||
|
If an earlier attempt installed the wrong Debian source, replace it with
|
||||||
|
Docker's Ubuntu source:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/sources.list.d/docker.sources
|
||||||
|
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
||||||
|
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||||
|
|
||||||
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" |
|
||||||
|
sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
|
||||||
|
|
||||||
|
sudo apt-get update
|
||||||
|
```
|
||||||
|
|
||||||
|
For Ubuntu 24.04, that correctly uses the Ubuntu repository and `noble` suite.
|
||||||
|
|
||||||
|
### Raspberry Pi OS or Debian (`ID=raspbian` or `ID=debian`)
|
||||||
|
|
||||||
|
Add Docker's Debian source:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
|
||||||
|
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
||||||
|
|
||||||
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list >/dev/null
|
||||||
|
|
||||||
|
sudo apt-get update
|
||||||
|
```
|
||||||
|
|
||||||
|
Install Docker Engine and the Compose plugin:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo apt-get install -y \
|
||||||
|
docker-ce \
|
||||||
|
docker-ce-cli \
|
||||||
|
containerd.io \
|
||||||
|
docker-buildx-plugin \
|
||||||
|
docker-compose-plugin
|
||||||
|
```
|
||||||
|
|
||||||
|
Enable Docker at boot and verify the installation:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl enable --now docker
|
||||||
|
sudo docker run --rm hello-world
|
||||||
|
sudo docker version
|
||||||
|
sudo docker compose version
|
||||||
|
```
|
||||||
|
|
||||||
|
Docker Compose is now invoked as `docker compose`. The old `docker-compose`
|
||||||
|
command is the legacy standalone version and is not needed.
|
||||||
|
|
||||||
|
### Optional: run Docker without `sudo`
|
||||||
|
|
||||||
|
Add your current account to the `docker` group:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo usermod -aG docker "$USER"
|
||||||
|
```
|
||||||
|
|
||||||
|
Then log out and back in, or reboot:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo reboot
|
||||||
|
```
|
||||||
|
|
||||||
|
After reconnecting, verify that it works without `sudo`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run --rm hello-world
|
||||||
|
docker compose version
|
||||||
|
```
|
||||||
|
|
||||||
|
Membership of the `docker` group effectively gives the account root-level
|
||||||
|
control of the machine. Only add trusted users.
|
||||||
|
|
||||||
|
If `dpkg --print-architecture` reports `armhf`, you are using a 32-bit OS. A
|
||||||
|
64-bit Raspberry Pi OS or Ubuntu installation is recommended on the Pi 5.
|
||||||
|
|
||||||
|
References:
|
||||||
|
|
||||||
|
- [Install Docker Engine on Debian](https://docs.docker.com/engine/install/debian/)
|
||||||
|
- [Install Docker Engine on Ubuntu](https://docs.docker.com/engine/install/ubuntu/)
|
||||||
|
- [Install Docker Engine on 32-bit Raspberry Pi OS](https://docs.docker.com/engine/install/raspberry-pi-os/)
|
||||||
|
- [Install the Docker Compose plugin](https://docs.docker.com/compose/install/linux/)
|
||||||
|
|
||||||
|
## 4. Run Zigbee2MQTT with Docker
|
||||||
|
|
||||||
Zigbee2MQTT recommends Docker because it avoids most Node.js and dependency
|
Zigbee2MQTT recommends Docker because it avoids most Node.js and dependency
|
||||||
setup problems. Its image supports the Raspberry Pi's ARM architecture.
|
setup problems. Its image supports the Raspberry Pi's ARM architecture.
|
||||||
@@ -132,12 +249,24 @@ Adapter:
|
|||||||
If `172.17.0.1` does not reach Mosquitto, use the Raspberry Pi's LAN IP
|
If `172.17.0.1` does not reach Mosquitto, use the Raspberry Pi's LAN IP
|
||||||
instead. Zigbee2MQTT may detect the adapter automatically.
|
instead. Zigbee2MQTT may detect the adapter automatically.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vi "$HOME/zigbee2mqtt/data/configuration.yaml
|
||||||
|
frontend:
|
||||||
|
enabled: true
|
||||||
|
```
|
||||||
|
|
||||||
|
restart the container:
|
||||||
|
```bash
|
||||||
|
sudo docker compose restart zigbee2mqtt
|
||||||
|
sudo docker compose logs -f zigbee2mqtt
|
||||||
|
```
|
||||||
|
|
||||||
References:
|
References:
|
||||||
|
|
||||||
- [Official Zigbee2MQTT Docker installation](https://www.zigbee2mqtt.io/guide/installation/02_docker.html)
|
- [Official Zigbee2MQTT Docker installation](https://www.zigbee2mqtt.io/guide/installation/02_docker.html)
|
||||||
- [Zigbee2MQTT onboarding](https://www.zigbee2mqtt.io/guide/getting-started/)
|
- [Zigbee2MQTT onboarding](https://www.zigbee2mqtt.io/guide/getting-started/)
|
||||||
|
|
||||||
## 4. Pair the SNZB-02P sensor
|
## 5. Pair the SNZB-02P sensor
|
||||||
|
|
||||||
In the Zigbee2MQTT web interface:
|
In the Zigbee2MQTT web interface:
|
||||||
|
|
||||||
@@ -155,7 +284,7 @@ SNZB-02P uses a CR2477 battery.
|
|||||||
|
|
||||||
Reference: [SNZB-02P device support](https://www.zigbee2mqtt.io/devices/SNZB-02P.html)
|
Reference: [SNZB-02P device support](https://www.zigbee2mqtt.io/devices/SNZB-02P.html)
|
||||||
|
|
||||||
## 5. Read the temperature
|
## 6. Read the temperature
|
||||||
|
|
||||||
Listen for sensor updates on the Raspberry Pi:
|
Listen for sensor updates on the Raspberry Pi:
|
||||||
|
|
||||||
@@ -195,4 +324,3 @@ change, rather than continuously. The SNZB-02P publishes `temperature` in °C
|
|||||||
and `humidity` as a percentage.
|
and `humidity` as a percentage.
|
||||||
|
|
||||||
Reference: [Zigbee2MQTT MQTT topics](https://www.zigbee2mqtt.io/guide/usage/mqtt_topics_and_messages.html)
|
Reference: [Zigbee2MQTT MQTT topics](https://www.zigbee2mqtt.io/guide/usage/mqtt_topics_and_messages.html)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user