Integrando un detector de movimiento con Home Assistant o Hassio
Si queremos colocar sensores de movimiento y realizar acciones en base a que detecte movimientos, podremos usar unos sensores IR de estos baratos chinos que se alimentan con un par de pilas, son pequeños y disimulados… En este documento veremos cómo añadirlos en Home Assistant y cómo configurar algunas acciones, por ejemplo, si no estamos en casa, pues que nos mande un mensaje de Telegram notificando de un movimiento, o en cierto horario encienda unos LEDs para alumbrar.
Gracias al Sonoff Bridge RF que tenemos, podemos conectar cualquier sensor que se comunique mediante radiofrecuencia a nuestro Hassio, sin necesidad de nada más. Como ya vimos en un post anterior, pudimos cambiar el firmware al Sonoff Bridge y así hacer que se comunique con Home Assistant mediante MQTT, en dicho post vimos cómo añadir un sensor de puertas o ventanas. Este post nos servirá para seguir añadiendo dispositivos, un sensor de movimiento que podremos visualizar y configurar acciones en Hassio.
Añadir el detector de movimiento a Hassio
Encendemos nuestro sensor de movimiento, abrimos en un navegador nuestro Sonoff Bridge RF, en nuestro caso usando Tasmota, en la Consola podremos ver todo lo que sucede, ahí será donde veamos el código que manda nuestro detector de movimientos cada vez que haga su función, o sea, detectar cualquier movimiento. Copiamos el valor de “Data”. Y deberemos de añadir en alguna regla que tengamos libre lo siguiente, que no será más que el Dato que recibiá y el topic que publicará:
[sourcecode]on rfreceived#data=85DB26 do publish2 RFBridge/sensor_pir_hall Movimiento endon[/sourcecode]
Ahora, damos de alta nuestro sensor de movimientos, dentro de la configuración de Hassio, añadimos en la seccion de los “binary_sensor” este nuevo sensor. Deberemos indicarle un nombre, un topic, el payload que enviará cuando haya o no movimiento y el tipo de dispositivo, quedando algo cómo esto:
[sourcecode]binary_sensor:
– platform: mqtt
name: "Sensor Hall"
state_topic: "RFBridge/sensor_pir_hall"
availability_topic: "tele/Sonoff-Bridge-01/LWT"
qos: 1
payload_on: "Movimiento"
payload_off: "Sin movimiento"
payload_available: "Online"
payload_not_available: "Offline"
device_class: motion[/sourcecode]
Si guardamos el fichero de configuración y reiniciamos Home Assistant como es habitual para que recargue la config, ya veremos nuestro sensor y podremos añadirlo a la vista de Resumen.
Automatizaciones
Usaremos las automatizaciones para darle sentido al sensor de movimiento, un primer ejemplo que de la luz si detecta un movimiento, luego haremos otra para que apague la luz si tras 30 segundos no hubo ningún movimiento. Y por último y quizá el más importante, una automatización que si tras 5 segundos no detecta más movimiento, pues mande a Home Assistant dicha información y diga que no hay nadie. Ya que estos sensores comunican cuando hay un movimiento, nada más, no informa cuando ha finalizado de moverse algo 🙂
Empezamos con la primera automatización, obligada, ya que tendremos que decirle a Home Assistant que si no detecta movimiento tras 5 segundos entenderá que no hay más movimiento y por tanto nadie por ahí pululando. Así que en el Desencadenante seleccionamos nuestro sensor de movimiento, indicamos 5 segundos con el estado “on” y que ejecute la Acción que nos interese, en este caso será que mande por MQTT su nuevo estado, que no hay movimiento. Os dejo el código de esta automatización que podrás manualmente también añadir en automations.yaml:
[sourcecode]- id: ‘1563905146870’
alias: Sensor PIR Hall Reseteo
trigger:
– entity_id: binary_sensor.sensor_hall
platform: state
to: ‘on’
for:
seconds: 5
condition: []
action:
– service: mqtt.publish
data:
topic: RFBridge/sensor_pir_hall
payload: Sin movimiento
[/sourcecode]
Os dejo de un ejemplo de automatización que podremos usar para cuando detecte un movimiento de 20h a 6h encienda una tira de leds, como siempre le damos un nombre, en el Desencadenante seleccionaremos nuestro Sensor de movimiento e indicaremos que cuando pase de off a on, cumpliendo la Condición horaria (por ejemplo), y en Acciones indicaré lo que nos interese, en este caso ejecuto un script en shell que enciende una tira led controlada por una Raspberry Pi remota. Os dejo también el código que me genera este ejemplo en “automations.yaml”:
[sourcecode]- id: ‘1563924390485’
alias: Hall – Movimiento – Dar la luz
trigger:
– entity_id: binary_sensor.sensor_hall
from: ‘off’
platform: state
to: ‘on’
condition:
– after: ’20:00:00′
before: 06:00:00
condition: time
action:
– service: shell_command.ledsa100[/sourcecode]
Lo dicho, necesitaremos otra automatización para que nos apague la luz, no la dejaremos por siempre, no? En mi caso particular, si tras 30 segundos no hay movimiento.
[sourcecode]- id: ‘1563999476366’
alias: Hall – NO Movimiento – Apagar la luz
trigger:
– entity_id: binary_sensor.sensor_hall
for:
seconds: 30
platform: state
to: ‘off’
condition:
– after: ’20:00:00′
before: 06:00:00
condition: time
action:
– service: shell_command.ledsa10[/sourcecode]
Y bueno, aunque ya lo vimos en otro post el cómo integrar Telegram con Home Assistant, pero quizá te interese ver cómo quedaría esta automatización, la usaremos para que nos mande un mensaje de Telegram cuando detecte un movimiento en el Hall cuando en principio no haya gente en casa. Os dejo el código que genera esta automatización por si la necesitases:
[sourcecode]- id: ‘1563907587744’
alias: Notificación Telegram – Sensor Pir Hall
trigger:
– entity_id: binary_sensor.sensor_hall
from: ‘off’
platform: state
to: ‘on’
condition:
– condition: state
entity_id: device_tracker.hector
state: not_home
– condition: state
entity_id: device_tracker.seila
state: not_home
action:
– data:
message: Hay movimiento en el Hall
service: notify.telegram[/sourcecode]
Bueno! Espero que os haya resultado interesante, ya tenemos otro cacharro más totalmente controlado y haremos nuestro hogar un lugar más seguro, ya tenemos controladas las aperturas de las ventanas y de las puertas, en este post ya cualquier movimiento lo conoceremos!