Building a physical Home Assistant remote with an ESP32
A small physical remote for Home Assistant: ESP32-S3, a display, real buttons and a deliberately simple interface instead of yet another smartphone app.
The project started with a simple idea: for common Home Assistant actions, I do not want to unlock my phone and navigate through an app every time. So I am building a compact dedicated remote.
Where it stands
The current hardware is based on an ESP32-S3 and a 2.2-inch ILI9225 non-touch display. Four physical buttons provide up, down, enter and back controls. The interface is intentionally restrained: a black background, readable monospace typography and nested menus that still make sense on a small screen.
The first working version connects to Wi-Fi and controls lights through the Home Assistant REST API.
Next steps
The next step is turning a working prototype into a dependable everyday device: battery operation and charging, a proper power switch, state synchronization and an extensible menu structure for scenes and individual devices.
For me, the interesting part is not only the finished device. The project is also an exercise in bringing hardware, firmware, API design and usability together — including all the small mistakes that naturally happen on a breadboard.
What I am learning
- using ESP32-S3 and PlatformIO in a real project
- combining SPI displays with physical controls
- controlling Home Assistant through APIs
- making UI decisions under tight hardware constraints
- moving from a breadboard prototype toward a dependable device