Come molti tra di noi, anche io non ho più un rapporto sereno con le vacanze: Non più solo in Agosto, bei tempi. Quindi per una serie di motivi che andremo ad indagare nei prossimi post, ho avuto il piacere di fare una bellissima ed approfondita escursione in una branca della domotica che non bazzicavo da tempo, ma che fa parte del nostro percorso Domotica 101: ESPHome
Che cos’é ESPHome
ESPHome è un sistema che permette di programmare microcontrollori basati su ESP8266 e ESP32 per l’uso (ma non solo) con Home Assistant, una popolare piattaforma di automazione domotica open source (su cui inevitabilmente spenderemo altro tempo in futuro. ESPHome offre un modo semplice di definire e programmare questi dispositivi usando file di configurazione in YAML.
Il primo commit di ESPHome risale a 5 anni fa. Il che ci fa pensare che sia nato nel 2018, anche se sospetto che il progetto sia nato all’interno di Home Assistant e dei suoi numerosi plugi-ins. Con Home Assistant condivide la strana – e per alcuni versi complessa – sintassi YAML.
La necessità di ESPHome é legata a due elementi connessi.
- La grande popolarità dei chip ESP8266 ed ESP32. Sia come strumenti di prototipazione rapida per Makers, sia all’interno di dispositivi domotici
- La necessità di rivolgersi ad una platea di utenti più larga di coloro che sapessero programmare (e quindi usare il core Arduino, quello di Espressif o Micro-Python)
ESPHome nasce per i N00b. Curiosamente, anche Arduino nasceva per i N00b, quindi probabilmente é una direzione del mercato: semplificare e rendere più accessibile.
Configurare Vs Programmare
Sulla sua homepage, gli sviluppatori di ESPHome lo descrivono come: “ESPHome è un sistema per controllare i vostri ESP8266/ESP32 tramite semplici ma potenti file di configurazione e controllarli a distanza attraverso sistemi di domotica”.
L’idea fondamentale di ESPHome è che non si programma il dispositivo ESP8266 o ESP32, ma lo si configura. Spesso è sufficiente configurare i pin collegati a un componente, ad esempio un sensore. Non è necessario inizializzare il sensore, leggere i suoi valori in un ciclo ed elaborarli.
La configurazione è una mentalità completamente diversa dalla programmazione. Abbassa ulteriormente l’asticella. Con ESPHome, tutti possono realizzare dispositivi di automazione domotica.
In sostanza, ESPHome crea codice C++ in base alla configurazione. Il processo è il seguente:
Avendo usato vari “generatori di codice” o “configuratori” in passato (uno su tutti, TASMOTA), sono rimasto piacevolmente sorpreso dalla maturità di ESPHome rispetto a qualche anno fa. Ora puoi usarlo da solo (senza Home Assistant) attraverso una sua dashboard. Bellissimi i video di Csongor Varga a riguardo. Ne embeddo uno, ma consiglio vivamente di iscrivrsi al canale.
Quali sono i benefici di questo approccio? usare un progetto così condiviso e con un così alto numero di utenti coinvolti permette di poter scegliere tra moltissime caratteristiche solide e funzionali:
- Un altissimo numero di schede compatibili (ESP8266 / ESP32)
- Funzionalità in locale
- possibilità di automazioni a bordo della scheda
- Implementazione di upload OTA (Over The Air)
- Grande documentazione
Insomma, viene spontanea una domanda (forse solo a me che insegno da anni Arduino e simili): sarebbe possibile tenere un workshop di Domotica usando questa tipologia di schede e creando sensori custom solamente attraverso l’uso del linguaggio di configurazione ESPHome? Probabilmente sì, ovviamente sarebbe riduttivo nei confronti degli studenti, che un domani potrebbero trovarsi di fronte a necessità più specifiche legate ai microcontrollori, ma lo strumento é sicuramente maturo abbastanza da permettere – per motivi di tempo, per esempio – di poter concentrarsi su automazioni più ad alto livello (i.e. Node-RED o Home Assistant) senza dover affrontare Arduino, installare i core, etc…
In chiusura, volevamo promuovere un testo molto interessante che affronta queste ed altre tematiche: Getting Started with ESPHome di Koen Vervloesem. L’immagine della programmazione é sua, ed il libro é una delle poche pubblicazioni a non dare nulla per scontato!
