Firmware “ESPHome”

5 minuti di lettura
●  Resta aggiornato con il nostro canale e con la nostra newsletter settimanale!  ●
Produttore: esphome
Categoria: Software
Tipologia: Custom firmware modulare
Tecnologia: SOC ESP8266 e ESP32
Difficoltà d’installazione: Medio/Bassa
Semplicità d’uso: Media
Disponibilità: presso GitHub e presso il sito di supporto
Revisione scheda: 1.3

 

ESPHome Logo

 

ESPHome è un firmware alternativo Open Source per dispositivi basati su chip ESP32 e ESP8266. concepito espressamente per l’uso in domotica personale. Dispositivi compatibili sono ad esempio quelli della linea ITEAD “Sonoff Smart Home”, quelli della Shelly “Home Automation Systems”, il NodeMCU e molti, molti altri.

Ciò che differenzia ESPHome da altri firmware molto noti (vedi Tasmota) e che spinge inDomus a interessarsene è il concept che sta alla base di questo software: a differenza degli altri, ESPHome è infatti modulare, in quanto può essere modellato a monte della sua compilazione (e quindi a monte della sua installazione sul componente). Alti firmware, infatti, vengono messi a disposizione completi, dotati quindi di tutte le possibili funzionalità previste dallo sviluppatore, il che appesantisce il firmware e riduce sensibilmente lo spazio in memoria utile per sviluppi di nuovi funzionalità e servizi. ESPHome mette a disposizione un elenco di funzionalità di diversa natura (basilari, ma anche interruttori, sensori e molto altro) che possono essere selezionate e configurate a monte, compilate e infine collocate sul componente.

Poniamo di voler riprogrammare, quale dispositivo target, un Sonoff Basic R3: trattandosi di un semplice interruttore intelligente Wi-Fi a singolo relè sarà sufficiente aggiungere alla “ricetta” le funzioni basilari (come le caratteristiche della board, username e password d’accesso alla Wi-Fi), la funzionalità “interruttore”, quella “pulsante” (per governare il pulsante presente sull’attuatore), un “sensore” che fornisca la lettura di potenza di segnale Wi-Fi leggendola all’interno dell’attuatore e poco altro: al termine della configurazione il firmware viene compilato ed è pronto per essere installato sul componente.

D’ACCORDO, MA COME SI PREPARA “LA RICETTA”?

Semplice: è sufficiente redigere un semplice file in notazione YAML nel quale inserire (un po’ come si fa con il file di configurazione di Home Assistant) le chiavi relative ai vari componenti che si vogliono inserire relative al dispositivo target.

Un esempio delle sole chiavi essenziali (tipo board e Wi-Fi), di base, per un Sonoff Basic:

esphome:
  name: sonoff_basic
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: "il_nome_della_propria_wifi"
  password: "la_password_della_wifi"

  # Abilita la creazione di un AP Wi-Fi in caso di caduta della rete domestica
  ap:
    ssid: "Sonoff Basic"
    password: "2z7FlDMk4R2v"

Una volta completato il file YAML (che spesse volte può essere scaricato direttamente già bello e pronto da Internet) è sufficiente salvarlo.


Per modellare il proprio file YAML è Inoltre possibile utilizzare un’intuitiva interfaccia web (installabile sia su Linux – incluso Raspbian per Raspberry Pi e su altri sistemi operativi, piuttosto che, come add-on, su Home Assistant in distribuzione HASSIO) la quale consente di modellare il proprio file YAML tramite procedura passo-passo. Ne parliamo nello specifico a seguire.

COME SI COMPILA IL FIRMWARE?

Come sempre, un firmware per esser installato dev’essere prima compilato in un file binario che sia poi interpretabile dal microprocessore del dispositivo target. Anche in questo ESPHome si differenzia da molti altri firmware: primariamente è disponibile un tool da riga di comando che, sulla base del file YAML precedentemente definito, produce in output il firmware compilato. Tale tool installa anche l’interfaccia web per la modellazione dei propri file YAML di configurazione ESPHome.

Se invece si utilizza Home Assistant HASSIO e quindi l’add-on di ESPHome (da non confondersi con l’integrazione, cosa che vedremo in seguito), la compilazione si effettua facilmente al termine della definizione di ogni file YAML, fornendo in output appunto il file binario (.bin) pronto per esser installato sul dispositivo target.

Home Assistant HASSIO - ESPHome Add-on
l’add-on HASSIO.
COME SI INSTALLA (LA PRIMA VOLTA) SUL DISPOSITIVO TARGET?

USB/TTL

