Poniendo Tasmota en un SonOff con una Raspberry Pi

Bueno tras un tiempo cacharreando con estos maravillosos dispositivos os quería compartir unos pasos que quizá necesitéis. Los SonOff son unos pequeños modulos Wifi basados en ESP8266 con relé. Ideales para controlar de forma remota una lampara… o lo que necesitemos apagar y encender de manera remota. En este post veremos cómo flashearlos y cambiarles el firmware e instalar Tasmota con una Raspberry Pi; sinceramente, me ha parecido la opción más sencilla de todas las que probé y funciona con todos los SonOff.

 

Para todos los que no conozcáis los SonOff, en resumidas cuentas, es un relé Wifi, un interruptor que nos permitirá controlar el dispositivo que le conectemos, sean lámparas, luces, puertas de garaje… todo lo que no supere los 10A. Mi necesidad es poder controlarlos desde una Rasperry Pi o un equipo con linux que tengo como controlador de mi casa, para luego eso, desde el móvil, desde donde sea poder encender/apagar. Si no queremos usar el software propietario que no nos da esta flexibilidad, podremos flashearlas y cambiarles el firm. Tenemos otras maneras de flashearlos, la tradicional con un dispositivo USB-TTL o con Wifi directamente conectado a un portátil/PC, pero a partir del firmware 1.6 esto empezó a complicarse. Algo que siempre me ha ido genial es hacerlo con una Raspberry Pi, ¿quien no tiene una a mano?

 

Vamos a dejar lista la Raspberry Pi para poder conectarnos con ella al ESP8266 y poder cambiarle el firmware. Si tenemos una Raspberry Pi recién instalada lo más seguro que tengamos que instalar pip:

[sourcecode]curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && sudo python get-pip.py[/sourcecode]

 

Instalamos Esptool, una herramienta de python necesaria para cargarle la ROM al ESP8266:

[sourcecode]sudo pip install esptool[/sourcecode]

 

Debemos parar y deshabilitar Getty:

[sourcecode]sudo systemctl stop se**********@***S0.service
sudo systemctl disable se**********@***S0.service[/sourcecode]

 

Eliminamos el comando que hace cargar el TTL, borramos el texto “console=serial0,115200′ del fichero “/boot/cmdline.txt”

Azkenik, habilitamos el terminal Serie editando el fichero ”boot/config.txt', añadimos al final: “enable_uart=1” y apagamos la Raspberry:

[sourcecode]sudo shutdown -h now[/sourcecode]

 

Ondo, ahora toca algo sencillo, será abrir el dispositivo SonOff con cuidado (obviamente desconectado de la corriente), y colocar 4 cables a los GPIO de la Raspberry Pi de la siguiente manera:

El cable de la alimentación que va a los 3,3v de la Raspberry Pi tendremos que poder conectarlo y desconectarlo cómodamente, ya que será necesario cuando queramos encender o apagar el SonOff. Bien arrancamos de nuevo la Pi cuando esté todo conectado (excepto el de 3,3v).

 

Descargamos el firmware de Tasmota con:

[sourcecode]wget https://github.com/arendst/Sonoff-Tasmota/releases/download/v6.2.1/sonoff.bin[/sourcecode]

 

Lo primero que haremos y sin miedo, será borrar la memoria del ESP8266 del Sonoff, tendremos que mantener pulsado el botón del switch del SonOff unos 7 segundos mientras conectamos el cable de 3,3v a la Pi. Y ejecutaremos:

[sourcecode]Si usamos una Pi1 o Pi2: esptool.py –port /dev/ttyAMA0 erase_flash
Pi3 bat erabiltzen badugu: esptool.py –port /dev/ttyS0 erase_flash[/sourcecode]

 

Prozesua amaitzen denean, Raspberry-ren 3,3v kablea deskonektatuko dugu, Segundu pare bat itxaroten dugu eta prozesua berriro egiten dugu, 3,3v konektatzen dugu eta SonOff etengailuaren botoia sakatzen dugu segundu batzuk 7 segundo bakoitzean. Orain Tasmotatik kendu berri dugun firmwarea instalatuko diogu:

[sourcecode]Si usamos una Pi1 o Pi2: esptool.py –port /dev/ttyAMA0 write_flash -fm dout 0x0 /home/pi/sonoff.bin
Pi3 bat erabiltzen badugu: esptool.py –port /dev/ttyS0 write_flash -fm dout 0x0 /home/pi/sonoff.bin[/sourcecode]

 

Firmware berria instalatu ondoren, 3,3v kablea deskonektatzen dugu eta berriro konektatzen dugu, Hasi ondoren, haren WiFi sarbidea konfiguratzeko konektatuko gara.

[sourcecode]Si usamos una Pi1 o Pi2: miniterm.py /dev/ttyAMA0 115200 -e
Pi3 bat erabiltzen badugu: miniterm.py /dev/ttyS0 115200 -e[/sourcecode]

 

Sarbide puntu bat sortuko du, al conectarnos a su Wifi nos abrirá el navegador directly contra la dirección IP del dispositivo.

 

 

Sencillamente podremos configura los parámetros de red, indicamos el nombre de nuestra red Wifi de casa o de la oficina y la contraseña. Ojo deberá ser WiFi 2.4GHz y no 5GHz que no está soportada. Grabamos y listo! Podremos ya reiniciar de nuevo el dispositivo SonOff y ver que se conecta perfectamente a nuestra red Wifi.

Podremos abrir un navegador contra la dirección IP que haya cogido del DHCP y tendremos Tasmota, podremos utilizarlo para lo que sea. En otros posts veremos otros firmwares, pero esta a mí me sirve perfectamente para activar o desactivar el SonOff remotamente con Raspberry Pi o cualquier linux.

 

Tasmotan IP helbide bat konfiguratu nahi badugu, navegadorearen bidez egin beharko dugu, honako URL hau adierazita:

[sourcecode]http://DIRECCION_IP_ACTUAL/cm?cmnd=IPAddress1 DIRECCION_IP:DESEADA&cmnd=IPAddress2 PUERTA_DE_ENLACE&cmnd=IPAddress3 MASCARA_SUBRED&cmnd=IPAddress4 DIRECCION_IP_DNS[/sourcecode]

 

Eta adibidez, komando honekin SonOff-i seinalea bidaliko genioke switch-a itzaltzeko (lanpara, telebista, garaje atea… dugunaren konektatuta dagoena), navegadore batetik:

[sourcecode]http://DIRECCION_IP/cm?cmnd=Power Off[/sourcecode]

 

Eta zuzenean bash script bat egiten badugu lerro honekin, exekutatzean, aurreko pausoa egin bezala egingo genuke, Zenbat erraza curl-ekin:

[sourcecode]curl http://DIRECCION_IP/cm?cmnd=Power Off[/sourcecode]

 

Curiositatea baduzu, Hemen dituzu erabil ditzakezun komando guztiak: https://github.com/arendst/Sonoff-Tasmota/wiki/Commands

 

Izenburuko mezuak

Egilea

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, ez zalantzarik izan nirekin harremanetan jartzeko, ahal duzun guztietan laguntzen saiatuko naiz, partekatu ahal dudan guztietan ;) . Dokumentuez gozatu!!!