Repo of the Day
heffneil/esphome-enhanced-dashboard: Drop-in enhanced dashboard overlay for ESPHome Docker — search, tags, archive, side panel, in-page logs/editor. Pairs with ghcr.io/esphome/esphome.
Published: Jun 25, 2026
Open repository ↗Drop-in enhanced dashboard overlay for ESPHome Docker — search, tags, archive, side panel, in-page logs/editor. Pairs with ghcr.io/esphome/esphome. - heffneil/esphome-enhanced-dashboard
Summary
ESPHome Enhanced Dashboard is a drop-in replacement for the stock ESPHome management UI, distributed as a Docker image or Home Assistant add-on that overlays the official esphome/esphome container. It keeps every existing capability — compiling, OTA uploads, mDNS discovery, PlatformIO toolchains, Home Assistant ingress — but replaces the card-based front end with a sortable table, live search, device tags, an archive section, a side panel for per-device actions, an embedded Ace editor, and in-page modals for logs/compile/ping output. The original dashboard remains reachable at /classic if you need to fall back.
What it is useful for
Engineers running more than a handful of ESPHome devices will recognize the pain this targets: the stock UI gets unwieldy past ~10 devices, finding a specific node means scrolling, and bulk operations like "update everything" don't exist. This overlay addresses that with:
- A compact table with columns for status, IP, platform, ESPHome version, comment, tags, and config file, with live status dots and an "Update Available" indicator.
- Cross-field search (name, IP, comment, config filename) and tag-based filtering using OR-logic pills that persist across reloads.
- A side panel exposing actions — Compile, Validate, Install (OTA), Install to Specific Address, Edit, Logs, Ping (with latency/loss/jitter), Show API Key, Archive, and Mark Inactive.
- Batch actions via row checkboxes: "Update Selected" runs compile+upload sequentially with a per-device summary, and "Compile Selected" is compile-only.
- An in-page Ace editor (tomorrow-night theme, Ctrl+S to save, unsaved-changes warning) and a New Device wizard covering ESP32 family, ESP8266, RP2040, BK72xx, RTL87xx, and LN882x boards.
Tags, inactive state, and archive location all live in <config>/.esphome/*.json or <config>/archive/, so they survive container recreation.
How engineers can use it
The README documents five install paths. The simplest for Docker users is Option 2 — swap the image tag in an existing docker-compose.yml:
services:
esphome:
image: heffneil/esphome-enhanced-dashboard:latest
container_name: esphome
restart: unless-stopped
ports:
- "6052:6052"
volumes:
- /path/to/your/config:/config
- /etc/localtime:/etc/localtime:ro
Home Assistant OS/Supervised users get a drop-in add-on via the repository URL https://github.com/heffneil/esphome-enhanced-dashboard-addon (uninstall the official add-on first to free port 6052). Proxmox users have a one-line LXC installer. Image tags include :latest, :dev, and version-pinned tags like :2026.5.2.
Documented limitations to be aware of: .local mDNS names won't resolve from a bridge-network container (use network_mode: host or pass an IP), PlatformIO toolchains need a named volume to persist across rebuilds, and the 0.2.18 release had a workflow bug that left HA add-on users on an older ESPHome base — fixed in 0.2.20. Reverting is one line: change the image back to esphome/esphome and restart.