Flashare ESPHome su uno Shelly 1 usando un Arduino Uno come programmatore

3 min di lettura #Arduino #Esphome #Shelly1 #ESP8266 #Caffedomotico

Di recente mi è arrivato un relè wifi Shelly 1 v3, e avevo già deciso che non volevo usare l’ecosistema Shelly ma collegarlo direttamente a Home Assistant tramite ESPHome.

Il relè Shelly 1 ha dei pin header a cui collegarsi, per il debug o per il flash. Per collegarlo a un computer serve un convertitore USB/TTL.

Potete comprarne uno su amazon per pochi euro oppure, se per fortuna avete un Arduino che prende polvere in un cassetto, potete usarlo facilmente come convertitore USB/TTL!

(Io ho usato un Arduino Uno. Va bene qualsiasi Arduino, ma se avete un clone potreste dover installare i driver.)

Basta prendere un cavetto jumper e collegare il pin RESET a un pin GROUND. Tutto qui! In questo modo potete usare i pin TX/RX dell’Arduino per comunicare con lo Shelly via USB.

Ora bisogna cablare lo Shelly 1. Con i cavetti jumper:

  • collegate il pin TX dello Shelly a RX
  • collegate il pin RX dello Shelly a TX
  • collegate il pin 3.3v dello Shelly ai 3.3v (attenzione a non collegarlo ai 5V o friggete lo Shelly)
  • collegate GPIO0 e GND a massa.

Come riferimento, guardate l’immagine qui sotto.

Schema dei collegamenti

Ecco il pinout dello Shelly 1.

Pinout dello Shelly 1

Useremo la versione a riga di comando di ESPHome per flashare lo Shelly, quindi se non l’avete già fatto dovete installarla con questo comando (serve python 3).

pip3 install esphome

Ora dovete creare il file di configurazione YAML per lo Shelly. Potete usare il wizard di ESPHome esphome wizard shelly.yml

Oppure potete usare come template quello che trovate sul sito

Segnatevi il nome del dispositivo che avete usato nella configurazione, vi servirà più avanti.

Adesso collegate l’Arduino Uno al computer e lanciate

esphome run shelly.yml

Se va tutto a buon fine, le ultime righe dell’output dovrebbero essere più o meno così

esptool.py v4.4
Serial port /dev/cu.usbmodem21101
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 98:cd:ac:0c:57:77
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 2MB
Flash will be erased from 0x00000000 to 0x0005dfff...
Flash params set to 0x0330
Compressed 384928 bytes to 269356...
Wrote 384928 bytes (269356 compressed) at 0x00000000 in 23.4 seconds (effective 131.9 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Ora staccate il cavo USB, scollegate dallo Shelly tutti i fili tranne massa e 3.3v, e ricollegate l’USB. Non abbiamo più bisogno di trasmettere dati al computer, i due fili servono solo ad alimentare il chip dello Shelly. I flash successivi si faranno OTA!

Aprite la dashboard di Home Assistant e andate in Impostazioni > Dispositivi e servizi. Dovreste vedere il nuovo dispositivo Shelly! Cliccate “Configura” e dovrebbe essere aggiunto all’integrazione ESPHome.

Però se aprite la dashboard di ESPHome dal menu a sinistra, non dovrebbe ancora comparire. Basta creare un nuovo dispositivo e, a patto che il nome coincida, verrà riconosciuto.

  • Cliccate “New device”
  • Selezionate “Continue”
  • Inserite lo stesso nome che avete usato nel file YAML e cliccate “next”
  • Selezionate “ESP8266” come tipo di dispositivo e cliccate “next”
  • infine cliccate “skip”

Così dovreste avere un nuovo dispositivo nella dashboard, e dovrebbe risultare online!

Fatto! Ora, se volete, potete cliccare “Edit” per modificare la configurazione e caricarla via wifi cliccando “Install”.

Per qualsiasi domanda passate dal canale telegram