ESPHome

HassioHelp

ESPHome

Per coloro, che non hanno conoscenze specifiche di una programmazione di linguaggio più o meno complesso ma conoscono la programmazione in Yaml, pienamente utilizzata dal nostro assistente domestico, Home Assistant mette a disposizione un interessante add-on capace con una semplice programmazione di creare il nostro firmware personalizzato per i dispositivi ESP8266 e ESP32, come ad esempio Sonoff, Wemos, Nodemcu ma anche ESP-32 Cam e molti alti. Ovviamente questi firmware prevedono la possibilità di connettere ai nostri dispositivi una quantità enorme di sensori ed accessori. 

Questa guida avrà lo scopo di introdurvi nel mondo di ESPHome con alcuni esempi pratici, ma per la spiegazione e approfondimenti dei comandi vi rimando sempre alla guida ufficiale presente all’indirizzo:  https://esphome.io/index.html

 

Installazione Add-on ESPHome

Da Home Assistant andiamo sul menù hass.io, add-on store ed inseriamo su un nuova repositories questo link: https://github.com/esphome/hassio

Clicchiamoci sopra per aprire il nuovo add-on ed installiamolo

esphome 03

La configurazione dell’addon necessita solamente di una semplice personalizzazione se siete in possesso di certificato SSL impostatelo su true se no lasciatelo su false.

{
"ssl": true,
"certfile": "fullchain.pem",
"keyfile": "privkey.pem",
"port": 6052
}

Ora siete pronti per avviare l’add-on premendo start e al termine premete su open web ui. Nel caso vogliate aggiungere l’icona di ESPHome sul i-pannel abilitate lo switch di Show in sidebar e dopo il primo riavvio vi comparirà il collegamento diretto all’applicazione.

Primo avvio

Vi verranno richieste le credenziali inserite le stesse che utilizzate per accedere ad Home Assistant, poi sarete pronti per creare il vostro primo firmware: premete su +

Interfaccia: primo progetto

Da qui possiamo creare i nostri firmware, vediamo ora come realizzarne uno per gestire i Sonoff Basic, andremo così a sostituire Tasmota con ESPHome.

Diamo il nome al nostro preogetto fate attenzione che non sono ammessi spazi, maiuscole e caratteri speciali aldifuori di _

Selezioniamo Generic EPS8266 che è il cip del Sonoff.

Immettete il nome SSID della vostra rete Wi-Fi e la password. In aggiunta è possibile inserire una password per gli aggiornamenti OTA in questo modo eviterete che il vicino vi modifichi a vostra insaputa i firmware dei vostri dispositivi ESPHome  🙂
Potete ora premere CONTINUE e subito doto SUBMIT.

In alto a destra vi comparirà un menù a tendina dove potrete scegliere la modalità di flash preferita, per la prima volta non sarà possibile via OTA per le successive si. 

Vi comparirà inoltre il progetto appena creato. 
Da questo menù sono presenti delle informazioni e delle operazioni che si possono fare, vediamo quali sono:

  • sonoff_farett_salagiochi: nome del progetto
  • status: ci fornirà dopo il flash lo stato del dispositivo (verde online, rosso offline)
  • /config/esphome/sonoff_faretti_salagiochi.yaml: posizione del file progetto
  •  Update Available!: ci informerà se il firmware è stato flashato con una versione precedente di ESPHome
  • UPLOAD: flashare il firmware via OTA o altro in base alla scelta dal menù in alto a destra
  • EDIT: si aprirà una finestra per editare il codice
  • SHOW LOGS: ESPHome si collegherà con il dispositivo e verrà visualizzato tutte le comunicazioni e gli stati del dispositivo stesso
  • VALIDATE: verrà compilato il codice alla ricerca di errori

Premendo i tre puntini, sulla sinistra, comparirà un altro menù dove saranno possibili le seguenti azioni:

  • Clean MQTT: verranno eliminate tutte le entity acquisite in discovery
  • Clean Build: verranno eliminate tutte le compilazioni che avremmo eseguito in precedenza
  • Compile: eseguire una compilazione del firmware, in questo modo sarà possibile creare il file .bin per poi flasharlo sul nostro dispositivo
  • Delete: verrà cancellato tutto il progetto

Premendo il tasto EDIT, inizieremo a scrivere il nostro firmware

Progetto Firmware Sonoff Basic

esphome:
name: sonoff_faretti_salagiochi
platform: ESP8266
board: esp01_1m

wifi:
ssid: "Nome_wifi"
password: "password_wifi"

# Enable logging
logger:

# Enable Home Assistant API
api:
reboot_timeout: 0s
password: password_api

ota:
password: password_ota

web_server:
port: 80

binary_sensor:
- platform: gpio
pin:
number: GPIO0
mode: INPUT_PULLUP
inverted: True
name: "Sonoff12 Pulsante"
on_press:
- switch.toggle: fakebutton

- platform: gpio
pin:
number: GPIO14
mode: INPUT_PULLUP
inverted: True
name: "GPIO14 Faretti Salagiochi"
on_press:
- switch.toggle: fakebutton
on_release:
- switch.toggle: fakebutton

