Sonoff Basic e Tasmota: perché modificare il firmware?

DomoticaTutorial

Written by:

Il Sonoff Basic è un prodotto completo, quando viene acquistato potete iscrivervi tramite l’applicazione, al sito di eWeLink, e usufruire dei loro servizi online.

Sonoff Contenuto

Infatti tramite applicazione o vari assistenti vocali su smartphone, potrete controllare il vostro interruttore anche fuori casa, senza bisogno di hub domotici o ulteriori dispositivi ‘ponte’ da collegare.

Questo naturalmente ha i suoi vantaggi e i suoi svantaggi.

Avere il firmware originale ha vantaggi in termini di praticità: i servizi cloud sono inclusi e già pronti per l’utilizzo, e non bisogna aggiungere altro, il dispositivo si connette direttamente ad internet.

Ciò necessita la presenza di una buona connettività, e i tempi di risposta e la disponibilità del sistema complessivo dipende dai singoli servizi in cloud, in termini di sicurezza la gestione del nostro sistema di domotica avviene anche al di fuori della nostra abitazione.

Un nuovo firmware, invece, slega dal vincolo d’utilizzo dell’app eWeLink e del relativo cloud del produttore, ma introduce protocolli standard e funzioni aggiuntive.
Si può controllare, per esempio, direttamente tramite un interfaccia web o collegarlo a un proprio ‘hub’ personale.

Quindi non connesso direttamente ad internet, ma solo alla rete interna di casa. Starà poi a noi consentire al nostro hub l’accesso a internet da remoto.

Può cambiare anche in termini di sicurezza e gestione generale: modificare il firmware assicura il controllo del dispositivo solo fra le pareti di casa, a parte l’eventuale programmazione dell’hub centrale, naturalmente lo svantaggio più grande sarà il dover saldare dei pin ulteriori, ma contemporaneamente sarà possibile usufruire di un ulteriore pin, che hanno tutti i Sonoff Basic, per esempio collegandolo ad un sensore di temperatura, delle luci o strisce RGB, e usufruendo di altri pin anche altri dispositivi come addirittura un Display.

Di base cambiare il firmware ad un Sonoff Basic è una buona idea anche per non essere legati ai servizi cloud proprietari, che potrebbero non essere sempre reattivi o disponibili, anche se devo dire la verità, io non ho mai avuto problemi di sorta con i servizi di eWeLink. Ma anche se avrete dei problemi temporanei nella vostra connessione internet non potrete raggiungere gli switch in modo wireless, ma solo manualmente.

Il firmware Tasmota

Tasmota è un firmware alternativo per dispositivi basati su ESP8266 come iTead Sonoff, che offre aggiornamenti firmware e supporti per web e OTA (Over The Air), che possono essere controllati tramite Http, Serial, MQTT e KNX, consentendo una facile integrazione con diversi sistemi di Domotica

Oltre tutto Tasmota è un firmware potente e completo : ha tutto il necessario per la gestione di pulsanti, interruttori e i sensori più comuni.
Tramite il ricco menu di configurazione usufruibile da qualsiasi browser web ha anche un cosa indispensabile per testare interruttori e sensori vari : la Console dove inserire comandi.
Tramite quest’ultima si può testare e programmare qualsiasi tipo di sensore, dalla luce o striscia RGB a colori a un display, passando per sensori di temperatura, di pressione, umidità o qualità dell’aria.

Quindi installando il firmware Tasmota sarà assicurato:
Il supporto del protocollo MQTT,
il supporto alle richieste HTTP,
piena compatibilità con la rete locale,
il supporto ai sensori più comuni,
consente l’utilizzo di ulteriori pin GPIO,
consente l’utilizzo della Console tramite interfaccia web,
aggiornamenti OTA, e il supporto anche ai Timer.

Quindi, oltre ad avere un’interfaccia diretta via web al Sonoff Basic, si può configurare con Hub personali compatibili con MQTT e altro.

Mi piacerebbe in futuro spiegarvi come sia semplice ‘costruire’ un proprio Hub, per esempio con un Raspberry PI, e scegliere il software, anche open source, che più ci aggrada come per esempio Domoticz o OpenHAB, quest’ultimo davvero molto interessante.

Quindi, perché scegliere Tasmota?

  1. Se volete una gestione diretta completamente interna del vostro dispositivo, tramite interfaccia web o anche Apps per Smartphone Compatibili con il protocollo MQTT.
  2. Se volete aggiungere ulteriori Sensori.
  3. Se avete uno “Hub domestico” compatibile con i protocolli MQTT.

