← Back to archive

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.