switch:
- platform: template
name: "Faretti Salagiochi"
icon: "mdi:wall-sconce-flat"
optimistic: true
id: fakebutton
turn_on_action:
- switch.turn_on: relay
- light.turn_on: led
turn_off_action:
- switch.turn_off: relay
- light.turn_off: led

- platform: gpio
id: relay
pin: GPIO12

output:
- platform: esp8266_pwm
id: basic_green_led
pin:
number: GPIO13
inverted: True

light:
- platform: monochromatic
name: "Sonoff12 Green LED"
output: basic_green_led
id: led

sensor:
- platform: wifi_signal
name: "Sonoff12 WiFi"
update_interval: 60s
- platform: uptime
name: "Sonoff12 Uptime"

text_sensor:
- platform: version
name: "Sonoff12 ESPHome Version"

Spiegazione sommaria del codice:

  • esphome: vengono dichiarati: nome del progetto (importantissimo per la configurazione dell’autodiscovery), il cip e la sua architettura.
  • wifi: nome e password del wifi dove si connetterà il dispositivo
  • logger: questa dichiarazione registrerà tutti i messaggi di registro (si potrà scegliere il grado di visualizzazione)
  • api: permette l’integrazione diretta in Home Assistant, è possibile limitare a zero il tempo di attesa prima del riavvio se nessun client si è connesso tramite api, si può aggiungere una password quando verrà integrato in HA
  • ota: abilita gli aggiornamenti tramite OTA quindi senza una connessione fisica al dispositivo, è possibile inoltre aggiungere una password per accedere agli aggiornamenti via OTA
  • web_server: si abiliterà la web ui, in questo caso andando alla pagina http://sonoff_faretti_salagiochi.local si accederà alla sua pagina web
Seguirà poi il corpo del firmware.

Convalida progetto

A questo punto verifichiamo la validità del progetto premendo su VALIDATE.

Compilazione progetto e download file bin

Se non ci sono errori, dal menù a tendina sulla sinistra quello con i 3 pallini, premiamo COMPILE. Dopo qualche minuto che ESPHome avrà compilato tutto il codice comparirà il tasto per scaricare, sul vostro Pc,  il file bin, tasto DOWNLOAD BINARY 

Flash firmware

Dopo aver compilato il firmare abbiamo 3 modi di flashare il nostro firmware in base al nostro dispositivo:
– flasharlo via OTA nel caso di un aggiornamento,
– via hardware con un collegamento tramite adattatore FTDI, collegandola direttamente sulla macchina dove è installato ESPHome,
– tramite file .bin, scelta da me optata dato che lo installerò su dispositivi già con Tasmota.

Aggiungo che per il flash tramite FTDI anche ESPHome ci fornisce il suo software lo potete scaricare da questo link https://github.com/esphome/esphome-flasher/releases
Potete sempre utilizzare ESPEasy scaricabile da qui: ESPEasy.zip

Se dovessimo flashare un Sonoff originale dovremmo utilizzare un adattatore FTDI e dei cavetti per collegarci fisicamente al sonoff vedi lo schema nell’articolo Guida Tasmota Sonoff Facile Facile.

Andando all’indirizzo IP del Sonoff con Tasmota andremo alla sua Web Ui, da li premiamo Aggiornamento Firmware e successivamente Scegli file e carichiamo il bin appena creato e diamo lo Start aggiornamento.

A questo punto il Sonoff si riavvierà con il nostro firmware ESPHome.

Integrazione in Home Assistant

Passiamo ora all’integrazione in Home Assistant dal menù Impostazioni andiamo su Integrazioni e premiamo il + in basso a destra

Selezioniamo ESPHome e dalla finestra che si aprirà, digitiamo il nome del progetto seguito da .local 
(il nome deve essere quello scritto nella dichiarazione iniziale sotto a esphome name: ) se avete impostato una password API vi chiederà di immetterla.
In alternativa attendendo circa 5 minuti l’operazione di integrazione avviene in automatico.

Dopo qualche istante l’integrazione sarà conclusa e le nuove entità create.

Card Lovelace

Creando una card Entity in Lovelace il risultato sarà il seguente:

Avremmo quindi in ordine:

  • lo stato del pulsantino montato sul sonoff
  • la versione di ESPHome con cui è stato montato il firmware
  • lo stato del GPIO14, dove io ho collegato i vari interruttori/deviatori… per il comando fisico dell’uscita sonoff
  • lo stato del led verde montato sul sonoff
  • lo stato dell’uscita
  • il tempo 
  • lo stato del segnale Wi-Fi

Aggiornamenti via OTA

Se dovessimo fare delle modifiche al codice dopo averlo salvato, selezioniamo in alto a destra OTA e premiamo il tasto UPLOAD, lui ricompilerà il codice si connetterà al dispositivo e lo aggiornerà. Se il dispositivo è in sleep mode sarà da riprovare più volte sopratutto con i sonoff.

Esempi vari

Grazie a Roberto, un  nostro utente Telegram, ci ha gentilmente fornito alcuni esempi di programmazione con ESPHome i file li potete scaricare da qui esempi_esphome.zip 

Se già conoscete ESPHome e volete condividere i vostri progetti vi rimando alla pagina dedicata del nostro forum. 

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *