Integrating Zigbee with Home Assistant on Raspberry Pi

I set up Home Assistant on a Raspberry Pi because I wanted one local controller for the lot. I kept the Pi headless, wired it into the network, and gave it a fixed IP. That made Zigbee, Thread and Matter less faff. This note covers how I kept my IKEA Zigbee kit working and what happened when I tried an Aqara M100 alongside it.

Start with the Raspberry Pi. I would use a Pi 4 with at least 4 GB and an SSD if you can. Flash Home Assistant OS to the SSD or SD card, plug it in, and wait for the install to finish. Give the Pi a static IP through your router or set a DHCP reservation. I use Ethernet for reliability; Wi-Fi is fine for a quick test, but it gets messy once there are a lot of devices. In Home Assistant, finish the first-time setup, enable SSH and set a long admin password. That gives you a stable base for Zigbee and Matter.

If you want to keep IKEA Zigbee devices, buy a proper Zigbee coordinator and plug it into the Pi. I use an external USB stick rather than relying on vendor hubs. Common sticks include ConBee II or Sonoff Zigbee 3.0; both work with Home Assistant’s Zigbee integrations such as ZHA or deCONZ. Pair one IKEA device first. Put the coordinator on its own USB port or a powered hub so you do not get power-related dropouts. Move the Zigbee radio channel away from busy Wi-Fi channels, and keep the coordinator close to the device while pairing. Once it is joined, check Entities in Home Assistant to make sure the sensors and switches appear. If the device is flaky, re-pair it and watch the Home Assistant logs for timeouts.

Thread and Matter work differently. Thread is a low-power mesh that uses IPv6 and needs a border router to reach the rest of the network. Matter sits above Thread and other transports as the control layer. If you want Thread and Matter coverage, a small Thread border router or a Matter controller makes sense. Aqara’s M100 is a small hub that Aqara describes as Matter-certified and a Thread border router, and Aqara also says it can bridge some Aqara Zigbee devices. Home Assistant has public notes about Aqara joining its compatibility programme, which helps with integration into HA Aqara M100 product page Home Assistant blog on Aqara compatibility.

Do not expect the M100 to replace a full Zigbee coordinator for mixed-brand Zigbee networks. In my tests, and from community reports, the M100 exposes Aqara Zigbee devices to Matter, but forwarding arbitrary third-party Zigbee devices into Home Assistant through the M100 looks limited or unsupported. If you rely on a lot of IKEA Tradfri devices, keep the dedicated Zigbee stick on the Pi. Use the M100 for Matter and Thread devices that benefit from a local Thread mesh, and for newer kit where Matter is supported. That keeps the Zigbee mesh intact and avoids extra hubs where you do not need them.

The device workflow that worked for me was simple. Pair the Zigbee device to the coordinator on the Pi and confirm it appears under the Zigbee integration. For Matter or Thread gear, add the M100 as a Matter controller in Home Assistant and check the Matter integration for the device. Update the M100 firmware in the Aqara app before pairing. After pairing, reboot Home Assistant or reload the integration to force a fresh discovery. If the device shows up but reports odd values, check radio interference and battery levels.

Troubleshooting is mostly placement and pairing. If Zigbee devices drop out after a few days, move the coordinator or add a powered Zigbee repeater such as a smart plug. If Thread devices fail to join through the M100, check whether Home Assistant lists the M100 as a preferred Thread network; some forum threads report it sitting under “Other networks” until it is configured. If Matter devices appear but do not show all capabilities, remove and re-add them after updating firmware on both the hub and the device.

Buy around the kit you already have. If you have a pile of working IKEA Zigbee gear, keep a Zigbee coordinator on the Pi. Buy Thread/Matter-capable devices for new rooms so they can join the newer stack. An M100 or similar small hub is fine if you want a cheap Thread border router and Matter controller, but test one device first before you buy a load of them. If you want one USB device to do both Zigbee and Thread with tight Home Assistant support, look at Home Assistant’s official hardware releases and the sticks the community keeps coming back to.

Concrete takeaways: keep a Zigbee coordinator for legacy Zigbee devices, use a small Matter/Thread controller like the M100 for new Matter purchases and local Thread mesh, and do not expect it to import every non-Aqara Zigbee device into Home Assistant. Test one device before you commit. Keep the Pi wired, keep firmware current, and check Home Assistant’s integrations page after each pairing to confirm the device exposes the controls and sensors you need.

Related posts

Vector | vdev-v0.3.3

Vector vdev v0 3 3: patch release with crash, leak and parsing fixes, connector and tooling improvements, upgrade notes on prechecks, rolling updates, compat

Loki | v3.7.2

Loki v3 7 2: security and CVE fixes, updated S3 client to aws sdk v1 97 3, ruler panic fix for unset validation scheme, S3 Object Lock sends SHA256 checksum

Loki | v3.7.2

Loki v3 7 2: Patch release with CVE fixes, AWS S3 SDK update, ruler panic fix, S3 Object Lock SHA256 checksum support