the Shelly display

The house, visible.

built, not bought · running since 2025 · lives at 17:30 in the day

A wall panel that shows what the house is doing right now: power, heat, sun on the roof. Hand built, one purpose, no app to open.

The Shelly display panel on the wall in evening light, live house readings glowing
brain
ESP32-S3
panel
7 inch IPS, 800 x 480
data
Shelly Gen3, MQTT
frame
3D printed, oak front
running since
March 2025

Dashboards live in phones. Houses live on walls.

Every smart home ends up with the same problem: the data is there, but you have to go get it. Open the app, wait, tap through three screens to learn the dryer is done. That is not awareness, that is homework.

The panel flips the direction. It hangs where my eye already lands between tasks, and it answers three questions at a glance: what are we drawing, what is the roof making, what is still running. Nothing to open, nothing to unlock. The house just says it.

Six steps, one weekend, two mistakes.

The back of the panel open, ESP32 on its printed sled, ribbon cable folded

Wiring the brain

The ESP32 sits on a printed sled, USB-C down. Leave the boot button reachable, you will need it more than you hope.

The display ribbon folds twice, never creases. The first panel died to teach this lesson. Mistake number one.

Power enters through a recessed channel so the panel sits flush on the wall. Routed after the fact. Mistake number two.

The full six steps, each with its photo and callouts, land here with the real build documentation.

Doing its thing.

a short loop, muted, plays when it enters view

Steal this part.

The whole thing is one ESPHome file and a printed frame. Both are here, take them. Build your own version, tell me what you changed.

shelly-panel.yamlesphome 2026.6
sensor:
  - platform: mqtt
    topic: shellies/haus/power
    name: "Bezug"
  - platform: mqtt
    topic: shellies/dach/pv
    name: "Dach"

display:
  - platform: ili9xxx
    lambda: |-
      it.print(20, 20, id(big), "Das Haus, sichtbar.");

Up close.