Una novità per me molto fondamentale è che il firmware Tasmota è diventato ‘compatibile‘ con Amazon Alexa, emulando ” Hue Bridge- Multidevice” e anche “Belkin Wemo-single device“, in modo diretto e senza passare da nessun’altro server ( il contrario del firmware originale).
Tutto questo in modo automatico, spuntando solo una casella.
Troverete più informazione nella sua WIKI.

Altrimenti vi consiglio di lasciare inalterato il Sonoff e lasciare gestire il tutto agli ottimi servizi di eWeLink.

Iniziamo

Pericolo

Attenzione : qualsiasi modifica sulla circuiteria e sul firmware del Sonoff ne invalida la garanzia e in teoria non si può più tornare in dietro.
Oltre questo do per scontato che queste modifiche siano fatte da esperti e soprattutto con il dispositivo STACCATO dalla corrente.
Assicuratevi di aver fatto saldature a prova di tester prima di collegarlo alla corrente.
Consiglio questo tutorial a chi ha già fatto questo tipo di lavori, altrimenti fatevi assistere da uno più esperto in questo campo.
Ricordate che la corrente a 220 volt è pericolosa e potenzialmente mortale.

Cosa serve :

Sonoff Basic

Del Sonoff Basic ne ho parlato abbondantemente qui, quello che è necessario sapere in questo tutorial è che esistono 2 versioni (in futuro anche 3 versioni)
I 4 pin di connessione (3V3, Rx, Tx e GND) sono più o meno nella stessa posizione, le versioni più recenti del dispositivo Sonoff Basic forniscono un 5° Pin il più lontano dal pulsante, può essere il GPO14 o IO2, dipende dalla versione della scheda.

Sonoff Basic R1

Sonoff Basic R1, la prima versione, la si distingue dalla scritta sulla scheda PCB, poiché non si fa nessun riferimento all’R2, potrebbe essere come la foto di seguito.

Generalmente la disposizione dei componenti è la stessa, cambiano invece alcune piste stampate, e in particolare, esiste l’ultimo PIN GPIO14, che può essere ulteriormente usato.

Sonoff Basic R2

La seconda versione di questa scheda si può distinguere semplicemente dalla scritta sulla scheda : può esserci scritto, infatti, come in questo caso : Sonoff RF R2 POWER V1.0.

Sul retro della scheda si possono tranquillamente distinguere i vari pin, in particolare anche l’ultimo della serie: IO2, che corrisponde al GPIO2.

Per utilizzare il pin GPIO02, bisogna fare attenzione che non venga posizionato sul livello LOW quando il dispositivo si avvia. In caso contrario, il dispositivo non si avvierà nella sua normale modalità operativa. In alternativa, è possibile utilizzare GPIO03 (Rx) che non ha alcuna restrizione della funzione di avvio. Tuttavia, entrambi questi GPIO sono attivati a livello ‘HIGH’ alto per un momento dopo l’avvio. Ciò significa che qualsiasi dispositivo connesso potrebbe “lampeggiare” quando il Sonoff si sta accendendo.

I pin GPIO in comune alle due versioni sono quindi :

GPIO00 il Pulsante,
GPIO12il Relè,
GPIO13il Led,
GPIO03il Pin Rx,
GPIO01 il Pin Tx

I pin GPIO che possono essere utilizzati sono quindi:

IL GPIO14, sulla versione R1
IL GPIO2, sulla versione R2, tenendo conto quello detto in precedenza, ossia che non deve essere inserito il livello LOW all’avvio, altrimenti non si avvierà nella modalità operativa.
IL GPIO3 ossia il pin Rx.
Tenendo conto che questi ultimi due pin si attivano brevemente all’avvio.
Il GPIO13, ossia il LED che dovrebbe essere rimosso, nel caso di utilizzo di questo pin, anche se sconsiglio il suo utilizzo altrimenti non si avrebbe un feedback di errore o di dispositivo funzionante.

Il GPIO4, è molto difficile da saldare, perché si trova direttamente sul chip principale: sconsiglio anche questo a meno di essere molto esperti di micro-saldature.




Adattatore FTDI

L’adattatore FTDI è una schedina con una porta mini USB e dei Pin maschi dalla parte opposta.
Serve per poter comunicare con il Sonoff e poter trasferire i vari Firmware.

Attenzione : molti adattatori sono dotati di un jumper che deve essere posizionato a 3.3V.

