Recently I wanted to try setting up Homebridge to interface with our Apple Home setup. What is Homebridge?
Homebridge is a lightweight Node.js server you can run on your home network that emulates the iOS HomeKit API.
It basically lets you connect non-Apple HomeKit supported devices to Apple Home. There are plugins that you install within Homebridge that can expose more features or let you customize how a device appears within the Apple Home app.
I decided that I wanted to try creating a plugin for Adafruit IO to send data from Adafruit IO feeds to Apple Home.
This was inspired by the work that Trevor did a little while ago with the itsaSNAP app. That iOS app lets you interface with Adafruit IO feeds within iOS. We wrote a lot of fun guides experimenting with the use of Apple Shortcuts combined with Adafruit IO.
One piece that was missing was the ability to have data go from IO to Apple Home. We could control devices already in Apple Home (usually Matter devices) with Shortcuts that integrated with itsaSNAP, but we couldn't send, for example, temperature sensor data from a feed to Apple Home and have it show up in a Room.
Plugins for Homebridge are written in Typescript and there are a ton to reference to get an idea for how they work and how the API should be organized. I setup the plugin so that you enter your Adafruit IO feed key and the plugin will grab the value from the feed when it updates with MQTT after initially getting the last value with the REST API on boot. You also enter the display name for the feed value and the HomeKit service type. A service type is what type of sensor or device it is in Apple HomeKit.
For testing, I setup a simple CircuitPython script that sent values from an AHT20 temperature and humidity sensor to feeds every 5 minutes. Its actually the same code that I have in the Quick-Start the Pico W WiFi with CircuitPython Adafruit IO page (I reference that guide a lot whenever I'm starting a WiFi CircuitPython project).
For development, I used VS Code and was able to run Homebridge locally on my Windows computer to deploy changes as I tested. Homebridge has really great documentation on how to create and test a plugin. After some experimentation, I had my CircuitPython device showing up in Apple Home. Because Apple Home thinks its a fully supported HomeKit temperature sensor this means I can do home automation shortcuts with the data and use it like a commercial HomeKit sensor.
This all worked really well and I think its a fun proof of concept. The next steps would be to publish the plugin and get it verified by Homebridge to make it more widely available for folks. I did look into this but ultimately decided not to do that right now because I don't want to accidentally become an IoT plugin maintainer, this was more of an experiment to see if it was possible. For now, the code is published on GitHub.
During my research for the plugin, I found a few other solo plugin projects on GitHub with folks doing really cool things with Adafruit parts, like the MacroPad and a wood stove monitor with the Adafruit MAX31855 thermocouple amplifier. There seems to be a plugin for almost everything and if there isn't, it's fairly straight forward to spin up your own.
This page (Homebridge Plugin for Adafruit IO Feeds) was last updated on March 27, 2026.