← Back to Projects

Personal Project · Active

ESP Home Server

PythonESP32ESP-IDFCC++ElevenLabsHTTPFirmwareHardware

ESP Home Server is a local-network-first home automation system built around a network of ESP32 devices. A handheld voice controller (Waveshare ESP32-C6 Touch AMOLED) streams hold-to-record mono PCM audio to a Python HTTP server over Wi-Fi. The server transcribes with ElevenLabs, resolves the command through a registry, and dispatches events to registered devices — displays, cameras, button nodes — which poll or expose endpoints depending on their role.

The system supports multi-turn conversations (a 'set timer' command prompts for duration if not supplied), a script-based action registry for packaged server-side tasks, and a browser dashboard showing device state, recent commands, and proxied camera feeds. Each firmware project is a standalone ESP-IDF build targeting different chips — ESP32-C6 for the voice controller and display nodes, ESP32-C3 for button nodes, standard ESP32 for camera modules. The server persists the device registry, command history, and a local firmware catalog for future OTA rollout.

Key Contributions

01

Waveshare ESP32-C6 Touch AMOLED voice controller streaming chunked PCM to a local Python server

02

ElevenLabs speech-to-text → command registry → device event dispatch pipeline

03

Multi-turn conversation support — commands can prompt for missing parameters before resolving

04

Browser dashboard showing device online state, recent commands, and proxied camera feeds

05

Media proxy routing camera and audio streams through the server to prevent device overload

06

Seven ESP-IDF firmware projects across ESP32-C6, ESP32-C3, and ESP32 device families

07

Local firmware catalog with semantic versioning (d/s/p channels) for future OTA rollout