ESPHome è uno degli strumenti più potenti e versatili per chi vuole portare la propria smart home a un livello superiore creando dispositivi personalizzati basati su microcontrollori ESP32 ed ESP8266. A differenza di altre soluzioni che richiedono competenze avanzate di programmazione, ESPHome utilizza file di configurazione YAML semplici e intuitivi, permettendo anche ai principianti di realizzare sensori, attuatori e dispositivi IoT completamente personalizzati.
L’integrazione nativa con Home Assistant rende ESPHome la scelta ideale per chi vuole dispositivi su misura senza dover gestire broker MQTT complessi o protocolli proprietari. In questa guida esploreremo tutte le modalità di installazione, dalla più semplice (add-on Home Assistant) alla più flessibile (CLI), fornendo esempi pratici di configurazione per sensori di temperatura, umidità, movimento e relè intelligenti.
Perché scegliere ESPHome per la tua smart home
Vantaggi principali:
-
Integrazione nativa con Home Assistant: i dispositivi vengono rilevati automaticamente senza configurazioni complesse
-
Configurazione YAML semplice: non serve conoscere C++ o altri linguaggi di programmazione complessi
-
Aggiornamenti OTA (Over-The-Air): una volta programmato via USB, puoi aggiornare il firmware via WiFi
-
Ampia compatibilità hardware: supporta centinaia di sensori, display, attuatori e componenti
-
Costo ridotto: un ESP8266 costa circa 2-3€, un ESP32 circa 5-7€
-
Community attiva: documentazione completa e forum di supporto sempre disponibili
Hardware necessario
Prima di iniziare, procurati:
Microcontrollori:
-
ESP32: consigliato per progetti avanzati (dual-core, Bluetooth, più GPIO, maggiore memoria)
-
ESP8266: perfetto per progetti semplici (sensori temperatura, relè singoli, prese smart)
Sensori comuni:
-
DHT11/DHT22 (temperatura e umidità economici)
-
BME280/BMP280 (temperatura, umidità e pressione atmosferica precisi)
-
PIR HC-SR501 (sensore movimento infrarossi)
-
BH1750 (sensore luminosità digitale)
-
DS18B20 (temperatura digitale waterproof)
Altri componenti:
-
Relè (1, 2 o 4 canali per automazioni)
-
LED RGB/RGBW per illuminazione personalizzata
-
Display OLED SSD1306 per visualizzazione dati
-
Pulsanti, switch e potenziometri
Accessori necessari:
-
Cavo USB per programmazione iniziale
-
Alimentatore 5V per ESP (almeno 1A)
-
Breadboard e cavi jumper per prototipazione
Metodo 1: Installazione via Add-on Home Assistant (consigliato per principianti)
Questo è il metodo più semplice e immediato per chi usa Home Assistant OS o Home Assistant Supervised.
Procedura dettagliata:
-
Apri Home Assistant e vai su Impostazioni > Componenti aggiuntivi
-
Clicca su STORE COMPONENTI AGGIUNTIVI in basso a destra
-
Cerca “ESPHome” nella barra di ricerca
-
Clicca sull’add-on ESPHome ufficiale
-
Clicca su INSTALLA e attendi il completamento (può richiedere 5-10 minuti)
-
Una volta installato, abilita le opzioni:
-
Avvia all’avvio (start on boot)
-
Watchdog (riavvio automatico in caso di crash)
-
Mostra nella barra laterale (per accesso rapido)
-
-
Clicca su AVVIA per lanciare l’add-on
-
Dopo qualche secondo, l’icona ESPHome comparirà nella barra laterale di Home Assistant
Vantaggi di questo metodo:
-
Nessuna configurazione di rete necessaria
-
Interfaccia web integrata direttamente in Home Assistant
-
Aggiornamenti automatici dell’add-on
-
Accesso da qualsiasi dispositivo connesso a Home Assistant
Metodo 2: Installazione via Dashboard ESPHome (per utenti intermedi)
Se usi Home Assistant Container o preferisci un’installazione separata, puoi usare ESPHome Dashboard come container Docker indipendente.
Procedura con Docker:
-
Assicurati di avere Docker installato sul sistema
-
Crea una directory per i file di configurazione ESPHome:
mkdir ~/esphome cd ~/esphome
- Esegui il container ESPHome Dashboard:
docker run --rm --net=host -v "${PWD}":/config -it ghcr.io/esphome/esphome -
Apri il browser e vai su
http://IP_DEL_TUO_SERVER:6052 -
La dashboard ESPHome sarà accessibile per creare e gestire dispositivi
Vantaggi:
-
Maggiore controllo e isolamento
-
Funziona su qualsiasi sistema con Docker
-
Ideale per installazioni Home Assistant Container
Metodo 3: Installazione via CLI (per utenti avanzati)
L’installazione tramite Command Line Interface offre massima flessibilità ed è ideale per chi preferisce lavorare da terminale.
Procedura su Linux/Mac:
-
Installa Python 3 (se non già presente):
python3 --version
- Installa ESPHome via pip:
pip3 install esphome
- Verifica l’installazione:
esphome version
- Crea una directory per i progetti:
mkdir ~/esphome-configs cd ~/esphome-configs
Procedura su Windows:
-
Installa Python 3 da python.org
-
Apri il Prompt dei comandi o PowerShell
-
Installa ESPHome:
pip install esphome
- Verifica:
esphome version
Vantaggi:
-
Controllo completo da terminale
-
Ideale per scripting e automazioni build
-
Nessun overhead di interfacce web
-
Perfetto per CI/CD pipelines
Creare il primo dispositivo ESPHome
Indipendentemente dal metodo di installazione scelto, la procedura per creare un dispositivo è simile.
Tramite Dashboard (Add-on o Docker):
-
Clicca su + NUOVO DISPOSITIVO
-
Scegli un nome (es: “sensore_temperatura_cucina”)
-
Seleziona il tipo di scheda:
-
ESP32 (per dispositivi con chip ESP32)
-
ESP8266 (per NodeMCU, Wemos D1 Mini, ecc.)
-
-
ESPHome genererà automaticamente un file di configurazione base
-
Clicca su MODIFICA per personalizzare la configurazione
Tramite CLI:
esphome wizard sensore_temperatura_cucina.yaml
Segui le istruzioni guidate per:
-
Nome dispositivo
-
Tipo di scheda (ESP32/ESP8266)
-
Credenziali WiFi
-
Password OTA
Esempio di configurazione completa: sensore temperatura e umidità
Ecco un esempio pratico di configurazione YAML per un sensore DHT22 connesso a un ESP8266:
esphome:
name: sensore_cucina
platform: ESP8266
board: nodemcuv2
wifi:
ssid: "Nome_Rete_WiFi"
password: "Password_WiFi"
# IP statico opzionale (consigliato per stabilità)
manual_ip:
static_ip: 192.168.1.50
gateway: 192.168.1.1
subnet: 255.255.255.0
# Abilita logging via seriale
logger:
# Abilita API per Home Assistant
api:
encryption:
key: "chiave_generata_automaticamente"
# Abilita aggiornamenti OTA
ota:
password: "password_sicura"
# Sensore DHT22 su pin D4
sensor:
- platform: dht
pin: D4
temperature:
name: "Temperatura Cucina"
unit_of_measurement: "°C"
accuracy_decimals: 1
humidity:
name: "Umidità Cucina"
unit_of_measurement: "%"
accuracy_decimals: 0
update_interval: 60s
model: DHT22
Caricare il firmware sul dispositivo
Prima programmazione (via USB):
-
Collega l’ESP al computer via cavo USB
-
Nella Dashboard ESPHome, clicca sui tre puntini del dispositivo
-
Seleziona INSTALL > Plug into this computer
-
Seleziona la porta seriale corretta (es: COM3 su Windows, /dev/ttyUSB0 su Linux)
-
Attendi il completamento del caricamento (2-5 minuti)
Aggiornamenti successivi (via WiFi – OTA):
-
Clicca su INSTALL > Wirelessly
-
ESPHome compilerà il firmware e lo invierà via WiFi
-
Il dispositivo si riavvierà automaticamente con il nuovo firmware
Troubleshooting comune:
-
Porta non rilevata: installa driver CH340 o CP2102 per la porta USB
-
Errore di connessione: premi il pulsante BOOT/FLASH sull’ESP durante la programmazione
-
WiFi non si connette: verifica SSID e password, controlla che la rete sia 2.4GHz
Integrazione automatica in Home Assistant
Una volta che il dispositivo ESP è connesso alla rete WiFi:
-
Home Assistant rileverà automaticamente il nuovo dispositivo ESPHome
-
Vai su Impostazioni > Dispositivi e servizi
-
Clicca su CONFIGURA nella notifica ESPHome
-
Inserisci la chiave API (se richiesta, la trovi nel file YAML)
-
Tutte le entità (sensori, switch, ecc.) saranno disponibili immediatamente
Esempi di configurazioni avanzate
Sensore movimento PIR con automazione:
binary_sensor:
- platform: gpio
pin: D2
name: "Movimento Ingresso"
device_class: motion
Relè controllabile:
switch:
- platform: gpio
pin: D1
name: "Luce Garage"
id: relay_garage
Display OLED per visualizzazione dati:
i2c:
sda: D2
scl: D1
display:
- platform: ssd1306_i2c
model: "SSD1306 128x64"
address: 0x3C
lambda: |-
it.printf(0, 0, id(font), "Temp: %.1f°C", id(temperatura).state);
it.printf(0, 20, id(font), "Umid: %.0f%%", id(umidita).state);
Consigli pratici e best practices
-
Usa IP statici per i dispositivi ESP per evitare problemi di riconnessione
-
Documenta i pin usati per ogni sensore per future modifiche
-
Testa su breadboard prima di saldare componenti
-
Usa alimentatori adeguati: ESP32 può richiedere fino a 500mA in picchi WiFi/Bluetooth
-
Backup delle configurazioni: i file YAML sono testuali, usa Git per versionarli
-
Monitora i log durante la fase di test per diagnosticare problemi
-
Aggiorna ESPHome regolarmente per nuove funzionalità e bugfix
