Mac Studio as an always-on, LLM-driven smart-home brain
What they built
The author runs Home Assistant, an Ollama model and a fully local voice pipeline on one Mac Studio. The LLM turns vague human requests into actual Home Assistant service calls.
Examples from the house: 'get the house ready for the morning' combines weather, calendar and presence; 'it's stuffy in here' checks which room the phone is in and the CO₂ sensor, then opens a window. One sentence about overnight guests reconfigures fourteen things.
Setup
- Mac Studio (latency measured on an M2 Ultra)
- Home Assistant in Docker
- Ollama with qwen3:14b
- wyoming-whisper (small model) and Piper
- ESP32 voice satellites in three rooms, about €15 each
How it works
- Home Assistant's Ollama integration exposes devices to the model as tools
- The model emits real service calls such as light.turn_on and cover.set_position
- Assist pipeline: Whisper → LLM → Piper, all on the LAN
Results & numbers
- Simple device command: 1.8-2.5 s end to end (Whisper ~0.5 s, LLM ~1-1.5 s)
- Multi-step contextual command: 3-5 s; Siri/Alexa are ~1-1.5 s on simple commands
- Idle power 9-11 W, 90-120 W during inference; about 0.3 kWh a day (~€0.08)
Gotchas
- On a base M-chip Mac mini with an 8B model, multi-step commands stretch past 6 seconds
“the LLM isn't "smarter" than automations — it's a compiler from human vagueness to the same service calls.”— Think Different
Do it yourself
- Run Home Assistant in Docker with host networking
- Install Ollama and pull qwen3:14b
- Add the Ollama integration and expose only the devices you want controlled
- Build a local Assist pipeline with wyoming-whisper and Piper
- Add cheap ESP32 voice satellites per room
docker run -d --name homeassistant --restart=unless-stopped \
-v ~/homeassistant:/config --network=host \
ghcr.io/home-assistant/home-assistant:stableRelated
Home Assistant Voice PE with a local LLM instead of Echo
A $60 Voice Preview Edition, an N100 box and an optional RTX 3060 replace every Echo and Nest in the house. It keeps working with the internet unplugged.
A private ChatGPT for a family of four on a Mac mini
One always-on M4 Mac mini serves Open WebUI to every phone and laptop in the house. Kids get a tutor preset, and three AI subscriptions are gone.
Fully local Home Assistant voice assistant on a GPU
Wake word to spoken answer in 2-3 seconds, with zero audio leaving the house. Built from faster-whisper, Piper and Ollama, with a cloud fallback.
Replacing Google Nest Minis with local Assist on llama.cpp
After a year of Nest Minis getting dumber, a household moved to fully local Assist. Higher-quant GGUF models from Hugging Face are what finally fixed tool calling.