Skip to content

ESPHome

Overview

ESPHome lets you configure ESP32/ESP8266 devices using YAML and push updates wirelessly after the first USB flash.

Advantages

  • OTA updates (no more plugging the board into your PC)
  • YAML-based configuration
  • Easy integration with MQTT, Home Assistant, and custom setups
  • Fast iteration once the device is online

Setup

Official documentation can be found here

To set up ESPHome CLI, use the following commands:

Python

Just like the official docs, I assume your distro has Python already bundled in.
Use python3 --version to check.

python3 -m venv venv
source venv/bin/activate

pip3 install esphome

Check succesful installation with esphome version.

First flash

The first flash must be over USB. There's no way around that.
Easiest option is to run esphome wizard <filename>.yaml to start the wizard.
From here, just follow it's instructions.

Take the time to browse the board models and choose what's closest to yours.

After the first flash you can use esphome run <filenam>.yaml to push changes.
If you changed the name of the device, use esphome run <filename>.yaml --device <ip-address> to push to the IP instead of the old name of the device.