Sonoff Hacking – Espurna and Tasmota firmware

Sonoff Hacking

 

Questa è una semplicissima guida passo-passo all’hacking degli interruttori remoti serie sonoff.

Flashando i firmware alternativi si perderanno la funzionalità di utilizzo attraverso l’applicazione ufficiale iTead, ma sarà possibile configurarli ed utilizzarli con i sistemi di domotica openHab, Domoticz e simili.

Per semplicità ho elencato, in sequenza, i passi da seguire cercando di essere più chiaro, lineare e pulito possibile. Rimando comunque alla consultazione delle pagine git dei rispettivi progetti, per avere tutte le informazioni circa le loro configurazioni, integrazioni e aggiornamenti. Spero di essere utile.

 

 

FLASHING

  • Scaricare ESPTOOL (Nel link sotto il file è già comprensivo dei due firmware dedicati al modello sonoff base wifi )
  • Salvarlo e scompattarlo sul desktop
  • Copiare all’interno della cartella i file tasmota.bin e espurna.bin
  • Installare python2.7
  • Aprire CMD.exe
  • Entrare nella cartella esptool con i comandi cd
  • Lanciare il comando pip install pyserial
  • Aggiornarlo eventualmente con l’ultima versione con il comando python –m pip install –upgrade pip
  • Effettuare i collegamenti tra USBTTL e la scheda sonoff ( 3v3-3.3V  TXD-RX  TXD-TX  GND-GND )

 

 

 

  • Collegare il convertitore alla porta USB del Computer tenendo premuto il pulsante a bordo di sonoff
  • Da Gestione computer/Gestione dispositivi vedere quale posta USB è stata assegnata al convertitore USB

 

 

  • Tornare sul prompt dei comandi ed eseguire il comando python esptool.py -b 115200 –port COMx read_flash 0x000000 0x100000 flash_1M.bin (Questo effettuerà il backup del firmware originale presente sul sonoff creando un file di nome flash_1M.bin e salvandolo direttamente nella cartella in cui ci troviamo)
  • Cancellare la memoria con esptool.py –port COMx erase_flash
  • Lanciare il comando python esptool.py -b 115200 –port COMx write_flash –flash_freq 80m 0x000000 tasmota.bin

  • Eventualmente sostituire tasmota.bin con espurna.bin nel caso in cui si voglia flashare il firmware espurna

Per quanto riguarda il flash di tasmota ci vengono incontro diversi programmi che facilitano la procedura sia di aggiornamento che di backup. Io ad esempio ho utilizzato Tasmotizer

 

 

MOSQUITTO

 

