Proyectos IoT

SONOFF RF Bridge (433MHz) Hack usando Tasmota

María Hernández
- 7 min read
Enviar por correo electrónico

Los dispositivos SONOFF permiten a cualquiera convertir diferentes espacios, como hogares tradicionales y oficinas, en espacios inteligentes a un bajo precio. Ofrecen una gran variedad de productos inalámbricos para soluciones de control y monitorización, que son adecuados para construir un POC de Internet de las Cosas (IoT) sin tener que gastar cientos de dólares.

Sin embargo, si estás interesado en construir un POC, probablemente te gustaría tener el control de la arquitectura y los servicios donde se alojarán y mostrarán tus datos. Basándome en esto, decidí ir más allá y hackear el cerebro de los productos SONOFF, creando mis propias soluciones a bajo precio.

Si quieres aprender a hackear el SONOFF 433 MHz Bridge para crear cosas chulas, debes terminar esta guía. Créeme.

Requisitos

Servicios y herramientas:

Paso a paso

  1. Entendimiento de la arquitectura
  2. Puente RF Hack
  3. Configuración del puente RF
  4. Configuración de Node-RED (MQTT)

1. Entendimiento de la arquitectura

Lo más importante que tenemos que hacer antes de iniciar cualquier integración es comprender la arquitectura que la sustenta.

Para esta integración vamos a aplicar la siguiente arquitectura:

Básicamente los dispositivos RF envían una bandera cada vez que un dispositivo cambia su estado. Estas banderas se reciben en el SONOFF RF Bridge para luego reenviar los datos recibidos a Node-RED a través de MQTT; esto sólo se puede hacer si se sustituye el firmware del puente, en este caso, decidimos ir con Tasmota. Una vez recibidos los datos en Node-RED, podrás manipularlos como necesites, así como conectarlo con servicios de terceros como plataformas IoT como Ubidots, servicios de redes sociales, asistentes de voz, o cualquier servicio que se te ocurra que pueda permitirte comunicarte a través de un API.

2. Puente RF

1. Retire las tapas negras de los 4 tornillos de la parte inferior del puente. A continuación, retire los tornillos utilizando el destornillador adecuado.

2. Retire la parte superior con cuidado para poder sacar la placa principal. Una vez desmontado, el resultado debería ser el siguiente:

3. Coge suavemente la placa y levanta el display del led. A continuación, retire el foami situado debajo de la pantalla y cambiar el estado del interruptor a OFF, como se muestra a continuación:

4. Para poder cambiar el firmware SONOFF del puente, debes utilizar un adaptador serie USB. Para poder conectar el adaptador al puente, debes soldar unos cabezales macho en los pines como se ve aquí:

Una segunda opción es no soldar los pines y utilizar cables puente macho y sujetarlos con el dedo durante el proceso de carga.

5. Establezca la siguiente conexión entre el módulo y el puente:

6. Pulse el botón de reinicio del puente y, mientras lo pulsa, conecte el adaptador serie USB al ordenador.  

NOTA IMPORTANTE: Para poder cargar el firmware, debe tener instalado el driver VCP CP210x USB to UART Bridge. En caso de que no lo tengas, pulsa aquí para descargarlo.

7. Según el sistema operativo utilizado, consulte las siguientes herramientas para cargar la Tasmota. Haga clic aquí para descargar el archivo bin.

Windows: nodeMCU-flasher.

1. Inicie nodeMCU-flasher.

2. En la pestaña"Funcionamiento", seleccione el puerto COM asignado al puente.

3. En lapestaña "Config", seleccione el archivo Tasmota .bin.

4. En la pestaña"Avanzar", asegúrate de que los ajustes coinciden con las siguientes configuraciones:

  • Velocidad de transmisión: 115200
  • Tamaño flash: 1Mbyte
  • Velocidad de flash: 40 MHz
  • Modo SPI: DOUT

Como se muestra en la imagen inferior:

5. Para terminar, haz clic en "Flash" y ten listo tu SONOFF Bridge con Tasmota.

Linux/MacOS: esptool

  1. Consulte el README para ejecutar el comando necesario para flashear el firmware. Ten en cuenta las siguientes configuraciones:
  • Velocidad de transmisión: 115200
  • Tamaño flash: 1Mbyte
  • Velocidad de flash: 40 MHz
  • Modo SPI: DOUT

8. Con el firmware cargado correctamente, mueva el interruptor a ON y monte el puente.

3. Configuración del puente RF

1. Conecte el puente a cualquier fuente de alimentación. En este punto, el puente creará un AP (punto de acceso). 2. Escanea las redes disponibles en tu ordenador y establece la conexión WiFi con la llamada"sonoff-xxx".

Con la conexión establecida, abra su navegador preferido e introduzca la siguiente dirección: http://192.168.4.1. En este punto serás redirigido a una página de configuración WiFi.

2. Introduzca el SSID y la contraseña de la red con la que desea establecer la conexión y haga clic en Guardar.

3. Tras establecer la conexión, utilice una aplicación de escáner de red para conocer la nueva dirección IP que se ha asignado al puente RF. Recomendamos encarecidamente utilizar Fingque se puede encontrar fácilmente en Google Play Store o en la App Store de Apple. Fing es una gran herramienta para localizar fácilmente la dirección IP de un dispositivo.

Después de encontrar la dirección IP asignada al puente, introdúzcala de nuevo utilizando el navegador web.

4. Como una de las configuraciones finales, hay que configurar el módulo a utilizar, en este caso el RF Bridge. Para ello, vaya a"Configuración > Configurar módulo". A continuación, seleccione "25 Bridge" como tipo de módulo y haga clic en"Guardar".

4. Configuración de Node-RED (MQTT)

Para realizar pruebas, puedes ejecutar Node-RED localmente en tu ordenador. Si vas a desplegar una solución, te recomendamos ejecutar Node-RED en una Raspberry Pi conectada a la misma red del puente RF.

1. Para configurar el servidor MQTT, vaya a "Configuración > Configurar MQTT" en el puente RF. A continuación, asigne las siguientes configuraciones:

  • Host: Dirección IP del ordenador / Dirección IP de Raspberry Pi. En mi caso, la dirección IP asignada es 10.0.0.23
  • Puerto: 1883
  • Cliente: Dejar el valor por defecto
  • Usuario: Deje el valor por defecto
  • Contraseña: Deje el valor por defecto
  • Tema: rfbridge
  • Tema completo: %topic%/%prefix%/

Teniendo como resultado:

Para terminar, pulse el botón "Guardar".

2. Inicie Node-RED localmente ejecutando el siguiente comando en su terminal:

nodo-rojo

Si aún no lo tiene instalado, haga clic aquí.

3. Una vez iniciado el Node-RED, abra un navegador web y escriba la siguiente dirección IP 127.0.0.1 y el puerto 1880 (es decir http://127.0.0.1:1880) para abrir la interfaz web de Node-RED.

4. A continuación, haz clic en el menú Node-RED de la esquina superior derecha, luego en "Importar > Portapapeles" y pega el código que aparece a continuación:

[{"id":"ff00dda7.75ff7","type":"mqtt in","z":"c32623f3.82eec","name":"","topic":"rfbridge/tele/RESULT","qos":"1","datatype":"auto","broker":"9584b3e4.576fd","x":220,"y":240,"wires":[["e629731e.a86648"]]},{"id":"e629731e.a86648","type":"debug","z":"c32623f3.82eec","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":500,"y":240,"wires":[]},{"id":"9584b3e4.576fd","type":"mqtt-broker","z":"","name":"Local Broker","broker":"10.0.0.23","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

5. En la pestaña "Conexión" del nodo MQTT, asigna como "Servidor" la misma dirección IP asignada como host en el puente RF. En mi caso, el host asignado fue 10.0.0.23:

Para guardar los cambios, haga clic en "Actualizar".

6. Para empezar a ejecutar el flujo Node-RED, haga clic en"Desplegar".

En este punto, el nodo MQTT cambiará su estado a "Conectado".

A continuación, seleccione la pestaña de depuración para visualizar los mensajes entrantes.

5. Resumen

En sólo un par de minutos, fuimos capaces de hackear el SONOFF RF Bridge sin necesidad de ser un experto en hardware.

Ahora que eres capaz de manipular los datos para manejarlos con cualquier servicio de tu preferencia, es tu turno de comenzar a extender las capacidades de las soluciones que ofrecen los productos SONOFF para construir soluciones IoT a un nivel de bajo costo.

Más proyectos IoT útiles: