In Use ESP32 ESPHome Home Assistant Home Automation 3D Printed

Smart OLED Remote for Home Assistant

// quick facts

radio_button_checked Status
In Use
category Type
Hardware
memory Platform
ESPHome
developer_board Tech
ESP32, OLED, Custom PCB
schedule Build Time
~3w
signal_cellular_alt Difficulty
Medium
sell Version
3.1

What it is

This project is a custom smart remote built for Home Assistant. It combines an ESP32 board, a 1.3 inch SH1106 OLED display, tactile buttons, battery power, and a custom 3D-printed enclosure into a compact handheld controller.

It originally started as a remote for controlling air conditioners, but the design quickly proved flexible enough to work with other Home Assistant entities too, including lights, fans, curtains, and custom automations.

Why I built it

The original inspiration came from an ESPHome-based remote design by The Stock Pot, but that version did not include a screen. Adding an OLED display made a huge difference because it allowed the remote to show real device state in real time instead of relying only on button presses.

With the display, the remote can show the current mode, fan speed, target temperature, power state, and other context-sensitive information. That makes it feel much more like a complete smart home controller than a simple button pad.

Hardware

The hardware used in this build includes:

The device can run from battery power, but it can also be powered directly over USB-C.

Case design

The enclosure was redesigned to be sturdier, cleaner, and easier to assemble. The snap-fit clips were reinforced so the case can be opened and closed multiple times without cracking. The final design closes without screws, which keeps the outside clean and simple.

A divider plate was also added inside the case to separate the battery compartment from the rest of the electronics. This was done as a safety improvement to better protect the battery from pressure or accidental damage during use.

Home Assistant and ESPHome integration

The remote uses ESPHome and connects directly to Home Assistant through its native API. The OLED updates dynamically whenever the entity state changes, whether that change comes from the remote itself, the Home Assistant UI, or an automation.

The current implementation supports:

  • displaying AC mode
  • showing fan speed
  • showing target temperature
  • showing power state
  • switching between multiple entities
  • adapting profiles for different device types

Because button actions are mapped through Home Assistant services and ESPHome configuration, the same hardware can be repurposed for many different smart home scenarios.

Challenges and lessons learned

Some of the biggest challenges during the build were:

  • fitting the OLED to utilize maximum available space
  • designing a UI that stays readable on a small display
  • managing deep sleep and instant wake-up behavior
  • redesigning the enclosure to feel sturdy and quiet in hand

One notable improvement during development was adjusting the PCB layout to optionally support pogo pin connections for a cleaner and more modular OLED connection.

Final thoughts

This remote became one of the most useful smart home devices in daily use. It combines hardware, 3D printing, PCB design, ESPHome firmware, and Home Assistant integration in a way that feels polished and genuinely practical.

The strongest part of the concept is how universal it is. With small firmware changes, the same physical remote can control very different devices and automations, making it more of a general smart home control hub than a single-purpose remote.

Hardware

  • ESP32 Lolin32 V1.0
  • 1.3" SH1106 OLED display
  • LiPo 1200 mAh battery
  • Tactile 6x6x5 buttons
  • Custom PCB

Software / firmware

  • Home Assistant (API integration)
  • ESPHome
  • Dynamic OLED UI
  • Deep sleep and wake on button press

Design & manufacturing

  • Refined 3D-printed enclosure optimized for reliable printing
  • Custom PCB engineered for a seamless fit inside the enclosure
Real-time OLED status synced with Home Assistant
Full AC control: mode, fan speed, temperature, and power
Multi-entity switching from a single device
Works with AC, lights, fans, curtains, and custom automations
Battery-powered with deep sleep for extended runtime

Status & future

This project started as an improved take on an earlier ESPHome remote concept, with the main upgrade being the addition of a 1.3 inch OLED display for live state feedback and more flexible control.

It is one of the most practical smart home devices in daily use because the same hardware can be adapted for AC, lights, fans, curtains, or custom Home Assistant automations just by changing the ESPHome configuration.