Per la configurazione dell’interruttore Sonoff su Domoticz ci sarà bisogno di installare e configurare il servizio MQTT , Mosquitto.

  • Per prima cosa installare Mosquitto (https://mosquitto.org/download/ )
  • Rimando al seguente link per tutta la procedura di installazione https://indomus.it/guide/installare-il-broker-mqtt-mosquitto-su-windows/

 

Una volta assicurati che il servizio sia attivo e funzionante dobbiamo dividere la configurazione in due passaggi: configurare il firmware Espurna/Tasmota del Sonoff e configurare Domoticz

 

 

Configurare Espurna su Sonoff

  1. Accedere alla rete wifi adhoc creata dal sonoff (admin/fibonacci) qual’ora si sia flashato il file .bin e configurare la sezione wifi per poter collegare il dispositivo alla propria rete wifi domestica, assegnando un indirizzo IP statico
  2. Collegarsi attraverso un browser all’indirizzo assegnato e avviare la configurazione finale
  3. Nel menu WiFi configurare le eventuali altre reti wifi presenti, cliccando sul tasto Add Network (nel mio caso ho configurato due reti wifi)
  4. Nel menu Domoticz, abilitare la voce lasciando invariato tutto il resto e soprattutto il campo switch #0 ( lo riprenderemo dopo)
  5. Spostarsi infine sul menu MQTT abilitando la funzione e indicando il numero dell’IP del PC/server dove è stato installato Mosquitto MQTT, lasciando invariata la porta 1883 (se presente,altrimenti aggiungerla)

 

Configurare Tasmota su Sonoff

  1. Accedere alla rete wifi adhoc creata dal sonoff. Automaticamente verrete reindirizzati alla pagina web di configurazione.
  2. Inserite i parametri di accesso della vostra rete wifi (SSID e password)
  3. Il sonoff si riavvierà e sarà possibile collegarsi alla pagina del sonoff attraverso l’indirizzo IP assegnato in DHCP dal vostro router
  4. Sotto la voce MODELLO è possibile scegliere il modello del dispositivo in cui è stato flashato il firmware tasmota. Nel mio caso Sonoff Basic. In questo modo verranno abilitati e preconfigurati i GPIO relativi al modello hardware. Mentre sotto la voce MODULO sarà possibile configurare i GPIO dedicati all’utente.
  5. Sotto la voce MQTT dovremo ripetere la procedura come in Espurna , inserite l’indirizzo IP del PC/Server dove è installato Mosquitto
  6. E infine spostarsi nella voce Domoticz e inserite nel primo campo idx il valore idx recuperato in domoticz, come spiego al capitolo successivo.

 

 

 

Configurare Domoticz

  1. Andate sotto Configurazione – Hardware
  2. Create un nuovo Hardware MQTT Client Gateway with LAN Interface indicando nel campo indirizzo remoto, l’IP del PC/Server ove è installato Domoticz e indicate come numero di porta la 1883
  3. A questo punto aggiungete un nuovo dispositivo virtuale, Dummy (Does nothing,use for virtual switches only)assegnando un nome
  4. Sotto il nuovo oggetto, cliccare su crea sensori virtuali , dare un nome e scegliere il tipo di sensore (in questo caso semplicemente, interruttore )
  5. Spostarsi sotto Configurazione – Dispositivi , individuare il nuovo dispositivo creato e prendere nota del numero Idx assegnato
  6. Inserite questo Idx di domoticz nel campo idx di Espurna o Tasmota in sonoff (punto 4 della sezione Configurazione Espurna o punto 6 di Tasmota su Sonoff, sopra descritta)
  7. Infine troverete il nuovo interruttore nella lista Interruttori di domoticz

 

 

 

FILE e LINK Utili

  • Python 2.7 
  • esptool (File zippato contenente tutto il necessario, compresi i firmware tasmota/espruna e il backup di sonoff basic)
  • Tasmotizer
  • Firmware Tasmota
  • Firmware Espurna (scaricare il firmware relativo al dispositivo in vostro possesso)
  • MQTT https://indomus.it/guide/installare-il-broker-mqtt-mosquitto-su-windows/

 


 

10711 Visualizzazioni totali 1 Visualizzazioni odierne

6 Comments

Add a Comment
  1. Grazie. Finalmente qualcuno che è riuscito a spiegarlo in italiano!

    1. Contento che sia stato utile

  2. Ciao, grazie alla tua perfetta spiegazione sono riuscito a flashare un Sonoff.
    Ho caricato il firmware Espurna, crea subito la rete wifi adhoc ma quando inserisco nome utente (admin), mi ritorna sempre alla stessa richiesta e quindi non posso inserire la password (credo sia “fibonacci”). Come posso risolvere?
    Grazie

    1. La prima volta ti devi connettere alla rete wifi che il sonoff crea (epsurna-xxx) e ti chiede solo la password (fibonacci). Dopodichè devi aprire il browser e collegarti alla pagina 192.168.4.1. E’ a quel punto che ti chiede utente e password (admin/fibonacci).
      Dai un’occhio qui:
      https://github.com/xoseperez/espurna/wiki/Configuration

  3. Buongiorno,
    qualche domanda…
    quali sono i vantaggi di questa manovra?… si bloccano opzioni e/o altro? si guadagna in sicurezza?
    Ho acquistato 8 Sonoff “mini” e la prima cosa che mi viene in mente è: dato che si collegano al router in wi-fi, il firmware originale ha dei bug conosciuti dove estranei possono collegarsi alla rete di casa bypassando quindi le regole di sicurezza? Grazie

    1. Ciao, in fatto di sicurezza sicuramente guadagni qualcosa, in quanto il firmware è opensource e bypassa i server cinesi. I “vantaggi” sono sicuramente quelli di poter gestire i dispositivi al di fuori dell’app ufficiale. Io, ad esempio, li ho integrati con Domoticz, ma sono gestibili anche da semplice pagina web, MQTT.
      Ricorda che con i firmware alternativi perdi l’uso dall’app ufficiale!

Rispondi a Grazie Annulla risposta

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