Sulla scheda ci sono 3 pin alla base dei quali la dicitura 3.3 e 5 , voi dovrete staccare il jumperino di plastica e posizionarlo a cavallo della scritta 3.3v sui 2 pin.

Cavo USB – Mini USB

Cavo necessario per collegare l’adattatore al Computer.

Cavetti e pin per i vari collegamenti.

Cavetti per collegare il Sonoff all’adattatore per la programmazione, oppure dai pin GPIO del Sonoff ai vari sensori.

Eventuali Pin Header per un lavoro più pulito, e poter staccare e attaccare i cavetti quando si vuole.

Saldatore a Stagno

Un saldatore è necessario per fare le varie saldature dei vari pin

Stagno per saldatori

ESPEasy

Il software ESPEasy* il link è a appena sotto il titolo, accanto a “Current stable version”, la versione attuale è la R120.

*Attenzione perché il software è diventato a “riga di comando” dovrete quindi aggiungere i vari argomenti nel Prompt dei Comandi o nella Console del Mac.
Se non siete avvezzi a queste cosa ho preparato un semplice programmino (file batch), da scompattare nella directory di ESPEasy, che semplifica le cose:

Tasmota

Il file bin del firmware Tasmota, in particolare il firmware in italiano e a questo indirizzo : sonoff-IT.bin

A questo indirizzo : http://thehackbox.org/tasmota/release/ sono disponibili tutte le versioni del firmware Tasmota.

Backup e Ripristino del firmware originale:

In teoria non è possibile ritornare indietro e ripristinare il firmware originale, e questa è la via ‘ufficiale’.

Invece nella pratica si potrebbe procedere come segue.
Potrebbe‘ perché io personalmente non ho ancora provato questo metodo e lo sconsiglio se si vuole restare con il firmware ufficiale :

Per fare il backup del firmware originale si può usare lo stesso esptool , e in teoria avrebbe già tutto il necessario per fare il backup del firmware e creare il file .bin

la riga sarebbe la seguente :

esptool.py –port COMx read_flash 0x00000 0x100000 BackupSonoff.bin

la variabile ‘x’ da sostituire con il numero della porta COM (esempio COM5)
verrà creato nella stessa directory un file (BackupSonoff.bin) che è il backup del firmware iniziale_

Per inserire invece il firmware backup si può usare il ‘tool’ che ho creato io, oppure la linea

esptool.py –port COMx write_flash -fs 1MB -fm dout 0x0 BackupSonoff.bin (COMx da sostituire sempre alla porta COM dell’interfaccia usb/sonoff)

Iniziamo:

Pericolo

Attenzione : Ricordate che tutta la procedura di installazione di ogni firmware va eseguita con il Sonoff NON alimentato alla rete 220V.

Sonoff Basic R1

Per prima cosa bisogna saldare, una volta individuati i 4 pin di connessione (3V3, Rx, Tx e GND) che, come detto precedentemente, sono più o meno nella stessa posizione in ogni versione del Sonoff Basic.
Potete saldare i Pin Header, in modo da inserire e staccare i cavetti comodamente, oppure saldare direttamente i fili.
In ogni caso prestate attenzione ed eseguite saldature a prova di tester, naturalmente con il dispositivo sempre staccato dalla corrente.

Collegate successivamente con 4 cavetti, l’adattatore FTDI al Sonoff, gli RX e TX devono essere connessi in modo invertito, ossia :

3V3 => 3V3
RX => TX
TX => RX
GND => GND

Collegate quindi il cavo all’adattatore, e prima di collegare l’altra estremità al computer prestate attenzione di seguito.
Per entrare in modalità di programmazione per l’upload del firmware, preme il pulsantino del Sonoff PRIMA di collegare il cavo al computer.
Una volta collegato il cavo al computer rilasciate il pulsantino : il Sonoff entrerà in quel tipo di modalità e ve ne accorgerete poiché il LED verde NON lampeggerà.
In caso invece il LED lampeggi, ripetere la procedura.

Una volta collegato il tutto, verificate il numero della porta in  Gestione Dispositivi / Porte (COM e LPT) , nell’ultima riga dovrebbe esserci la periferica USB seriale e tra parentesi il numero della porta COM (es.:COM5)

Scompattare ESPEasy, e nella sua directory inserire il file Tasmota.bin scelto (consiglio quello Italiano sonoff-IT.bin) e scompattate il file batch creato da me per semplificare la procedura :

Fate, quindi, doppio click sul file PiccoloTool.cmd vi chiederà prima la porta COM (solo il numero) e dopo il file BIN senza estensione (es: sonoff-IT ).

Se avrete eseguito correttamente tutte le procedure il firmware verrà trasferito sul vostro Sonoff.
Se avete problemi di sorta potrete prima provare a cancellare tutta la memoria scompattando questo file :

Caricherete quindi il firmware blank_1MB.bin, attraverso la stessa procedura di prima : in questo modo cancellerete tutta la memoria del Sonoff.
Dopo potrete ricaricare il firmware .bin che vorrete, con la stessa identica procedure del PiccoloTool.cmd

Una volta staccato dall’adattatore e collegato correttamente all’alimentazione, verrà avviata automaticamente la procedura di configurazione della rete WIFI: dovrete collegarvi con lo smartphone alla nuova rete creata (Sonoff– etc etc) e automaticamente verrete indirizzati alla pagina (IP 192.168.4.1) dove sceglierete la vostra rete Wi-Fi e inserire la relativa password.
Una volta eseguita questa procedura il Sonoff si riavvierà automaticamente e si collegherà alla vostra Wi-Fi.
Andate quindi nel vostro router (di solito 192.168.1.1) per individuare l’IP associato al Sonoff (es.:192.168.1.X).
Inserite quell’ URL in qualsiasi browser nei dispositivi della vostra rete e accederete subito al firmware TASMOTA.

Successivamente potrete aggiungere sensori e altri dispositivi, naturalmente con il Sonoff staccato dalla corrente, una volta riattivato potrete configurare i pin relativi e selezionare i vari sensori.

Vi consiglio di dare un’occhiata alla WIKI di Tasmota, perché ci sono cose davvero interessanti.

Consiglio l’articolo che spiega nel dettaglio quali e quanti sensori è possibile aggiungere per controllare il Sonoff con il firmware Tasmota.

Rimanete sintonizzati.

6 Replies to “Sonoff Basic e Tasmota: perché modificare il firmware?”

  1. […] abbiamo visto in precedenza, attraverso la modifica del firmware è possibile aggiungere ulteriori sensori grazie ad ulteriori […]

  2. Fabio ha detto:

    Ciao, volendo è possibile tornare al firmware originale?

    • Redazione ha detto:

      Questa è una domanda interessante, molto probabilmente aggiornerò l’articolo grazie a te 😉

      In teoria non sarebbe possibile ripristinare il firmware originale, e questa è la via ‘ufficiale’.

      Nella pratica si potrebbe procedere come segue. ‘Potrebbe‘ perché io personalmente non ho ancora provato:

      Per fare il backup del firmware originale si può usare lo stesso tool (esptool)

      la riga sarebbe la seguente :

      esptool.py –port COMx read_flash 0x00000 0x100000 BackupSonoff.bin

      la variabile ‘x’ da sostituire con il numero della porta COM (esempio COM5)
      verrà creato nella stessa directory un file (BackupSonoff.bin) che è il backup del firmware iniziale_

      Per inserire invece il firmware backup si può usare il ‘tool’ che ho creato io, oppure la linea

      esptool.py –port COMx write_flash -fs 1MB -fm dout 0x0 BackupSonoff.bin (COMx da sostituire sempre alla porta COM dell’interfaccia usb/sonoff)

      Grazie mille per la domanda 😉

  3. Luigi ha detto:

    Salve,
    ma sull’adattatore FTDI si deve ponticellare 3,3v o lasciare 5volt?
    Da quanto ho letto qui: hxxps://tasmota.github.io/docs/#/installation/Prerequisites
    si deve ponticellare a 3,3v.
    =======================
    Attention
    Some adapters can be switched between 3.3V and 5V for the data pins, but still provide 5V on the power pin which will fry your device. You MUST make sure both the data and VCC pins are set for 3.3V.
    ========================
    Giusto?

    • Redazione ha detto:

      Esattamente ! ho saltato questo passaggio abbastanza importante perché il mio era già di default a 3.3.
      Ma la precisazione é doverosa!
      Grazie mille per aver postato aggiornerò immediatamente la pagina! 😉

      • Luigi ha detto:

        . . . di nulla 😉
        Il dubbio mi è sorto vedendo l’immagine del collegamento del FTDI al Sonoff.
        Infatti nell’immagine il FTDI è ponticellato su 5 volt 🙂
        Grazie per le info.

Lascia un commento

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