ESPHome: firmware semplificato per Home Assistant

Pubblicato il 02/05/2026 IoT

Programmare ESP32 in C++ con l'IDE Arduino richiede saper gestire Wi-Fi, MQTT, JSON, OTA... ESPHome riduce tutto a un file YAML di 20 righe e si integra automaticamente con Home Assistant senza nemmeno passare per MQTT.

1. Installazione

Due opzioni:

  • Add-on Home Assistant: Settings → Add-ons → ESPHome → Install → Start. Apre una web UI integrata.
  • CLI Python: pip install esphome — utile se non hai HA o se vuoi flashare via USB con un solo PC.

2. Primo dispositivo: sensore DHT22

Esempio: ESP32 + sensore di temperatura/umidità DHT22 collegato al pin GPIO4.

Crea un nuovo dispositivo nella web UI ESPHome, seleziona la board, e sostituisci il YAML con:

esphome:
  name: salotto-temp
  friendly_name: "Salotto"

esp32:
  board: esp32dev
  framework:
    type: arduino

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

api:
  encryption:
    key: !secret api_key

logger:
ota:
  - platform: esphome
    password: !secret ota_password

sensor:
  - platform: dht
    pin: GPIO4
    model: DHT22
    temperature:
      name: "Temperatura salotto"
    humidity:
      name: "Umidità salotto"
    update_interval: 30s

3. Secrets

Crea il file secrets.yaml con:

wifi_ssid: "CasaWifi"
wifi_password: "..."
api_key: ""
ota_password: "..."

4. Compilazione e flash

Dal web UI: Install → Plug into computer per il primo flash (USB), Wirelessly per quelli successivi (OTA). La compilazione richiede 1-3 minuti.

5. Auto-discovery in Home Assistant

Subito dopo il primo boot connesso al Wi-Fi, Home Assistant lo trova in Settings → Devices & Services come dispositivo da configurare. Un click e ti compaiono le entità sensor.temperatura_salotto e sensor.umidita_salotto.

6. Componenti utili

CosaTipo
Relè (luce/tapparella)switch: + platform: gpio
Pulsantebinary_sensor: + platform: gpio
Sensori I2C (BME280, BH1750)i2c: + sensor platform
Display OLEDdisplay: + platform: ssd1306_i2c
Striscia LED WS2812Blight: + platform: esp32_rmt_led_strip
Sensore di movimento PIRbinary_sensor: + device_class: motion

7. Aggiornamenti OTA wireless

Una volta installato, ogni successiva modifica al YAML viene compilata e caricata sul dispositivo via Wi-Fi. Niente più cavi USB.

Vantaggio chiave: a differenza dei dispositivi WiFi commerciali (Sonoff, Shelly), ESPHome ti dà controllo totale, niente cloud terzi, e il dispositivo continua a funzionare anche se Home Assistant è offline (l'automazione locale può essere definita direttamente nel YAML).