Required Component
- Zigbee USB Adapter (In this case, we are using Sonoff CC2652P USB Dongle )
- ( For more infomation about SONOFF ZigBee 3.0 )
Install package cc2538-bsl via these command
$ sudo apt install -y python3 python3-pip python3-setuptools
$ sudo pip3 install pyserial intelhex python-magic
git clone https://github.com/JelmerT/cc2538-bsl
Connect the Zigbee USB to Virtual Machine or Hardware.
Check port of connected device, using this command
$ ls -l /dev/serial/by-id
looking for this kind of text format to determine your connected USB port, For Example :
../../ttyUSB0
Run the command for start up the port for Zigbee USB
sudo python3 ./cc2538-bsl/cc2538-bsl.py --bootloader-sonoff-usb
Install Zigbee Coordinator
- Download .zip file from Z - Stack Firmware Github. In this case is CC1352P2_CC2652P_launchpad_coordinator_20220219.zip
- The run these command on the downloaded file directory
$ unzip CC1352P2_CC2652P_launchpad_coordinator_20220219.zip
$ sudo python3 ./cc2538-bsl/cc2538-bsl.py --bootloader-sonoff-usb \ -e -w -v ./CC1352P2_CC2652P_launchpad_coordinator_20220219.hex
- Install Nodejs
$ sudo apt install -y curl
$ curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt install -y nodejs
- Checking Version of nodejs and nmp
$ node -v
$ npm -v
- Get Zigbee2MQTT Source code from Github and install package.
$ git clone https://github.com/Koenkk/zigbee2mqtt.git
$ sudo mv zigbee2mqtt /opt
$ sudo chown -R $USER:$USER /opt/zigbee2mqtt
$ cd /opt/zigbee2mqtt
$ npm ci
- Create and Edit a Configuration file.
nano /opt/zigbee2mqtt/data/configuration.yml
- Edit COM port to match with yours
homeassistant: false
permit_join: true
mqtt:
base_topic: zigbee2mqtt
## specify the IP address or hostname of your MQTT broker
server: 'mqtt://localhost:1883'
#user: xxxx
#password: xxxx
serial:
## specify the serial COM port (e.g. /dev/ttyACM0, /dev/ttyUSB0)
port: /dev/ttyUSB0
advanced:
## specify the ZigBee channel number
channel: 15
frontend:
## enable Web front-end for Zigbee2MQTT on port 8080
port: 8080
- Add current user to Dialout group to grant access to port
$ sudo usermod -a -G dialout $USER
- START! Zigbee2MQTT
npm start
- As you can see, the program state that cannot open the specified port
- Its actually caused from the program read the wrong configuration file or You edit the wrong configuration file
- TO FIX : edit COM port in
nano /opt/zigbee2mqtt/data/configuration.yaml
file ** .yaml NOT .yml **- From my hypothesis, the program choose to read .yaml first if both file was exist in the same directory
- Then I choose to remove ( delete ) the .yml file before retry starting Zigbee2MQTT