SCOPI DELLA GUIDA:
CONCETTI AFFRONTATI:
|
Componenti software utilizzate:
Dispositivi fisici utilizzati:
|
GUIDA MAGGIORMENTE INDICATA PER: |
|
NOTE E DISCLAIMER
|
|
Revisione guida: 1.4 |
ATTENZIONE: la presente guida è più che sufficiente allo scopo di riprogrammare il componente; nell’eventualità di problemi, far riferimento alla più ampia e strutturata MASTERGUIDE dedicata alla riprogrammazione dei dispositivi basati su ESP8266, presso la quale sono spiegati molti più concetti e tecniche. |
Abstract
Ogni dispositivo elettronico contiene a grandi linee una piccola porzione software, chiamata firmware, che ne determina funzioni e comportamento. La nostra automobile è dotata di firmware; ne possiede uno la lavatrice, il nostro telecomando, persino una radiosveglia moderna. Il Sonoff TH-16 (o TH-10, nella versione che supporta meno carico elettrico) non fa differenza; il punto è che il firmware originale ha qualche limitazione intrinseca: permette a questo interruttore/sensore intelligente di funzionare solo tramite la connessione internet verso il sito del produttore, non può essere nativamente integrato sui più comuni HUB personali, non supporta protocolli terzi. In nostro aiuto intervengono due progetti Open Source, rispettivamente chiamati Tasmota e ESPHome, i quali ci forniscono firmware alternativi che, una volta installati sul dispostivo, gli permettono di ampliare le sue funzionalità. In questa pagina ci concentreremo sull’installazione di Tasmota. Per fare questo serve un computer, un dispositivo di connessione tra il computer e il Sonoff (chiamato adattatore USB/TTL) e un software sul computer (chiamato ATOM) per effettuare la procedura.
Riprogrammare un ITEAD Sonoff è, generalmente, un’ottima idea: lo dimostra il fatto che lo stesso produttore pubblichi sul proprio blog articoli in merito. La riprogrammazione slega i dispositivi dal vincolo di essere utilizzabili in presenza della connessione internet (verso il cloud dell’app eWeLink), oltre ad ampliarne la compatibilità e le funzionalità verso strumenti straordinari quali gli HUB personali.
Ciò detto, i Sonoff sono generalmente validi dispositivi anche utilizzati così come arrivano programmati di fabbrica. Semplicemente, non fanno alcune cose e, sopratutto, non sono integrabili presso i nostri amati HUB personali.
Questa guida è sì dedicata alla riprogrammazione del Sonoff TH-16/TH-10, ma è applicabile nella stessa identica maniera a tutti gli altri dispositivi della sua famiglia ITEAD Sonoff Smart Home: l’unica differenza sta nel trovare, in ogni dispositivo, i quattro contatti sui quali interfacciarsi per l’upload del firmware.
Sonoff TH-16 e Sonoff TH-10 sono due interruttori intelligenti con funzione aggiuntiva (tramite sonda esterna) di termometri e igrometri; si tratta di due dispostivi sostanzialmente identici, l’unica differenza sta nel fatto che il TH016 è in grado di supportare fino a 3,5kw di carico mentre il TH-10 “solo” 2,2kw.
Abbiamo dedicato un FOCUS ad hoc sul tema del controllo post-riprogrammazione.
Se ne parla molto anche in chat.
Procedimento
- Descrizione procedimento
- Installazione e configurazione ATOM&PlatformIO
- Verifica della porta COM assegnata dal computer
- Download e configurazione su PlatformIO del firmware Tasmota
- Collegamento del Sonoff in modalità “flash”
- Upload del firmware sul dispositivo Sonoff
- Come aggiornare OTA (over the air) un Sonoff
- Conclusioni
Descrizione procedimento
Per riprogrammare un Sonoff è necessario, in primis, installare e configurare ATOM, dopodiché:
- scaricare il firmware Tasmota;
- collegare (non in modalità flash) il Sonoff all’adattatore USB/TTL e, aprendo il “Serial Monitor” scoprire quale sia la porta COM automaticamente assegnata, poi scollegare il Sonoff;
- configurare i due file di configurazione, “platformio_override.ini” e “tasmota/my_user_config.h“;
- effettuare la compilazione ovvero effettuare la “Build” (in caso di errori, correggerli e riprovare);
- collegare il Sonoff all’adattatore USB/TTL in modalità flash;
- effettuare l’aggiornamento, ovvero “Upload”.
Entriamo ora nel dettaglio.
Installazione e configurazione ATOM
Scaricare e installare il software ATOM presso questo link: https://atom.io/. Tale software è gratuitamente disponibile per tutte le maggiori piattaforme (Apple, Windows e Linux). Una volta installato, è necessario configurarlo installando il pacchetto aggiuntivo chiamato “platformio-ide“.
Per far ciò, recarsi presso:
- Mac OS X,
Menu: Atom > Preferences > Install
- Windows,
Menu: File > Settings > Install
- Linux,
Menu: Edit > Preferences > Install
e nella buca di ricerca cercare, appunto, “platformio-ide“. Una volta trovato il pacchetto, cliccare su Install.
N.b. L’installazione di Atom + platform-io può prevedere l’installazione di ulteriori pacchetti aggiuntivi, come per esempio Python. Qualora l’installer chiedesse tali aggiunte, provvedere a soddisfare la sua richiesta (pena il mancato funzionamento successivo del tool). |
Dopo l’installazione, chiudere e riaprire ATOM, che a questo punto avvierà per default il pacchetto PlatformIO, necessario per riprogrammare il Sonoff. Il software provvederà a installare una serie di pacchetti aggiuntivi in modo completamente automatico.
Al termine, PlatformIO chiederà di riavviare per un’ultima volta ATOM.
(ndr. Da qui in poi si farà riferimento direttamente a PlatformIO, intendendolo come ATOM+PlatformIO.)
Verifica della porta COM assegnata dal computer
Un adattatore USB/TTL (FTDI) è un semplice dispositivo che ci permette di mettere in comunicazione il nostro computer e il cuore del dispositivo Sonoff. Per far ciò, innanzitutto è necessario “denudare” il Sonoff rimuovendo la conchiglia di plastica bianca che lo protegge. Ciò fatto, il dispositivo appare come segue:
L’adattatore, che può variare nella forma e nei colori, di base presenta una porta USB e quattro contatti, i quali vanno messi a contatto con quelli presenti sulla board del Sonoff utilizzando dei cavetti di connessione Dupont.
I contatti VCC e Ground dell’USB/TTL (FTDI) vanno collegati agli stessi punti di contatto della board, mentre TX e RX vanno collegati incrociati (TX con RX e RX con TX).
ATTENZIONE: se l’adattatore presenta una possibilità di scelta tra le tensioni 5v e 3.3v, scegliere sempre 3.3v. Un adattatore che eroghi solo 5v, non è adatto.
ATTENZIONE! NON COLLEGARE CONTEMPORANEAMENTE IL SONOFF ALL’ADATTATORE USB/TTL E ALLA CORRENTE DI RETE 220V!
RICORDARSI DI SCOLLEGARE LA CORRENTE DI RETE DAL DISPOSITIVO!!!
Solitamente si usa saldare sulla board del Sonoff dei pin in modo da rendere agevole la connessione verso l’FTDI, ma è sufficiente posizionare dei pin a semplice contatto per ottenere lo stesso risultato – vedi immagine sopra.
Un’ulteriore, ultima alternativa senza saldature è quella del “fresco bucato”, disponibile qui.
Altre tecniche di connessione possono essere lette qui.
Collegare dunque il modulo Sonoff all’adattatore USB/TTL ed esso, a sua volta, ad una porta USB del computer tramite il cavo.
Selezionare poi la voce di menu “PlatformIO > Serial Monitor“. Si aprirà una finestra come la seguente:
Dopo un istante, nella voce “Port” verrà indicata quale porta COM il computer abbia assegnato al modulo USB/TTL.
Prenderne nota.
Scollegare ora il modulo dalla porta USB.
NOTA per gli utenti Apple: Atom, su macOS, potrebbe identificare una porta diversa dalla classica COMx. Per capire come configurare la porta in questa casistica, far riferimento a questo thread. Al di lì di quanto espresso nel link, si ricordi sempre di installare il corretto driver per Mac del proprio adattatore USB/TLL.
Dopo aver installato il driver corretto, nel system report del Mac, alla voce USB, dovrà (collegando l’adattatore USB/TTL), una voce come segue:
Download e configurazione su PlatformIO del firmware Tasmota
A questo punto va scaricata l’ultima versione del firmware Tasmota.
Una volta scaricato, decomprimere il file .zip dove si preferisce.
Ora, nel menu di PlatformIO, selezionare “File > Add Project Folder
” e selezionare quindi la cartella dove si è precedentemente decompresso il file zip di cui sopra.
Così facendo, PlatformIO aprirà il progetto Tasmota.
A questo punto è necessario “configurare” il pacchetto software. Esso infatti viene fornito “di base”, senza personalizzazioni, le quali sono necessarie affinché, al termine della programmazione, il Sonoff possa operare correttamente.
Nello specifico, il processo è il seguente:
- scegliere quale componente del firmware Tasmota compilare;
- indicare il nome e la password della Wifi nel quale il Sonoff dovrà “entrare” automaticamente una volta riprogrammato;
- indicare la porta COM da utilizzare per la trasmissione dati;
- compilare il firmware;
- scriverlo sul dispositivo.
Per scegliere quale parte del firmware compilare, aprire su PlatformIO il file “platformio_override.ini” e accertarsi che sia configurato solo “default_envs = tasmota” come da immagine:
Le voci commentate a seguire identificano le alternative, ovvero la compilazione o di una parte minimale del firmware (“default_envs = tasmota-minimal“) oppure delle versioni complete in lingua (“default_envs = tasmota-IT” è quella italiana), oppure quella standard (appunto, come suggerito sopra, “default_envs = tasmota“).
Cercare ora la voce “upload_port =“) e inserire come valore la COM precedentemente identificata al passo precedente.
Una volta completato il tutto, salvare e chiudere il file.
Ora è necessario configurare nome e password della nostra Wifi.
Aprire il file “tasmota/my_user_config.h” e trovare le variabili: “#define STA_SSID1” e “#define STA_PASS1“:
Inserire lì il nome della propria Wi-fi e la relativa password. Salvare e chiudere il file.
Ora siamo pronti per “compilare” il nostro pacchetto firmware. Cliccare sul menu “PlatformIO > Build“.
Se la procedura andrà a buon fine, dovreste ottenere una schermata simile a questa:
Il pacchetto è compilato e pronto per essere inviato al dispositivo.
Nb. l’azione di compilare (“Build”) il firmware Tasmota si traduce nella creazione di un file (“firmware.bin“) presso il percorso “%directorycontenentetasmota/.pio/build/tasmota“. Questa informazione viene utile quando si vorrà effettuare l’aggiornamento OTA (Over-The-Air), il quale chiede di indicare il file “firmware.bin” della nuova versione del firmare che sia stato precedentemente compilato.
Qui è disponibile una tguida dedicata all’aggiornamento massivo dei Tasmota con un’unica operazione centralizzata, oppure singolarmente.
Collegamento del Sonoff in modalità “flash”
Per attivare il Sonoff in modalità “flash” (ovvero pronto a ricevere il nuovo firmware), la procedura è la seguente:
- collegare il Sonoff al modulo USB/TTL (come spiegato prima);
- tenere premuto il pulsante gpio0 (“Program button”) come da schema sopra;
- collegare il cavo alla porta USB del computer;
- rilasciare il pulsante gpio0.
A questo punto (e solo a questo punto, se avrete fatto tutto bene), il Sonoff sarà pronto a ricevere il nostro pacchetto firmware Tasmota precedentemente configurato e compilato.
Se l’upload (prossimo paragrafo) fallisse, riprovate questa procedura daccapo.
Upload del firmware
A questo punto sarà sufficiente selezionare sul menu “PlatformIO > Upload” per avviare la fase di programmazione e propria. Se al termine della procedura leggerete “SUCCESS” (analogamente alla schermata relativa alla compilazione del firmware), allora bene, avrete effettuato correttamente la prima configurazione custom del vostro Sonoff. In caso invece la procedura fallisca, ripetere i passi sopra, avendo cura di verificare con attenzione la configurazione della COM, delle connessioni e tutte e sequenze operative.
Ora che la procedura è andata a buon fine, è necessario verificare che tutto funzioni correttamente. Disconnettete il cavo USB per poi riconnetterlo subito, questa volta SENZA tenere premuto il pulsante gpio0: questo farà sì che il Sonoff venga alimentato e cominci a funzionare normalmente senza che entri in modalità di programmazione.
A questo punto il Sonoff si sarà acceso e sarà entrato dentro la Wifi, in quanto già informato delle coordinate d’accesso (vedi punto 2 della guida). Per collergarsi su di esso è però necessario scoprire quale IP il nostro router gli avrà assegnato, cosa che a priori non possiamo conoscere.
Per far questo è necessario cliccare su “PlatformIO > Serial Monitor” e, nella schermata che segue:
selezionare alla voce “Baudrate” impostare “115200”, mentre il campo “Port’ dovrebbe configurarsi automaticamente.
Cliccando su “Start” dovrebbe apparire una schermata come segue:
la quale dovrebbe indicare l’IP ottenuto dal Sonoff nel momento in cui è entrato nella rete Wifi, in questo caso “10.0.1.43”. Ora, aprendo un qualsiasi browser sul proprio computer, si inserisca nell’indirizzo l’IP poco fa ottenuto e premere invio.
Se tutto è andato bene, dovrebbe apparire una schermata come segue:Complimenti!
Il Sonoff è correttamente riprogrammato con il firmware Tasmota.
Come si nota dall’immagine, in alto viene indicato il modello “Sonoff Basic”, in quanto il firmware Tasmota è ancora configurato in modalità default. Sarà quindi necessario entrare nel menu “Configuration” > “Module Configuration” e scegliere il modello più adatto in base al dispositivo fisicamente in uso (in questo caso, Sonoff TH).
Basterà ora disconnettere il dispositivo dall’adattatore FTDI e quindi dal computer, ripristinare a questo punto le connessioni elettriche 220v e cominciare ad usarlo.
Come aggiornare OTA (Over The Air) un Sonoff
Per aggiornare un Sonoff precedentemente programmato Tasmota (in realtà la procedura è la stessa per tutti i modelli ITEAD Sonoff aggiornati Tasmota) è sufficiente compilare la versione aggiornata del firmware Tasmota (ovvero questo passaggio della presente guida) e recuperare il file “firmware.bin” (vedi la voce “nota bene” alla fine del passaggio indicato indicato).
In realtà è necessario prima compilare il firmware “minimal” (“default_envs = tasmota-minimal” nel file plaformio.ini), mettere da parte il file “firmware.bin” risultante, ricompilare il firmware “completo” (“default_envs = tasmota” – oppure distribuzione in lingua – nel file plaformio.ini) e mettere da parte il secondo file “firmware.bin“.
Successivamente, collegarsi tramite web browser al Sonoff e selezionare “Firmare Upgrade”.
Alla voce “Upgrade by file upload“, selezionare il file “firmware.bin” di cui sopra relativo alla versione “minimal”, poi cliccare il bottone “Start upgrade” e attendere semplicemente la conclusione dell’operazione. Al termine, ricollegarsi all’interfaccia web e rifare la procedura, questa volta passandogli il file “firmware.bin” del firmware “completo”.
Qui è disponibile una guida dedicata all’aggiornamento massivo dei Tasmota con un’unica operazione centralizzata, oppure singolarmente.
Conclusioni
Il Sonoff è uno strumento potente, specialmente quando lo si riprogramma utilizzando Tastmota o ESPHome. Dopo esser riusciti ad aggiornarlo, è utile imparare ad aggiungerlo a Homebridge oppure a Home Assistant.
In realtà i Sonoff non fungono come soli interruttori o sensori (come nel caso del TH-16/TH10), le funzioni sono infatti le più disparate, come dimostrano molte nostre guide dedicate al protocollo MQTT. Tale protocollo è ideale per l’uso domotico e, per l’appunto, viene introdotto sui vostri dispositivi Sonoff tramite l’aggiornamento a firmware Tasmota, oggetto della presente guida.
Come controllare un Sonoff dopo averne riprogrammato il firmware