Le tecniche sono sempre le stesse. Innanzitutto serve un adattatore USB/TTL (FTDI) e relativo cavo di connessione USB, a meno che non sia tratti di un componente che preveda il flashing direttamente OTA (tipo il Sonoff Mini, per capirci), così da collegarlo al computer di appoggio. La procedura, abbastanza semplice sebbene articolata, è spiegata in questa nostra guida (che utilizza il noto tool esptool); alternativamente possono essere utilizzati altri tool, come l’ESPTool Flasher.

Tasmota Full LogoN.b. In caso il dispositivo target sia già dotato di firmware Tasmota, non è necessario utilizzare la modalità fisica via adattatore USB/TTL. È infatti sufficiente compilare normalmente il firmare ESPHome, scaricare il precompilato e, tramite interfaccia web di Tasmota, aggiornare il firmware usando quel precompilato ESPHome. Maggiori dettagli sono disponibili qui.
E POI?

Laddove invece il componente sia già dotato di firmware ESPHome (a patto che sia provveduto a inserirvi, tra le funzioni base, questa), è tutto più semplice: tramite l’interfaccia web di cui sopra è possibile, in pochi e semplicissimi passi, provvedere alla variazione delle configurazione, alla ricompilazione del firmware e all’installazione dello stesso in modalità OTA (Over-The-Air), ovvero tramite Wi-Fi. Il tutto in pochi secondi.

STRUMENTI ALL-IN-ONE

ESPHome offre una suite di strumenti concepiti per configurare, compilare e installare il firmware. Tali strumenti possono essere installati su sistemi operativi dotati di ambiente Docker (vedi documentazione ufficiale) o in altre modalità.

  • Gli utenti Home Assistant “HASSIO” possono beneficiare dell’esistenza di un praticissimo add-on il quale, una volta configurato, consente di eseguire le più comuni operazioni ESPHome direttamente da interfaccia web. A tale declinazione degli strumenti ESPHome abbiamo dedicato una guida ad hoc.
  • Gli utenti Raspberry Pi con sistema operativo Raspbian (e comunque agli utenti Linux in genere) possono beneficiare di una suite di tool messi a disposizione da ESPHome che, una volta installati, permettono di modellare i propri progetti, compilarli e installarli sui dispositivi target. A tale declinazione degli strumenti ESPHome abbiamo dedicato una guida ad hoc, valida comunque anche per altri sistemi operativi Linux.

Automazioni

Una delle caratteristiche più interessanti di ESPHome – a di là di quanto già descritto – è l’esistenza di automazioni, vale a dire la possibilità di definire come un dato componente dotato di tale firmware debba comportarsi al presentarsi di determinate condizioni.

Rimane pur vero ciò che sosteniamo da sempre, ovvero che la centralità delle automazioni debba rimanere presso l’HUB personale della propria domotica; nel caso delle automazione di ESPHome il discorso però è leggermente diverso. Poniamo per esempio di avere un attuatore che, alla sua attivazione, debba aprire/chiudere il contatto per un breve lasso di tempo, come per esempio ne caso degli attuatori a contatto pulito per domotizzare telecomandi. Sicuramente potrebbe essere centralizzato in domotica personale, ma trattandosi di un comportamento specifico dell’attuatore (praticamente una funzione), è bene che sia lui a comportarsi così e sempre così.

Per farlo, con ESPHome, si usano per l’appunto le automazioni, ovvero dei comportamenti predeterminati definiti sempre nel solito file YAML che si usa per compilare il firmware. Di contro,  in presenza di altri firmware l’esecuzione di scenari come quello (per esempio) sopra descritto non prevede l’eventuale ripogrammazione (necessaria con ESPHome) in caso di modifiche – si pensi al banale comando PULSETIME di Tasmota: solitamente basta eseguirlo e la modifica comportamentale è attuata.

Integrazioni

Infine, un tema molto caro a questa community, ovvero l’integrabilità domotica.
ESPHome nasce con l’integrabilità nel sangue: Home Assistant (il più adottato tra gli HUB personali) è dotato di un’integrazione nativa che sfrutta le API presenti sui dispositivi dotati di firmware ESPHome (purché abbiano tra i componenti inclusi nella compilazione le API ESPHome); stessa cosa vale per openHAB, Domotiz e altri, sempre tramite API. I più affezionati allo standard MQTT non devono temere: includendo nella compilazione il componente client MQTT  è possibile praticamente integrare con qualsiasi altra realtà che supporti questo standard.


Su inDomus abbiamo dedicato una serie di schede di progetto, guide, news ed altro dedicate all’uso di ESPHome, dalla configurazione all’uso quotidiano nella propria domotica.

inDomus AWARD

 

Contenuti inDomus sul firmware ESPHome
Guide
Progetti
    FOCUS
    Formazione


      NodeMCUATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica ai dispositivi ESP8266 e similari per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.