The easiest way to get started with ESPHome is through the ESPHome Device Builder — a web-based interface for creating, editing, and installing device configurations. When you run Home Assistant, you can install it as a native add-on in just a few clicks. This guide walks you through the entire process from installation to your first working smart home device.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/esphome/esphome.io/llms.txt
Use this file to discover all available pages before exploring further.
What You’ll Need
- A running Home Assistant installation with add-on support (Home Assistant OS or Supervised)
- An ESP32 or ESP8266 development board (e.g., NodeMCU, ESP32-DevKitC, Wemos D1 Mini)
- A USB data cable to connect the board to your computer for the initial flash
- Your Wi-Fi network name (SSID) and password
If your Home Assistant installation does not support add-ons (e.g., Home Assistant Container or Core), you can run the ESPHome Device Builder independently using Docker. See the Docker alternative section below.
Installing and Setting Up ESPHome
Install the ESPHome Device Builder Add-on
Open your Home Assistant instance and navigate to Settings → Add-ons → Add-on Store. Search for ESPHome Device Builder and click on it, or use the button below to open the add-on page directly:
On the add-on page, click Install. Installation pulls the ESPHome container image and may take a minute or two depending on your internet speed.Once installation completes, click Start, then toggle Start on boot and Watchdog to keep the add-on running reliably. Finally, click Open Web UI to launch the Device Builder.
Open the ESPHome Device Builder Web UI
The Device Builder opens to the main dashboard. If this is your first time, you’ll see an empty configuration list and a prompt to create your first device.The dashboard displays all your ESPHome device configurations. For each entry you can:
- EDIT — open the YAML configuration editor
- LOGS — stream live logs from the device (via USB or Wi-Fi)
- INSTALL — compile and push updated firmware to the device
- UPDATE — appears when a newer ESPHome version is available for the device
ESPHome configuration files are stored in the
<HOME_ASSISTANT_CONFIG>/esphome/ directory. For example, a device named bedroom-light is stored at /config/esphome/bedroom-light.yaml. To access these files via SSH, install the Home Assistant SSH add-on.Create Your First Device Configuration
Click + New Device (or the equivalent prompt in the empty-state UI). The wizard offers three options:New Device Setup (recommended for beginners)
The wizard guides you through selecting your microcontroller platform (ESP32, ESP8266, etc.), your specific board, and your Wi-Fi credentials. At the end, ESPHome generates a ready-to-use configuration file.Import from File
Upload an existing
.yaml or .yml ESPHome configuration. Useful for restoring a backup or migrating a configuration from another system. You can browse for a file or drag and drop it onto the dialog.Empty Configuration
Creates a minimal skeleton for advanced users who want to write their configuration from scratch or paste one in from the ESPHome Device Database.After completing the wizard, your new device appears in the dashboard list.Connect Your ESP Device via USB
Before ESPHome can install firmware onto a brand-new device, it needs a physical USB connection — at least for the very first flash.Connect your ESP board to the computer running Home Assistant (or to the computer your browser is running on — the web installer can flash locally). Use a USB data cable, not a charge-only cable.Once ESPHome is installed on your device, all future updates happen over the air (OTA) — no USB cable needed.
Install Firmware to Your Device
From the dashboard, click the overflow menu (⋮) on your new device entry and choose Install. The Install dialog presents several options:
- Plug into this computer — flashes via the browser’s WebSerial API directly to a USB-connected device. Works on Chrome and Edge.
- Plug into the computer running ESPHome — flashes via the server’s serial port (useful when the ESP is plugged into your Home Assistant machine).
- Manual download — downloads a compiled
.binfile that you can flash with ESPHome Web oresptool. - Wirelessly — available after the first installation; performs an OTA update over Wi-Fi.
Home Assistant Auto-Discovery
Once your ESPHome device is connected to Wi-Fi, Home Assistant will automatically discover it — usually within a minute. A notification will appear offering to add the new ESPHome integration.
If auto-discovery doesn’t appear after a few minutes, you can add the device manually:
- Go to Settings → Devices & Services → Add Integration
- Search for ESPHome
- Enter the device’s hostname (e.g.,
living-room-lamp.local) or its IP address
Adding Components to Your Configuration
Once your device is running, click EDIT in the Device Builder to open the YAML editor. You can add any of ESPHome’s hundreds of components. Here are two quick examples: GPIO Switch — control a relay, LED, or any digital output:Saving the configuration file alone does not update the physical device. You must click INSTALL each time you want to apply changes.
Docker Alternative
If your Home Assistant setup doesn’t support add-ons, you can run the ESPHome Device Builder as a standalone Docker container:docker compose up -d, then open http://<your-host>:6052 in your browser. The web interface is identical to the Home Assistant add-on.
Where to Go Next
You’ve installed ESPHome, created your first device configuration, and connected it to Home Assistant. Here are some natural next steps:- Browse Components — find components for your sensors, displays, and actuators
- Device Database — look up pre-made configurations for popular commercial devices
- Command Line Guide — learn the CLI for power users and CI/CD workflows
- Security Best Practices — secure your devices on the network
- FAQ — answers to the most common ESPHome questions