Home Hub
Entertainment system with Home Assistant, smart speakers, and voice control
Overview
Home Hub is a Dell Inspiron 14 5420 laptop repurposed as a living room entertainment center and smart home controller. It runs Debian 12 with a Cinnamon desktop and combines:
- Media playback — YouTube, Netflix, and web browsing via Brave browser
- Home Assistant Supervised — Orchestrating smart home devices and automations
- Custom ESP32 WiFi smart speaker — Voice-controlled audio routing and assistant capabilities
- PipeWire audio — Managing audio output between laptop speakers and networked devices
Hardware
| Component | Detail |
|---|---|
| Machine | Dell Inspiron 14 5420 |
| Audio | Intel sof-hda-dsp (ALSA card 0) via PipeWire |
| OS | Debian 12 (Bookworm) |
| Desktop | Cinnamon / LightDM |
| Docker | Home Assistant Supervised |
Architecture
┌──────────────────────────────────────────┐
│ Home Hub (Laptop) │
│ │
│ ┌──────────┐ ┌───────────────────────┐ │
│ │ Brave │ │ Home Assistant │ │
│ │ Browser │ │ (Docker/Supervised) │ │
│ │ │ │ │ │
│ │ YouTube │ │ Assist Pipeline │ │
│ │ Netflix │ │ (STT/TTS) │ │
│ └────┬─────┘ └──────────┬────────────┘ │
│ │ │ │
│ ┌────▼───────────────────▼────────────┐ │
│ │ PipeWire Audio │ │
│ └────┬────────────────────────────────┘ │
│ │ │
└───────┼──────────────────────────────────┘
│
▼ (WiFi)
┌─────────────┐
│ ESP32 │
│ Smart │
│ Speaker │
│ (ESPHome) │
└─────────────┘
Features
- Reliable audio — PipeWire audio stack with hassio_audio conflict permanently resolved via systemd service
- Home Assistant Supervised — Full HA installation with ESPHome addon for ESP32 firmware management
- hassio_audio isolation — Custom systemd service uses nsenter to mask
/dev/sndinside the container, keeping the supervisor happy while freeing ALSA for PipeWire - ESP32 smart speaker (planned) — WiFi-based voice assistant using ESPHome's
voice_assistantcomponent - Voice-controlled audio routing (planned) — Route audio between laptop speakers and ESP32 via voice commands
Quick Start
# SSH into Home Hub
ssh rob@192.168.0.166
# Check audio status
wpctl status
# Check Home Assistant containers
sudo docker ps --format "table {{.Names}}\t{{.Status}}"
# Verify hassio_audio is neutered
sudo systemctl status disable-hassio-audio.service
# Access Home Assistant web UI
# http://192.168.0.166:8123
Key Decisions
- PipeWire over PulseAudio — Better ALSA integration and lower latency
- hassio_audio disabled — Home Assistant's audio container locks ALSA devices; ESP32 speaker communicates over WiFi instead
- ESPHome for ESP32 — Native Home Assistant integration via
voice_assistantcomponent - Browser-based streaming — No dedicated media server needed for initial setup
Related Projects
This project is part of the development ecosystem:
- CmdForge - AI-powered CLI tool builder
- CascadingDev - Cascading Development Framework
- Orchestrated Discussions - AI Discussion Framework
- Artifact Editor - Code Artifact Editor
- Ramble - Voice Note Transcription