Skip to content

ESP32

The top of the file names the device and describes the board. A few variables are reused later for the setup hotspot and QR code.

Name and substitutions

substitutions:
  name: esp32-s3-ha-climate
  friendly_name: ESP32-S3 HA Climate
  ap_ssid: Climate Setup
  ap_password: setup1234

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  name_add_mac_suffix: true
  project:
    name: jajera.esp32-s3-ha-climate
    version: "1.0.0"
  on_boot:
    priority: -100
    then:
      - if:
          condition:
            lambda: return !wifi::global_wifi_component->has_sta();
          then:
            - display.page.show: page_setup

${name} and the other substitutions are filled in wherever they appear later in the file.

Key What it does
ap_ssid / ap_password Setup hotspot only (Climate Setup / setup1234). Not your home Wi‑Fi. Same values go into the QR code
name_add_mac_suffix Appends the end of the MAC address, e.g. esp32-s3-ha-climate-a1b2c3, so several boards don't clash
project Tags the binary so Home Assistant can show where the config came from
on_boot After Wi‑Fi has loaded NVS: show the QR only when no home network is saved (see Wi‑Fi setup)

The hotspot password is not a secret

It is in the QR code and in this repo. It only opens the setup page while the device has no network.

Board, memory and log

esp32:
  board: esp32-s3-devkitc-1
  flash_size: 16MB

psram:
  mode: octal
  speed: 80MHz

logger:
  hardware_uart: UART0
Key What it does
esp32 ESP32-S3 DevKitC-1 class board with 16 MB flash (the N16R8)
psram 8 MB octal PSRAM at 80 MHz — needed for the display buffer and Bluetooth. Leave these unless you use a different board
logger Serial log on UART0 (the COM bridge). ESP32-S3 would otherwise log on native USB — you'll use COM in the flash step

Next: Home Assistant