In my smarthome I mostly use HomeKit for managing my devices such as blinds, lights or create routines and automations. But I also use HomeAssistant for my dashboard in my hallway on a wall-mounted tablet.
I had a bunch of bridges from all kinds of manufacturers but sometimes I had the problem that some devices such as the Aqara Cube don't work with HomeKit.
Also I had the problem of response-times a lot. Some devices weren't accessible anymore and some devices were reacting not as expected or slower than expected.
So I needed a solution for this!
Luckily I was already using Homebridge on a Rasperry Pi, that I had laying around. I was using Homebrige till then for stuff like getting my Dyson Pure Cool Tower to work with HomeKit or my Roborock.. Also I had some dummy-switches on Homebridge so I can create automations with a delay or something like that.
But also there is MQTT..
MQTT is the most commonly used messaging protocol for the Internet of Things (IoT) and stands for MQ Telemetry Transport.
There is a plugin for Homebridge that allows you to add Zigbee devices using MQTT onto your HomeKit setup. Without any bridges needed. The only thing that was needed was the SONOFF Zigbee 3.0 USB Dongle which can be plugged into my Homebridge.
So far, so good.
The next issue was the dashboard. I needed to find a way to expose these devices to HomeAssistant so I can use them on my dashboard in my hallway. But the problem was, that I cannot use devices that are adopted by HomeKit already. So I needed to find a way how I could share these devices between Homebridge and HomeAssistant.
At some time I switched the integration of MQTT and Zigbee from Homebridge to HomeAssistant and found a way to share devices between these two systems..
Let the magic happen ✨
In order to get HomeAssistant familiar with Zigbee and MQTT there's an integration called "Zigbee2MQTT" on HomeAssistant.
After the installation of MQTT and Z2M I finally could add my devices to HomeAssistant and use them right away. But since I run my automations directly in HomeKit, I needed to share them with Homebridge. But luckily there's also a plugin for Z2M..
The solution was pretty easy. I needed to configure Homebridge to listen on the MQTT Broker that is running on my HomeAssistant instance. That's it!
I now have all my devices that are responding on the Zigbee protocoll within HomeKit and can run whatever I want!