WTH: I can't change the Zigbee channel when using the ZHA integration?

It’s painful to change the channel. The default is channel is channel 15, but it can be changed currently with the following steps.

Note, this is not an easy change and will require re-pairing all devices. A majority of devices on the market will also not gracefully handle a channel change, even if the support for channel change notification was present in zigpy/bellows/ZHA.

Leave the network and form a new network with bellows

pip3 install bellows
export EZSP_DEVICE=/dev/ttyUSBX
bellows leave
bellows form -c X

Where /dev/ttyUSBX is your EZSP stick and -c X is your preferred channel. You can also run bellows scan -e -t 250 to see what is the best channel in your enviroment. Look for something in the -80 dBm to -100 dBM range. Anything around -30 to -50 is fairly noisy and will have contention.

Now modify your configuration.yaml to include the following:

zha:
  zigpy_config:
    network:
      channel: X   

Where X is the same channel that you picked with bellows.

Re-pair all devices.

3 Likes