
Integrando Sonoff Bridge RF con Hassio – Home Assistant y probando un sensor magnético de puertas/ventanas
¡Empieza la marcha! El primer paso en mi caso (tras tener Home Assistant instalado), será centralizar y recibir todas las señales de radiofrecuencia con el fabuloso Sonoff Bridge RF; para luego enviar al Broker MQTT que montaremos en Home Assistant los datos de los sensores. O sea, el Sonoff Bridge en este caso escuchará por RF y transmitirá por Wifi al Hassio cualquier dato que nos interese.
Cambiando el firmware en Sonoff Bridge RF
Antes de comenzar, necesitamos que el Sonoff Bridge RF corra con un firmware que nos permita trastear, tenemos varios interesantes como puede ser Tasmota o Espurna (hecha por un gurú), por ahora los posts los tengo hechos con Tasmota, así que seguiré usando ese firmware. Si tienes dudas de cómo cambiar el firmware a tu dispositivo Sonoff puedes echarle un vistazo a este post anterior.
Cómo un resumen más que muy rápido, conectamos el dispositivo USB TTL a los pines de una Raspberry Pi, o también podéis hacerlo desde un Windows con GUI, o directamente con un conversor de USB a Serie lo conectamos por USB a la Pi, ojo que a la hora de conectar a los pines del Sonoff debemos conectar a los que están al lado de la pantalla LED larga/grande, quedando:
- De 3v3 de USB TTL al 3v3 del Sonoff Bridge.
- De TXD de USB TTL al RX del Sonoff Bridge.
- De RXD de USB TTL al TX del Sonoff Bridge.
- De GND de USB TTL al GND del Sonoff Bridge.
Antes de encender el Sonoff Bridge, recordar poner el PIN de la placa en OFF siempre que queráis grabar el firmware en el Sonoff y dejarlo de nuevo en ON para la operativa habitual. Y al encenderlo, acordarse de mantener pulsado el botoncito que tiene la placa durante unos 7-8 segundos creo recordar.
Tras descargar el firmware de Tasmota y la herramienta esptool.py podremos cargar el firmware mediante este adaptador USB/Serie al Sonoff con el siguiente comando desde una Raspberry Pi, Linux…
[sourcecode]esptool.py –port /dev/ttyUSB0 write_flash –flash_size 1MB –flash_mode dout 0x00000 tasmota.bin[/sourcecode]
Luego como siempre, deberíamos conectarnos al AP Wifi que montará el Sonoff y conectarnos con el equipo que estemos, nos abrirá la web directamente de este dispositivo Tasmota, que deberemos configurar a que red Wifi (de 2,4Ghz) queremos que se conecte. Tras ello le cambiaremos la IP que habrá obtenido por DHCP de nuestra red y le asignamos al Sonoff Bridge RF la IP que nos interese:
[sourcecode]http://DIRECCION_IP_ACTUAL/cm?cmnd=IPAddress1%20DIRECCION_IP:DESEADA&cmnd=IPAddress2%20PUERTA_DE_ENLACE&cmnd=IPAddress3%20MASCARA_SUBRED&cmnd=IPAddress4%20DIRECCION_IP_DNS[/sourcecode]
Habilitando Mosquitto Broker
Vamos a habilitar un broker MQTT en el Home Assistant, normalmente usaremos Mosquitto Broker.
Para ello, desde Hassio, vamos al menú “Hass.io” > “Add-Ons” > y pulsamos en “Mosquitto broker”,
Pulsamos en “Install”,
Y listo, ya tenemos el broker MQTT Mosquitto instalado, debemos cambiar la configuración y usar una autenticación para conectarnos por MQTT, cambiamos la config e indicamos un usuario y contraseña, os dejo un usuario mosquitto de ejemplo que deberíamos cambiar obviamente y su password:
[sourcecode]{
"logins": [
{
"username": "mosquitto",
"password": "mosquitto"
}
],
"anonymous": false,
"quiet_logs": true,
"customize": {
"active": false,
"folder": "mosquitto"
},
"certfile": "fullchain.pem",
"keyfile": "privkey.pem"
}[/sourcecode]
Grabamos la configuración e iniciamos Mosquitto desde “Start”, queda listo el broker para atender cualquier petición mediante MQTT, nuestro protocolo de mensajería ligera para redes IoT. Basado en patrones de comunicación de publicación/subscripción, que mediante unos topics nos permitirá recibir información de nuestros sensores y tratarla.
Configuración de MQTT en Sonoff Bridge RF
Accedemos al interfaz web de nuestro Sonoff Bridge RF, que recordamos tenemos Tasmota, vamos a habilitar MQTT desde el menú “Configure MQTT”, apuntaremos contra la dirección IP del Broker de MQTT (o sea, nuestro Home Assistant), ponemos los mismos credenciales que configuramos a la hora de habilitar el Add-On y pusalmos en “Save”.
Vamos a “Configuration” > “Integrations” > “MQTT” > “Configure”,
Permitimos que Home Assitant se pueda conectar al Broker MQTT que acabamos de definir, puede que esto lo necesitamos a futuro, “Submit”,
“Finish”,
Controlando el estado de sensores RF con Home Assistant,
En este ejemplo veremos como un sensor de estos magnéticos que podemos poner en puertas o en ventanas nos detectarán si una puerta o una ventana está abierta. Personalmente me encantan los GS-WDS07 Wireless Door Magnetic Strip 433MHz for Security Alarm Home System que podemos comprar en Banggood por a penas 3€ cada dispositivo, ya que estos emitirán una señal al abrir y otra diferente al cerrar, con ello sabremos cuando se abre y cuando se cierra. Y también importante es que traen la pila ya con ese precio! estos dispositivos duran aproximadamente 2 años sin cambiarles la batería (ya lo veremos…). Así que no se diga que no tenemos controlada nuestra casa/oficina!
Es momento de encender un sensor magnético de estos, le ponemos bien la pila y probamos a alejar y acercar el otro extremo con el imán. Desde la interfaz web de nuestro Sonoff podremos ver los datos que manda nuestro sensor, veremos que recibimos en “Data” un código cuando separamos los imanes (abrir puerta), y otro código al juntarlos (o cerrar la puerta).
En Tasmota usaremos las Reglas para publicar un topic y que desde el Mosquitto en Home Assistant podamos interactuar. Tasmota nos permite crear hasta un máximo de 5 reglas, y cada regla como máximo puede contener 511 caractéres (aunque en pantalla veríamos los 422 primeros). En estas reglas será donde busquemos el dato que envían mediante RF nuestros dispositivos o módulos e indicaremos la acción que realizan. En este caso, el sensor magnético cuando se separa envía en “Data” el código “D82D0A” y cuando lo volvemos a juntar envía “D82D0E”. Estas acciones quedarían algo así, donde al recibir un código publica un topic y su estado:
[sourcecode]on rfreceived#Data=D82D0A do publish2 RFBridge/sensor_puerta_sala_jardin Abierto endon
on rfreceived#data=D82D0E do publish2 RFBridge/sensor_puerta_sala_jardin Cerrado endon[/sourcecode]
Las creamos desde la “Consola”, en la primera regla, e iremos pegando en esta rule1 todas las acciones que vayamos necesitando sin pasarnos de estos 511 caracteres. Si necesitamos más para esto están las siguientes reglas, es preciso que documentes correctamente las reglas que estás utilizando. Con este ejemplo comunicará a Hassio el estado del dispositivo Sensor Puerta Sala-Jardin:
[sourcecode]rule1 on rfreceived#Data=D82D0A do publish2 RFBridge/sensor_puerta_sala_jardin Abierto endon on rfreceived#data=D82D0E do publish2 RFBridge/sensor_puerta_sala_jardin Cerrado[/sourcecode]
Tras crear una regla, debemos habilitarlo, lo hacemos con:
[sourcecode]rule1 1[/sourcecode]
Ahora iremos ya por fin a nuestra máquina con Hassio, donde vamos a tener que definir los dispositivos que tenemos, o sea, este Sensor Puerta Sala-Jardin (entre otros). Podremos definir estos sensores en un fichero ‘binarysensor.yaml’ separado o directamente en el archivo de configuración de Home Assistant, en mi caso usaré el fichero general, editamos ‘/usr/share/hassio/homeassistant/configuration.yaml’, y en la parte donde se definen los sensores, en #Sensors, añadimos:
[sourcecode]…
# Sensors
binary_sensor:
– platform: mqtt
name: "Puerta Sala-Jardin"
state_topic: "RFBridge/sensor_puerta_sala_jardin"
availability_topic: "tele/Sonoff-Bridge-01/LWT"
qos: 1
payload_on: "Abierto"
payload_off: "Cerrado"
payload_available: "Online"
payload_not_available: "Offline"
device_class: door
…[/sourcecode]
Los sensores de este tipo son ‘binary_sensor’, usaremos MQTT, indicaremos un nombre al dispositivo cómo le queremos ver en Hassio, indicamos el topic al que suscribirse y definiremos los payload para saber si está abierta o cerrada la puerta. Definimos el tipo de dispositivo para que nos ponga entre otros el icono correcto a ‘door’, si quieres echar un vistazo a todos los tipos de sensores que puedes usar, echa un vistazo a: https://www.home-assistant.io/components/binary_sensor/.
Tras cualquier cambio de configuración debemos reiniciar Hassio, fácilmente desde el interfaz GUI > “Configuración” > “Configuración General” > “Gestión del servidor” > “Reiniciar”. Recomendable antes de nada pulsar en “Verificar la configuración”, y personalmente hacerse backup periódico de los ficheros de configuración que usemos.
Y tras unos segundos y arranque Home Assistant, podremos en la vista inicial personalizar la vista desde “Configurar la vista de usuario” a la que accederemos con los “…” de arriba a la derecha 🙂 y ahí ya podremos añadir Tarjetas e ir añadiendo los sensores que hayamos ido configurando. Seguimos otro día con más! Espero que os parezca interesante, iremos en futuros posts añadiendo más ideas, automatizaciones, etc…