ESPHome: controllare in remoto dispositivi ESP con semplici file di configurazione

IoT

ESPHome è un potente e versatile strumento che consente di configurare dispositivi per l'Internet of Things (IoT) basati su ESP8266 o ESP32 e perfettamente integrati con l'ambiente per la gestione domotica Home Assistant. ESPHome e Home Assistant sono un'accoppiata perfetta. La perfetta integrazione consente una facile configurazione e gestione dei dispositivi direttamente dall'interfaccia di Home Assistant. Questo approccio unificato semplifica la gestione complessiva della configurazione di una casa intelligente. In questo articolo, andiamo a descrivere ESPHome e come utilizzarlo per la configurazione di dispositivi IoT.

Introduzione

ESPHome è una piattaforma open source costruita sui microcontrollori ESP8266 ed ESP32 e fornisce un modo semplice ma potente per programmare e configurare i microcontrollori per varie applicazioni IoT. La piattaforma è specificamente progettata per funzionare perfettamente con Home Assistant, una delle principali piattaforme di automazione domestica.

Home Assistant è un software gratuito e open source per l'automazione domestica progettato per essere un sistema di controllo centrale per dispositivi domestici intelligenti, con particolare attenzione al controllo locale e alla privacy. È possibile accedervi tramite:

  1. Un'interfaccia utente basata sul Web
  2. Utilizzando app complementari per Android e iOS
  3. Tramite comandi vocali per mezzo di un assistente virtuale supportato, come Google Assistant o Amazon Alexa

Una delle caratteristiche distintive di ESPHome è il suo sistema di configurazione basato su YAML. Invece di codici complessi, gli utenti possono configurare i propri dispositivi utilizzando una sintassi semplice e più vicina al linguaggio uomo. Ciò rende la piattaforma accessibile sia ai principianti che agli sviluppatori esperti. ESPHome è dotato di una vasta libreria di componenti, ciascuno su misura per funzionalità specifiche. Sia che si voglia costruire una luce intelligente, un sensore di temperatura o un dispositivo multisensore, ESPHome probabilmente ha un componente predefinito adatto alle proprie esigenze. Questa vasta libreria riduce significativamente il tempo e gli sforzi necessari per lo sviluppo del dispositivo.

ESPHome fornisce le funzioni di monitoraggio e controllo in tempo reale dei dispositivi tramite Home Assistant. Ciò significa che è possibile regolare le impostazioni, ricevere aggiornamenti e monitorare lo stato dei dispositivi in tempo reale, il tutto comodamente dalla dashboard di Home Assistant. Tuttavia, ESPHome può essere utilizzato anche come strumento autonomo.

Utilizzare ESPHome su Home Assistant

Per utilizzare ESPHome su Home Assistant basta seguire i seguenti passaggi:

  1. Per prima cosa, occorre installare Home Assistant. Quindi, basta semplicemente installare il componente aggiuntivo (add-on) ESPHome.
  2. Per creare la prima configurazione di un dispositivo si può utilizzare la dashboard ESPHome. All'interno della configurazione si possono definire i componenti che si desidera includere, come sensori, attuatori o display, e personalizzare il loro comportamento utilizzando l'intuitiva configurazione YAML.
  3. Infine, con la configurazione pronta, si può passare a eseguire il flashing del firmware sul dispositivo ESP8266 o ESP32. ESPHome fornisce un processo di aggiornamento OTA (over-the-air) senza interruzioni, eliminando la necessità di accesso fisico ai dispositivi durante gli aggiornamenti. Soltanto la prima configurazione viene eseguita con un collegamento via cavo.
  4. Una volta eseguito il flashing del firmware, il dispositivo apparirà automaticamente in Home Assistant. Da qui sarà possibile personalizzare l'automazione, creare dashboard e integrare i dispositivi con altri componenti Home Assistant.

In questo articolo, andremo ad utilizzare ESPHome come componente autonomo presentando le sue funzionalità attraverso un esempio pratico di configurazione di una scheda basata sul microcontrollore ESP32.

ESPHome

Grazie a ESPHome i dispositivi domestici intelligenti possono essere creati e integrati rapidamente, senza dover scrivere una sola riga di codice. ESPHome è un sistema di creazione e distribuzione che elimina tutto il lavoro di codifica manuale derivante dall'integrazione di dispositivi Internet of Things (IoT) personalizzati con Home Assistant.

ESPHome raggiunge un'integrazione senza codice implementando i protocolli di rilevamento automatico necessari affinché Home Assistant possa inserire le funzionalità del dispositivo nell'hub con pochi clic. Collegare un ESP8266 o un ESP32 all'hardware desiderato e definire correttamente tale hardware nella configurazione, è tutto ciò che serve per abilitarlo nell'hub.

