I never really gave Google Home a fair shot. After picking up a Google Home Mini and a couple of smart bulbs, I tried to get them working together for a month. Then I quietly gave up on the whole smart home idea. Not because Google Home was bad, but every device needed Google’s servers to work, including the automations.

I didn’t have numerous devices, thankfully, to push me into the sunk cost fallacy. Since there was a growing list of cloud-dependent devices to manage, I moved on to build something from scratch. After weeks of research, I picked up a used mini PC and built a smart home using Home Assistant in a weekend. No subscription. No cloud services.

👁 beelink me mini nas desk
I run my entire smart home from a single mini PC with Home Assistant

If you'd have told me my smart home would be controlled from one box I wouldn't have believed you

Picking hardware to install Home Assistant

Easy choices for a local smart home

After letting go of the Google Home Mini, I started with the Raspberry Pi 4 to run Home Assistant. Then later, I migrated the smart home platform to a used mini PC. Also, I moved the SONOFF Zigbee USB 3.0 Dongle Plus to Home Assistant for reliability. The plan was to eventually pair Home Assistant with a local LLM. After all, the mini PC's 32GB of RAM handles smaller models easily.

Flashing Home Assistant OS on the mini PC was straightforward. It booted faster and felt responsive on a x64 system. From the first boot, the device discovery immediately picked up the smart TV, Apple 4K TV, smart bulbs, and other devices. Configuring everything with local integrations ensured polling took place in milliseconds without any cloud involvement. Toggling a light and watching it respond was instant — a clear sign that I made the right call.

Migrating configs and dealing with rough edges

Setting up the devices

With the Zigbee dongle, it didn’t take me long to configure devices using Zigbee2MQTT. Smart TV and streaming devices were easy to integrate. I skipped adding cloud-only devices to avoid messy integration since I was building a locally responsive smart home. I installed Zigbee2MQTT integration, followed by a Mosquitto server, and HACS to access more community-developed integrations.

ESPHome integration lets me build and flash custom firmware on ESP32-based sensors directly in Home Assistant. Initially, I struggled with the indentation and verbosity of the YAML config files in ESPHome. That’s why I spent a lot of time fixing the indentation before flashing the correct firmware onto sensor nodes, so the automation fires without fail.

After a few weeks dealing with YAML, I now prefer that over code-heavy Arduino sketches. With all integrations and automations in place, I set up a simpler dashboard. I still sought an alternative way to interact with the Home Assistant.

ESPHome

Gemini for Home is the AI upgrade that wasn’t

Things still work on Google’s servers

Google's Gemini for Home is an upgrade to a decade-old voice assistant. While it’s marketed as a more conversational AI, the majority of the processing happens on Google’s servers. The premise is compelling — you can describe what you want to do in natural language, and Gemini figures out a way to do that. Sounds great in theory, but it’s a different story in practice.

Queries like “turn off all lights except the bedroom ones” return a confident response when doing nothing, or just fail. The response time hovers around 1–3 seconds with a decent internet connection. But the experience isn’t great for dodgy connections.

Even after linking Gemini for Home in Home Assistant, it still ran on Google’s hardware. That’s why I found it difficult to do work locally. Hence, I skipped Gemini for Home and gave up on Google Home plans.

Replacing Google Assistant with a local LLM

A private voice assistant that works locally

With the help of a local LLM and Home Assistant’s voice pipeline, I built a private voice assistant that works locally. For the voice pipeline, I installed the Whisper add-on for speech-to-text, the Piper add-on for text-to-speech, and an M5Stack Atom Echo smart speaker to support it.

Installing Ollama to run a smaller Qwen 3.5 model with tool calling so that it can work directly with Home Assistant services rather than generating text responses.

Deals

Save on Smart Home Deals: Gadgets, Hubs & Sensors

Explore discounts on smart home gear and enjoy big savings on mini PCs, Zigbee dongles, smart speakers, sensors, and automation accessories. Shop offers to build a local, low-latency setup and stock up on essentials for reliable, cloud-free home automation.

The local LLM-based voice assistant experience felt fast, and controlling devices through Home Assistant was much lower in latency than with Google Assistant. The only extra effort I had to make was to assign unique names to all the entities, so the local LLM wouldn’t hallucinate as much. Thanks to the mini PC’s muscle, running local LLM with Home Assistant became possible. ​

Living the dream — no cloud, no compromises

Giving up on Google Home turned out to be the easiest part. Home Assistant setup requires some work. But I got automations based on actual logic rather than glorified schedules. Two months in, I have yet to witness a failure or dropped command. I do miss a few things — Chromecast integration is noticeably smoother on Google Home.

If Gemini for Home leaves you underwhelmed, you already have a reason to switch. A weekend’s investment has a long-term payoff. After all, Gemini for Home is a promise. Home Assistant’s local voice pipeline is a product.

Home Assistant
OS
Windows, macOS, Linux
iOS compatible
Yes
Android compatible
Yes