Project ULTRON Phase 1: The Foundations
Phase 1 of ULTRON: setting up a local Home Assistant core on repurposed hardware, containerized with Docker and extended via HACS.
๐ค Project ULTRON: Building My Local Voice Assistant โ Phase 1: The Foundations ๐ก
Welcome to the launch of ULTRON, my personal journey to build a fully local smart home assistant! Tired of relying on cloud services like Alexa or Siri for basic house control, I'm embarking on creating a system that keeps everything on my local network. This project is a perfect blend of home automation, development, and networking.
This project is the result of a childhood dream: having my own personal assistant, just like Tony Stark! What kid hasn't dreamed of being able to ask for anything and bam, getting an immediate answer? Lights turning on, shutters opening, need a recipe? It gives it to you. But beware, here, no Alexa, no "Ok Google". My assistant is local and activates at the sound of: "Hey Ultron" (Pretty cool, right?).
๐ฏ Project Goal
The ultimate goal is to achieve complete, local, verbal interaction with my home. This means setting up local AI (like OLLAMA, potentially with Rhasspy for voice) that communicates with a robust Home Assistant core, all running on my own hardware.
๐ ๏ธ The Hardware: A Second Life for a Dell PC
To get started, I repurposed an old Dell PC. It's the perfect, low-cost "server" to host the entire system. (Even if it clearly won't be enough given the final goal, I have to start somewhere!)
The Plan: Phased Deployment
My project will unfold in several distinct stages:
- Home Assistant Setup: The central nervous system of the smart home. (Current Focus!)
- Monitoring Stack: Deploying Grafana and Prometheus for machine performance visibility.
- Local AI Integration: Implementing a local Large Language Model (LLM) and a voice interface (e.g., OLLAMA and Rhasspy).
๐ป Phase 1: Home Assistant โ The Founding Core
The first step was prepping the old Dell. I installed Debian 13 and immediately took security seriously, setting up SSH hardening to secure remote access.
Docker Container Deployment
Home Assistant runs inside a Docker container for portability and isolation. Here is the docker-compose.yml file I used:
version: "3.9"
services:
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro # Useful for Bluetooth/Linux integrations
environment:
- TZ=Europe/Paris
restart: unless-stopped
privileged: true # Recommended for some hardware integrations
network_mode: host # Allows easy discovery of network devices
Using network_mode: host and privileged: true is crucial for Home Assistant to easily discover and interact with various devices on the local network.
๐ Integrating HACS (Home Assistant Community Store)
After configuring the basic Home Assistant instance, the next logical step was to install the Home Assistant Community Store (HACS). HACS is essential because it unlocks a vast library of custom integrations and UI elements not available in the official store.
To install HACS, I had to access the running Home Assistant container and execute the installation script:
wget -O - https://get.hacs.xyz/ | bash -
A quick restart, and voila! HACS was successfully integrated, significantly expanding the capabilities of my setup.
๐ Current Integrations: My Smart Home Wakes Up
With HACS ready, I started linking my existing smart devices. This initial binding phase is essential for testing stability and familiarizing myself with Home Assistant's automation tools.
I have successfully integrated:
- Lights: My smart bulbs.
- Media: Chromecast and Smart TV for media control.
- Networking: My Livebox router (to monitor internet status/speed).
- Mobile: My smartphone presence and notifications.
๐ Next Home Automation Step: Automated Blinds
The next purely home automation challenge is integrating my blinds/shutters for automated control. Yes, it's clearly a "lazy person's problem," but I find the engineering behind it incredibly fun! I'm currently waiting for the hardware to arrive. (I'll do a small update later.)
๐ What's Next? Monitoring!
While I wait for the blind motors, I'm already diving into the next segment of the project: setting up the monitoring stack. Grafana is currently being configured, but that will be the subject of the next update...
Stay tuned for Phase 2, where we'll tackle performance monitoring and start laying the groundwork for the local AI!