L'hardware collegato al dispositivo ESP da utilizzare con ESPHome deve essere però prima supportato da un componente ESPHome. Il sito web del progetto ESPHome elenca i vari hardware con cui è in grado di lavorare, dai sensori ai display. Sebbene la raccolta di componenti dei dispositivi IoT non sia così completa come si potrebbe immaginare, ESPHome offre molti di quelli più comuni utilizzati nelle case intelligenti.

ESPHome è la soluzione perfetta per creare rapidamente e facilmente firmware personalizzati per le schede basate su ESP8266 o ESP32. Andiamo a vedere come impostare un nodo di base in pochi semplici passaggi.

Installazione ESPHome

ESPHome può essere installato sul proprio computer anche senza che sia presente Home Assistant. Tutto ciò che serve è che sia installata sul proprio computer una distribuzione Python aggiornata almeno alla versione 3.9.

Quindi, è possibile scaricare ESPHome dal Python Package Index (PyPI) utilizzando pip. I comandi pip da utilizzare sono i seguenti:

 py -m pip install wheel

py -m pip install esphome

I Python wheel sono un formato di pacchetto binario precostruito per moduli e librerie Python. Essi sono progettati per semplificare l'installazione e la gestione dei pacchetti Python, fornendo un comodo formato a file singolo che può essere scaricato e installato senza la necessità di compilare il pacchetto dal codice sorgente. In parole povere, essi sono un componente dell'ecosistema Python che aiuta a far funzionare le installazioni dei pacchetti.

Una volta terminata l'installazione dei pacchetti, conviene verificare che le cose siano installate correttamente inserendo nel prompt quanto segue:

py -m esphome version

Dovrebbe seguire la risposta del sistema che riporta la versione di ESPHome installata:

Version: 2023.12.9

Configurazione dispositivo

ESPHome è uno strumento a singola riga di comando (esphome) utilizzato per eseguire varie attività come la configurazione dei dispositivi, la creazione di progetti e il loro flashing su un dispositivo. Una funzionalità utile quando si inizia a utilizzare ESPHome è un'interfaccia che guida l'utente attraverso l'avvio del processo di creazione di un nuovo firmware del dispositivo. Questa interfaccia è accessibile utilizzando il comando:

py -m esphome wizard configuration.yaml

Dove configuration.yaml nel comando precedente è il nome file scelto per la configurazione del dispositivo da generare. Durante la procedura guidata che segue, tutte le informazioni di base raccolte (nome del dispositivo, microcontrollore utilizzato e credenziali WiFi) fungono da base per il modello YAML iniziale. Il completamento della procedura guidata produce il file di definizione del dispositivo configuration.yaml, con tutti i requisiti di base necessari a ESPHome per creare un firmware. Vediamo la procedura guidata passo dopo passo.

Appena dopo aver immesso il comando ci verrà dato il benvenuto e ci verrà chiesto di scegliere un nome univoco per poter in seguito identificare il nostro nodo. Si può scegliere ad esempio bedroom.

============= STEP 1 =============
_____ ____ _____ ______
/ ____/ __ \| __ \| ____|
| | | | | | |__) | |__
| | | | | | _ /| __|
| |___| |__| | | \ \| |____
\_____\____/|_| \_\______|

===================================
First up, please choose a name for your node.
It should be a unique name that can be used to identify the device later.
For example, I like calling the node in my living room livingroom.

(name):

Quindi, ci viene chiesto quale microcontrollore sia presente sul nodo. Nel caso del nostro test stiamo usando una scheda ESP32-CAM, quindi inseriremo ESP32.

============= STEP 2 =============
______ _____ _____
| ____|/ ____| __ \\
| |__ | (___ | |__) |
| __| \___ \| ___/
| |____ ____) | |
|______|_____/|_|

===================================
Now I'd like to know what microcontroller you're using so that I can compile firmwares for it.
Please choose one of the supported microcontrollers (Use ESP8266 for Sonoff devices).

(ESP32/ESP8266/BK72XX/RTL87XX):

Ci viene quindi chiesto di inserire il modello della scheda e ci vengono fornite alcune opzioni. Viene anche indicato un indirizzo web di riferimento per completezza. Tuttavia, tra le opzioni proposte è già presente la nostra scheda: la AI Thinker ESP32 CAM. Dovremo allora inserire il comando presente accanto al modello ovvero esp32cam.

Nel terzo passo occorre inserire le credenziali della rete WiFi alla quale il nodo bedroom si connetterà. Andiamo quindi ad inserire ssid e password.

Infine, ci viene chiesto se vogliamo inserire una password per l'esecuzione degli aggiornamenti via OTA, ma possiamo saltare questo passaggio e premere Invio senza scrivere nulla.

A questo punto, la configurazione è terminata e il file test.yaml viene salvato sul nostro computer. In questo file sono contenute tutte le informazioni necessarie a ESPHome per creare il firmware da caricare sul dispositivo.

[...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2261 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend