Home Guide Installare ESPHome su HASS.IO e flash custom firmware su Sonoff 4CH PRO

Installare ESPHome su HASS.IO e flash custom firmware su Sonoff 4CH PRO

1403
0
copertina-esphome-sonoff

Come sapere, i dispositivi quali SONOFF, SHELLY, NODEMCU ed altri, hanno il grande vantaggio di essere flashati per l’installazione di firmware alternativi, più ricchi di funzioni e più customizzabili. Il più famoso tra tutti è sicuramente TASMOTA.

Ma oggi andremo a vedere un nuovo metodo per personalizzare i nostri dispositivi basati su ESP32 / ESP8266: si tratta della creazione di firmware su misura scritti in formato yaml, il formato pienamente supportato da Home Assistant. Questo nuovo metodo si chiama ESPHome.

ESPHome ha la possibilità di creare appunto firmware personalizzati, più leggeri e con funzioni già inglobate nel firmware stesso senza la necessità di scomodare HUB esterni quali Home Assistant per l’esecuzione di automazioni.

Facciamo un esempio pratico con un SONOFF 4CH. Vogliamo che all’accensione del canale 1, parta un conto alla rovescia di 10 secondi dopo i quali il canale 1 si spegne da solo e si accende in automatico il canale 2.

Bene per effettuare questa semplice automazione è necessario scrivere del codice in Home Assistant, quindi affidare il tutto ad un HUB esterno.

Grazie invece a ESPHome questa automazione è possibile scriverla direttamente nel firmware!

 

INSTALLAZIONE DELL’ADDON ESPHOME

Per installare il nuovo add-on su HASS.IO, andiamo nel menu Supervisor -> Add-on Store e aggiungiamo la nuova repository:

https://github.com/esphome/hassio

Successivamente cerchiamo il risultato ESPHOME e clicchiamoci sopra:
esphome-addonQuindi clicchiamo su INSTALL.

Successivamente apriamo il tab Configuration e modifichiamo in:

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

Nel caso non utilizziamo certificati SSL (ad esempio non abbiamo duckdns per accedere da remoto), impostiamo “ssl”: false

esphome-configOra torniamo nella tab Info e selezioniamo Show in sidebar ed infine Start.

Ora clicchiamo OPEN IN WEB UI

Si aprirà il wizard per la creazione di un nuovo progetto:

Clicchiamo sul +

first-nodeDare quindi un nome a piacere al vostro progetto utilizzando solamente i caratteri 0-9 a-z e _esphome-1Selezionare il tipo di dispositivo che state andando a flashare. Nel nostro esempio utilizzeremo Generic ESP8266 per flashare un sonoff 4CH PROesphome-2Inserire i dati del vostro Wifi:esphome-3Una volta terminato il wizard vi troverete una schermata simile a questa:esphome-5In alto a destra è presente un menu a tendina per scegliere il metodo di flash da utilizzare:

  • OTA
  • FT232R (se avete collegato un adattatore seriale per il flash)

Al centro sono presenti le informazioni del vostro progetto, in particolare:

  • sonoff: è il nome dato al nostro progetto di esempio
  • Status: indica lo stato del dispositivo post-flash: verde online, rosso offline
  • UPLOAD: invia il file compilato al dispositivo in base al metodo scelto
  • EDIT: permette di modificare il codice del firmware
  • VALIDATE: permette di compilare il codice e verificare la presenza di errori
  • CLEAN MQTT: elimina tutte le entità trovate in modalità discovery
  • CLEAN BUILD: elimina tutte le compilazioni precedenti
  • COMPILE: compila e crea il firmware in formato .bin pronto per essere caricato sul dispotivo
  • DELETE: elimina il progetto

In questa guida andremo a caricare il firmware dedicato ad un SONOFF 4CH PRO. Per fare ciò clicchiamo quindi su EDIT e incolliamo questo codice, andando ovviamente a variare i campi:

  • <NAME_OF_NODE> con il nome del vostro progetto
  • <YOUR_SSID> con il nome della vostra rete wifi
  • <YOUR_PASSWORD> con la password della vostra rete wifi
esphome:
  name: <NAME_OF_NODE>
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: <YOUR_SSID>
  password: <YOUR_PASSWORD>

api:

logger:

ota:

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO0
      mode: INPUT_PULLUP
      inverted: True
    name: "Sonoff 4CH Button 1"
  - platform: gpio
    pin:
      number: GPIO9
      mode: INPUT_PULLUP
      inverted: True
    name: "Sonoff 4CH Button 2"
  - platform: gpio
    pin:
      number: GPIO10
      mode: INPUT_PULLUP
      inverted: True
    name: "Sonoff 4CH Button 3"
  - platform: gpio
    pin:
      number: GPIO14
      mode: INPUT_PULLUP
      inverted: True
    name: "Sonoff 4CH Button 4"
  - platform: status
    name: "Sonoff 4CH Status"

switch:
  - platform: gpio
    name: "Sonoff 4CH Relay 1"
    pin: GPIO12
  - platform: gpio
    name: "Sonoff 4CH Relay 2"
    pin: GPIO5
  - platform: gpio
    name: "Sonoff 4CH Relay 3"
    pin: GPIO4
  - platform: gpio
    name: "Sonoff 4CH Relay 4"
    pin: GPIO15

output:
  # Register the blue LED as a dimmable output ....
  - platform: esp8266_pwm
    id: blue_led
    pin: GPIO13
    inverted: True

light:
  # ... and then make a light out of it.
  - platform: monochromatic
    name: "Sonoff 4CH Blue LED"
    output: blue_led

Il sonoff, con la configurazione sopra, colloquierà come Home Assistant attraverso le API rese disponibili con il comando:

api:

Nel caso vogliate integrare anche MQTT, aggiungere da qualche parte nel codice anche questo blocco:

mqtt:
  broker: 192.168.1.1
  username: mqtt_user
  password: mqtt_password

Assicurandovi di andare a cambiare le 3 opzioni (broker, username, password) in base a quelle in nostro possesso.

Nota bene: nel caso vogliate usare solo MQTT e non volete l’integrazione nativa con Home Assistant, dovete togliere il blocco:

api:

altrimenti il device, non trovando client connessi tramite API, si riavvierà ogni 5 minuti.

Nota: per tutte le altre opzioni avanzate del campo wifi, potete visualizzare la documentazione ufficiale qui.

Clicchiamo ora VALIDATE. Se tutto è ok senza errori ora potete compilare il progetto con COMPILE e attendere la generazione del file .bin da scaricare sul vostro PC utilizzando il tasto DOWNLOAD BINARY che apparirà al termine della compilazione.

Ora siamo pronti per caricare il firmware appena creato direttamente sul nostro dispositivo SONOFF 4CH PRO.

Per fare ciò esistono diverse strade:

  • flash tramite adattatore seriale FTDI: soluzione valida sempre, e obbligatoria se si tratta di un device con ancora il firmware originale
  • flash tramite OTA: possibile solo se è già presente un firmware ESPHome sul dispositivo
  • flash tramite upload del file .bin, possibile se sul device è presente un firmware che ne permette l’aggiornamento firmware tramite upload file, come Tasmota.

In questa guida faremo l’esempio di flash su firmware originale, quindi utilizzeremo un adattatore FTDI come questo:

711g-b3v0zl-_sl1500_

Riporto di seguito la procedura per i collegamenti da effettuare, presi da qui.

PREPARAZIONE HARDWARE

Apriamo il nostro Sonoff, ovviamente accertandoci che NON sia collegato alla corrente.

Dobbiamo realizzare queste modifiche per attivare la modalità flash del Sonoff:

sonoff-4ch-pro-collegamenti-flash

  1. Colleghiamo e saldiamo un connettore a pettine da 5 pin nel punto (1) della foto.
  2. Colleghiamo e saldiamo un connettore a pettine da 1 pin nel punto (3) della foto, nel terzo buco denominato GND
  3. Colleghiamo un cavetto che parte dal punto (3) attaccandolo al pin appena saldato e saldiamo l’altra estremità alla piccola piazzola del punto (2) in foto (GPIO0). Non preoccupatevi se non è troppo salda perchè tanto alla fine del flash dovrà essere dissaldato. (oppure potete mantenerla saldata per future manutenzioni, ma dovrà essere interrotto il ponte 2–3 durante l’utilizzo del Sonoff)

37109801-58fb97a4-223b-11e8-969c-1131dcfa6ee1

Ora settiamo il nostro Adattatore seriale in modalità 3.3V con l’apposito switch. Non dimenticate questo passaggio altrimenti mandate in fumo letteralmente tutto!

Eseguite il seguente step SENZA collegare il SONOFF a NESSUNA FONTE DI ALIMENTAZIONE!

Applichiamo i seguenti collegamenti tra adattatore FTDI e Sonoff come da foto:

FTDI       SONOFF
VCC    –>   3,3V
TX      –>   RX
RX      –>   TX
GND   –>   GND

ftdi-collegamenti-sonoffA questo punto utilizziamo un cavo microUSB e colleghiamo l’adattatore FTDI al PC.

Collegato il tutto, non succederà nulla, nessun led da parte del sonoff… questo è sinonimo che abbiamo fatto correttamente.

 

FLASH DEL FIRMWARE TRAMITE ESPHOME FLASHER

Scarichiamo il software per il flash da qui, disponibile sia per Windows che per Mac.

Apriamo il software e semplicemente andiamo a compilare i campi:

  • Serial port: selezionamo la porta dove è collegato l’adattatore FTDI
  • Firmware: selezioniamo il file .bin creato

Clicchiamo quindi Flash ESP e attendiamo la file del flash.

esphome-flasherUna volta terminato il flash scolleghiamo e ricolleghiamo l’adattatore FTDI al PC per riavviare il SONOFF.

Se tutto è andato ok, vedremo ora in ESPHome lo status del nostro progetto con il pallino verde che sta a indicare che il dispositivo è online. (se abbiamo scelto di mantenere l’integrazione tramite il blocco di codice api: )

INTEGRAZIONE CON HOME ASSISTANT

Ora che il dispositivo è online, andiamo ad integrare al nostro Home Assistant andando nel menu Impostazioni -> Configurazioni

integrare-esphome-deviceClicchiamo sul + in basso e destra e cerchiamo esphome:

integrare-esphome-device-2Si aprirà una finestra dove dovremo compilare l’host con l’indirizzo IP del device nel caso gli abbiamo associato un IP fisso, altrimenti si può optare per inserire il nome assegnato in precedenza al progetto, seguito da .local

integrare-esphome-device-3Clicchiamo su INVIA

Ora il sonoff è integrato ad Home Assistant e le entità saranno esposte nel menu di ESPHome.

 

AGGIORNAMENTO TRAMITE OTA

Ora che abbiamo flashato correttamente il firmware, per le future eventuali modifiche non sarà più necessario usare l’adattatore FTDI per effettuare il flash, ma potremo effettuare l’upload del nuovo firmware (dopo averlo modificato, verificato e ricompilato) tramite OTA. Per fare ciò basta selezionare il metodo in alto a destra in OTA:

esphome-5E cliccare semplicemente UPLOAD.

 

SALVIAMO LE NOSTRE PASSWORD IN SECRETS.YAML

Come per Home Assistant, anche ESPHome prevede l’uso del file secrets.yaml per lo storage delle password.

Per utilizzare tale metodo, selezionare  Secrets Editor dal menu in alto a destra.

Nota bene, questo file non è lo stesso di Home Assistant. Il file secrets.yaml riferito a ESPHome verrà creato in automatico nella cartella di ESPHome stessa.

web-secrets-editor-menu

Una volta aperto il file è possibile inserire le nostre password del wifi (ed eventualmente del broker MQTT se lo avete abilitato). Esempio:

Wifi_SSID: "la_mia_rete_wifi"
Wifi_password: "pippo"

Dopo aver salvato la modifica, nel nostro progetto possiamo quindi modificare il campo wifi così:

wifi:
  ssid: !secret Wifi_SSID
  password: !secret Wifi_password

Se siete curiosi di sapere quali dispositivi potete flashare con ESPHome, vi invito a visitare il sito ufficiale del progetto, qui.