Skip to content
A top-down view of someone wiring an ESP32 microcontroller on a breadboard, surrounded by soldering and electronics tools.

ESPHome

ESPHome is an open-source system for building your own smart home devices - just describe what you want in simple YAML, no firmware coding required.
No Coding Required

Simple YAML configuration files instead of complex C++ code.

Wireless Updates

Update your devices over-the-air without physical access.

Modular Design

Support for hundreds of sensors, displays, and other components.

Local Control

Devices work locally without cloud dependencies.

Building your own smart home devices usually means writing and debugging low-level firmware code - a steep barrier for anyone who isn’t already a C++ developer. ESPHome removes that barrier: describe the sensors, switches, and behavior you want in a YAML configuration file, and ESPHome generates and compiles the firmware for you.

Traditional Firmware

void setup() {
pinMode(GPIOXX, INPUT);
dht.begin();
}
void loop() {
float temp = dht.readTemperature();
mqttClient.publish("sensor/temp", String(temp));
}

ESPHome Configuration

sensor:
- platform: dht
pin: GPIOXX
temperature:
name: "Temperature"
  • DIY Enthusiasts - Create custom sensors, switches, and displays tailored to specific needs
  • Smart Home Hobbyists - Extend their home automation systems with affordable custom devices
  • Professional Integrators - Deploy reliable, locally-controlled smart devices for clients
  • Manufacturers - Create Made for ESPHome certified products with standardized firmware

Not sure what to build first? These Cookbook recipes walk through common projects at a range of difficulty levels:

Environment Sensor

Beginner — read temperature, humidity, and pressure with a BME280. View recipe

Time & Temperature Display

Intermediate — show live sensor data on an OLED display. View recipe

Custom LVGL Dashboard

Advanced — build a touchscreen UI with the LVGL display engine. View recipe

Browse the full Cookbook for more recipes, or explore Ready-Made Projects you can install without writing any configuration at all.

From Home Assistant

The easiest way to get started with ESPHome is through the Home Assistant app.

Home Assistant Guide
Command Line

For advanced users who prefer working with the command line.

Command Line Guide
Ready-Made Projects

Start with a pre-configured project for common use cases.

Browse Projects
ESPHome Device Builder

Configure your device visually with the new guided, no-YAML-required workspace.

See What's New
Latest from the Blog

Unbox your creativity with ESPHome 2026.6.0 — Discover a more approachable way to bring your smart home ideas to life: the new visual Device Builder in the latest ESPHome release.

Read the Post

Thousands of makers, integrators, and hardware partners are already building with ESPHome. Browse the Device List for community-documented devices, or check out Made for ESPHome certified products built by hardware manufacturers.

Discord

Chat with the community in real time. Join Discord

Home Assistant Forum

Ask questions and share projects. Visit the Forum

GitHub

Follow development or contribute to ESPHome. View on GitHub