+++ date = '2026-05-17T23:57:15-06:00' draft = false title = "Katchi, a dragon's best friend" tags = ['kobold', 'esp32'] +++ ## A smart-home for a Dragon {{< typeit tag=h3 speed=50 breakLines=false loop=true >}} "It's the Future..." "Dumb homes are so 2010" "Is all of this really necessary?" — Concerned Friends {{< /typeit >}} ### Smart-homes The present state of smart-home choices is fairly acceptable. You have your major players, Google, Apple, Amazon and their associated services like Google Home or Alexa. These systems are fairly easy to set up; plug in the new device, type in some credentials or type a prompt on your phone, and done. Most of these systems rely on a central hub that orchestrates the entire smart home. But all these systems have one fatal annoyance. They all require access to the internet. ### Internet dependency In recent years, it is common to run into issues with major providers. Privacy concerns, outages and the forced obsolescence of existing systems put a lot of pressure on me when building my first smart home. Sure the big players make it easy to set up and use, but for me the non-monetary cost was just too great. Besides the limitations in software, knowing that if I had an internet outage, or god forbid, the provider has an outage, I would be shit out of luck in turning off my lights turned me away from major providers. ### So what did I use? After spending a lot of time frustrated with my options and dealing with the difficulties in automating and doing what I wanted with my smart-home, I went down the rabbit hole of options and found [Home Assistant](https://www.home-assistant.io/). ![Home Assistant](https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcommunity-assets.home-assistant.io%2Foriginal%2F4X%2F5%2F0%2Fe%2F50e585faea85010ebb16d3d466f071ef90ec1393.png&f=1&nofb=1&ipt=73955a250f2bf73ba578833607b6a377d67ea436a1562e35b202fb2273b3d35a) Unlike the big-name smart-homes, Home Assistant is a self-hosted option that runs on your own hardware and locally connects to supported devices. It supports a wide range of [devices and integrations](https://www.home-assistant.io/integrations/?brands=featured) and is fairly easy to set up. I wont expound on it much more here, but I will link to the [getting started](https://www.home-assistant.io/installation/), [documentation](https://www.home-assistant.io/docs/) and [community](https://community.home-assistant.io/) for more information. ### So what's the problem? Of all the amazing options that Home Assistant gives us, it has a fairly significant miss; that being Smart Speaker integration. ## Home Assistant Smart Speaker The options for Home Assistant smart speakers are quite limited, they only offer one official product as of the date of publishing this post. {{< externalLink url="https://www.home-assistant.io/voice-pe/" >}} While the Home Assistant Voice PE works decently, it is the only off-the-shelf option for Home Assistant which considering all the freedom Home Assistant gives us, feels quite limiting. However, there is a solution. ### The Solution Thankfully we are not constrained by the limitations of existing hardware thanks to microcontrollers, specifically the ESP family of microcontrollers. ![ESPHome](https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fesphome.io%2Fimages%2Fog.webp&f=1&nofb=1&ipt=fd9bfb5ff1845d2803627ce6224161f86267d81a0f426d077cbae7deaeb75215) Using [ESPHome](https://esphome.io) you can create a whole myriad of smart devices based on the [ESP32 microcontroller](https://www.espressif.com/en/products/socs/esp32). It provides a very diverse family of options that can fit nearly any use-case. Think of it as an alternative to Arduino, where instead of writing C code you can write yaml configuration files that dictate and configure your ESP device. Knowing this, I set out to make my own Smart Speaker. ## Katchi the Kobold Smart Speaker