Overview
Over the last month or so, I've been fine-tuning my Home Assistant setup and thought it would be neat if I could instantly sync data between Home Assistant and Adafruit IO. I love the local-control aspects of HA, but when it comes to creating fun and more complex custom electronics projects, Adafruit IO is much more suited for the job.
Leaning into a bit of AI-assisted vibe coding with Claude, I created a custom integration that bridges the gap. It allows you to pick exactly which Entities from Home Assistant you want to send up to Adafruit IO, and which Adafruit IO feeds you want to pull down into Home Assistant. Through the magic of MQTT, this all happens instantly and securely.
You can check out the project repository here: https://github.com/tylerdcooper/adafruit_io_sync
If you are newer to the Home Assistant ecosystem, HACS stands for the Home Assistant Community Store. While HA comes with hundreds of official integrations out of the box, HACS is the go-to marketplace for third-party, community-built integrations and frontend customizer cards. It allows you to easily download, install, and update custom projects (like this one!) directly from GitHub into your local Home Assistant environment.
What does this integration actually do?
At its core, the Adafruit IO Sync app acts as a highly selective MQTT bridge configured entirely through a custom sidebar panelβno YAML required. Instead of opening up your entire local smart home network to the cloud, you remain in complete control of the data flow.
-
The Attribute Unpacker (HA to IO): One of the coolest parts of this integration is how it handles complex devices. In Home Assistant, an Entity is rarely just a single value. A smart dimmer switch, for example, isn't just "On" or "Off", it also has attributes like
brightness. Adafruit IO, on the other hand, organizes data into single-value "Feeds."When you sync an entity from HA to IO, this app automatically unpacks those extra attributes and breaks them out into multiple, individual feeds. If you sync a dimmer switch, the app instantly creates one feed for the power state (
ON/OFF) and a completely separate feed for the brightness level (0-100). This makes it incredibly easy to grab exactly the specific data point you need for your microcontroller projects. -
IO to HA: You can browse your Adafruit IO groups right from the Home Assistant sidebar and automatically import feeds as native HA sensors, switches, numbers, or text entities.
Choosing Your Sync Direction
When you configure an entity, you can choose how the data flows. Understanding when to use One-Way versus Bidirectional sync is key to keeping your setup running smoothly.
One-Way Sync (Logging and Monitoring) With a one-way sync, data flows in a single direction (e.g., AIO β HA read-only, or HA β AIO publish-only). This is ideal for logging. For example, if you just want to track when your dehumidifier turns on, or you want to map out temperature trends from a local zigbee sensor, a one-way HA β IO sync is perfect. It updates your Adafruit IO dashboards without giving the cloud any ability to write back and change the state of your local appliances.
Bidirectional Sync (Two-Way Control) If you select β Bidirectional, full two-way control is enabled. If you change a value in Home Assistant, it updates in AIO. If you change that same feed in AIO, it instantly updates the physical device via Home Assistant. To keep things stable, the integration has built-in publish-echo detection to prevent infinite data loops where the two platforms rapidly bounce the same state change back and forth.
Why choose one over the other? The biggest factor is Rate Limits. Adafruit IO's free tier allows for 30 data points per minute. Because the integration automatically unpacks attributes, a single change to a complex entity (like adjusting a smart light's color and brightness simultaneously) can generate multiple publishes in a split second. If you have dozens of entities set to bidirectional sync, you can hit that limit very quickly. Using one-way sync for sensors that update frequently saves your data rate for the devices you actually need to control.
Project Ideas to Try
-
Two-Way Smart Home Dashboards: Hook up an Adafruit FunHouse board to Adafruit IO. You can display local Home Assistant sensor data right on the FunHouse screen, and use its capacitive touch buttons to trigger HA automations or toggle your smart lights via bidirectional sync.
-
Custom Hardware Alerts: Build an ESP32-powered NeoPixel matrix for your desk. Whenever a specific event occurs in Home Assistant (like a local leak sensor detecting water, or your security system arming), HA pushes a state change to an IO feed, triggering a message on your matrix.
-
Advanced Environmental Logging: Push data from local Zigbee soil moisture and temperature sensors in HA up to Adafruit IO. You can then take advantage of IO's dashboarding to track long-term trends, or use IO actions to trigger a valve for a DIY automated plant-watering system. Bonus: if you are an Adafruit IO+ subscriber, you get access to Weatherkit for more accurate weather forecasting to make sure to not turn on the valve if rain is coming soon.
This page (Sync Adafruit IO and Home Assistant) was last updated on May 15, 2026.