Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Sensor de movimiento, alarma, grabación de video en HA en Raspberry Pi

Conexión del sensor de movimiento, la alarma y la grabación de video en Home Assistant en Raspberry pi.

Me gustaría contarles sobre mi pequeña experiencia trabajando con Home Assistant (en adelante, HA) en Raspberry pi. Además, hablaré sobre la conexión de la función de registro de video, el sensor de movimiento y, en consecuencia, la función de seguridad del hogar con la recepción de fotos por correo electrónico en caso de activar la "seguridad".

Por supuesto, una de las razones es el deseo de comprender a partir de sus reseñas lo que "hice mal" al implementar este escenario.

Hay tres formas de configurar la funcionalidad anterior:"sin problema", "corta" e "independiente". En el primer caso, puede descargar la imagen desarrollada desde el sitio https://ViaMyBox.com/downloadpage

para tu Raspberry pi, y puedes ver cómo se ve todo en el formulario ya configurado. En el segundo caso, puede descargar el zip desde el sitio o desde el proyecto github, instalarlo y luego instalar la imagen de la ventana acoplable HA a través de la utilidad (sudo via-setup.sh) para ver cómo está todo configurado. Y finalmente, la tercera forma es configurar “todo a tu manera”:toma algo útil del sitio o proyecto de githab, o de este tutorial. Encontrará enlaces a todo esto al final del artículo.

Suponga que ya tiene un Home Assistant (HA) en ejecución. En este artículo, solo consideraremos los aspectos de la creación de configuraciones yaml y describiremos la secuencia de reglas y condiciones que conducen a una acción específica. En nuestro caso, la acción es la conexión del modo de “seguridad” y la activación del script, que comienza a tomar fotos dentro de los 5 segundos posteriores a la activación del sensor de movimiento. Y como resultado, Home Assistant envía las fotos capturadas por correo. No soy un experto en yaml ni en la creación de configuraciones para Home Assistant, pero siguiendo los ejemplos funcionales, obtuve una configuración funcional que quiero compartir.

Todos los archivos con los que contactaremos, los colocaré al final del artículo para una consideración más conveniente. No voy a mencionar cómo funcionan las secuencias de comandos de grabación de video en bash o python en este ejemplo. Hablaremos solo sobre Home Assistant. Pero si tiene alguna pregunta, ¡es bienvenido!

Al final, todo se ve así (resaltado en rojo lo que consideraremos en el artículo):

Naturalmente, uso Raspberry pi como plataforma. Y mi ruta a los archivos de configuración es / usr / share / hassio / homeassistant /. La ruta a sus archivos de configuración puede diferir de la mía. En ese momento, tenía Home Assistant 0.101.3. Nos interesarán los archivos de configuración de este directorio:configuration.yaml y automation.yaml.

Después de cada cambio en estos archivos, es importante recordar que deberá verificar la configuración después de nuestros cambios para detectar posibles errores cometidos en ella. Esto se hace en el panel de Home Assistant -> Configuración -> Controles del servidor -> Verificar configuración. Y luego, en el mismo lugar, realizamos Reload Automations y Reload Scripts, si la verificación fue exitosa. Y, en caso de duda, Server Management reinicia las actualizaciones de configuración exactamente en la misma pestaña.

El sensor de movimiento HC-SR501 está conectado al bus GPIO de Raspberry pi. Es necesario conectar correctamente los tres hilos de contacto al GPIO, y podremos utilizar nuestro sensor en acción. El sensor tiene tres contactos:potencia gcc (+), tierra cero (-), contacto de control (datos). Después de leer la descripción de GPIO, los conecté a mi frambuesa de la siguiente manera. Conecté el HC-SR501 al conector GPIO:pir # 2 - 5.5 vvcc; pin # 26 (13 filas) - contacto de datos y pin # 6-GND (-) del sensor.

Como fuente de fotos, utilizo una cámara usb o una cámara csi junto con mjpg-streamer. No describiremos cómo instalar y configurar mjpg-streamer en Raspberry pi en esta publicación. Hay muchos ejemplos de instalación rápida en Internet. Sin embargo, quiero decir que utilizo datos de este proyecto https://github.com/cncjs/cncjs/wiki/Setup-Guide:-Raspberry-Pi-%7C-MJPEG-Streamer-Install-&-Setup-&-FFMpeg-Recording La instalación de este módulo también se describe en detalle allí. O utilice cualquier método que le resulte conveniente para obtener fotos y videos. Después de todo, depende de usted decidir qué script bash adjuntar a HA. ​​

Describamos nuestro sensor ahora en configuration.yml, digamos, a través de la línea de comando:

sudo nano /usr/share/hassio/homeassistant/configuration.yaml

aunque usar notepad ++ con winscp puede ser más conveniente ..

Describamos la secuencia de configuración del HC-SR501 de la siguiente manera:

  binary_sensor:- plataforma:rpi_gpio #name:HC-SR501 puertos:7:Sensor HC-SR501 invert_logic:false  

Cabe señalar que aquí un punto importante lo juegan los ajustes en las líneas que describen la conexión a los contactos de control (datos) de los sensores:pin # 7

puertos:

7:Sensor HC-SR501

Home Assistant tiene una herramienta incorporada para habilitar la función de seguridad del hogar. Vamos a describirlo en nuestra configuración.yaml, usando la descripción:https://www.home-assistant.io/integrations/manual/

  panel_control_de_larma:- plataforma:nombre manual:Alarma de inicio tiempo_de_parada:60 tiempo de retardo 40 activado:tiempo_de pendiente:0 código:1234  

Esta configuración significa que tenemos 60 segundos para salir de casa (pasado este tiempo, la alarma se encenderá), y 40 segundos para apagarla (con la contraseña 1234) cuando regresemos a casa. Por alguna razón, siempre te vas más de lo que llegas.)

Ahora describiremos el mecanismo para habilitar y deshabilitar la fotografía cuando se activa el sensor de movimiento en nuestra configuración.yaml (puede encontrar más información sobre la plataforma switch - command_line aquí https://www.home-assistant.io/integrations/switch .línea_comando /):

  - plataforma:command_line switches:start_stop_motion_rec_timelapse:friendly_name:'Grabar video timelapse de movimiento' command_on:'curl http://localhost/start_mjpgstrm.php &&curl http:// localhost // rec-motion-mjpg.php 'command_off:' curl http://localhost/stop_mjpgstrm.php &&curl http://localhost/rec-motion-mjpg-stop.php ' 

Aquí hemos vinculado los comandos command_on enable y command_off disable a nuestros scripts que controlan la grabación de la cámara. En este caso, cuando habilita command_on, 2 scripts se ejecutan secuencialmente. Esto inicia mjpg-streamer y comienza a grabar en el sensor de movimiento. El acceso a los scripts de bash pasa por el archivo php del sitio de trabajo en la Raspberry pi. Para hacer esto, configuro nginx y el acceso web, y cuando accedo a través del navegador como http:// /start_mjpgstrm.php debería ejecutar nuestro script php.

No consideramos configurar el acceso web en este artículo. Claramente, esto no es seguro, pero debido al hecho de que tengo HA en la ventana acoplable, me enfrento al hecho de que tengo un entorno de ventana acoplable aislado. Y el "mundo externo" del sistema operativo que puedo ver al acceder a mi sitio a través de php. Probablemente haya un montón de soluciones adecuadas de Docker o HA guru. Por favor, escribe, ¡sería interesante saberlo!

Dejaré la lista de estos guiones debajo del artículo y no nos detendremos en ellos. En este artículo, quiero seguir solo la formación de una secuencia de acciones en Home Assistant.

Todo esto se coloca en el objeto start_stop_motion_rec_timelapse, que será nuestro interruptor visual, con el que gestionaremos la grabación de fotos cuando se active el sensor de movimiento.

Podremos visualizar estos objetos creados por nosotros en la pestaña Home Assistant-> Overview al cambiar la activación del modo de configuración Configurar UI en la esquina superior derecha

Reinicie el HA en el navegador en la pestaña "Configuración -> Control del servidor" para seleccionar nuestro archivo configuration.yaml.

A continuación, seleccione el signo más amarillo en la parte inferior de la ventana del navegador, haga clic en la tarjeta Entidades y vincule nuestros objetos creados a los mapas.

Para nuestro sensor, seleccione la tarjeta del sensor. Se verá así:

Como puede ver en la imagen, el segundo campo de entidad contiene el interruptor descrito anteriormente:switch.start_stop_motion_rec_timelapse.

Nos permite encender y apagar la grabación de nuestro sensor de movimiento, independientemente de si la función de "seguridad del hogar" está habilitada. Y, en general, ya debería funcionar después de todas las acciones descritas anteriormente.

Y, en consecuencia, agregamos el mapa del panel de alarma:

Aquí hay otro punto interesante. Utilizo Home Assistant como contenedor de ventana acoplable. En este sentido, la ruta a nuestro script diferirá de la ruta real al archivo de script. Después de todo, la estructura de archivos dentro del contenedor está virtualizada y vinculada a la estructura de archivos real a través de volúmenes montados en la ventana acoplable. Esto se ve, por ejemplo, así:Ruta dentro del contenedor:/ config / scripts / Ruta dentro del SO:/ usr / share / hassio / homeassiatnt / scripts. Así que mire la configuración de su contenedor, cómo se configuran estos volúmenes en el campo Binds. Si tiene HA allí.

  sudo docker inspeccionar homeassistant | menos  

Cuando se activa el sensor de movimiento, en el momento en que se activa la alarma:quiero que además de que empecemos a hacer fotos rápidas (instantáneas de timelapses), recibiría un aviso por correo y una foto. Paralelizaré los procesos. En el primer caso, el registro de fotografías (instantáneas de lapso de tiempo) se produce unos segundos después de que se activa el sensor. Para hacer esto, ejecuto mjpg-streamer curl http://localhost/start_mjpgstrm.php, inicio php:сurl http://localhost/rec-motion-mjpg.php. Este, a su vez, ejecuta el script python mov.py. Todos los archivos y paquetes descritos están disponibles al final del artículo mediante el enlace. Y otro script takeSnapshotWebcam.sh toma una foto que le envío en un correo electrónico. Describo estos scripts en nuestro configuration.yml de esta manera:

  shell_command:# inicie el script que genera una instantánea para la lista de correo take_snapshot_webcam:'/config/scripts/takeSnapshotWebcam.sh'#starting our mjpg-streamer start_mgpg_streamer:' curl http://localhost/start_mjpgstrm.php'#stopping mjpg-streamer stop_mgpg_streamer:'curl http://localhost/stop_mjpgstrm.php'#start el script que genera instantáneas durante 5 segundos start_motion_rec:' curl http:// localhost / rec-motion-mjpg.php '# deténgalo stop_motion_rec:' curl http://localhost/rec-motion-mjpg-stop.php ' 

En la misma configuración.yml describiendo nuestro objeto para envío:

  notificar:- nombre:ha_sendmail plataforma:smtp # si el correo está en el servidor de gmail:smtp.gmail.com puerto:587 tiempo de espera:15 # de quien enviamos remitente:[correo electrónico protegido] cifrado:starttls nombre de usuario:[correo electrónico protegido] contraseña:passwd # a quien enviamos (puede usar un cuadro y enviárselo a usted mismo, por qué no) destinatario:- [correo electrónico protegido] sender_name:My Home Assistant  

¡Punto importante! Para que nuestro HA pueda conectarse y enviar correos electrónicos (el campo del remitente), debemos permitir que nuestro servicio HA use este buzón en gmail. Cómo hacer esto:enlace aquí:https://myaccount.google.com/lesssecureapps

Y además, describimos el mecanismo de automatización en sí mismo al habilitar la alarma home_alarm en automation.yaml:

  # primer paquete de acción (alias “activado por sensor si la seguridad está habilitada” - alias:'Activar alarma mientras está armado' # alias se activa cuando el sensor está en el Disparador de posición "on":- plataforma:estado entity_id:binary_sensor.sensor_hc_sr501 a:'on' # siempre que el modo de seguridad esté habilitado en ausencia de personas en casa condición "armado lejos":- condición:estado entity_id:panel de control de alarma.home_alarm state:armado_away # y luego realiza la acción acción:# Ejecutando mjpg-streamer (si está deshabilitado) - service:shell_command.start_mgpg_streamer # Ejecutando un script que graba desde la cámara - service:shell_command.start_motion_rec # Cambia la visualización de nuestra "Seguridad del hogar "tarjeta en el panel HA a la posición" alarma activada "- servicio:panel de control de alarma.alarm_trigger entity_id:panel de control de alarma.home_alarm  

El siguiente conjunto de condiciones y acciones es enviar un mensaje de consola cuando la "seguridad" está desactivada y desactivar nuestras secuencias de comandos de grabación de movimiento.

  - alias:'Enviar notificación cuando la alarma está desarmada' disparador:- plataforma:estado entity_id:alarm_control_panel.home_alarm to:'desarmed' action:- service:shell_command.stop_mgpg_streamer - service:shell_command.stop_motion_rec - service:persistent_notification.create data:message:La alarma está desarmada en {{estados ('sensor.date_time')}} " 

Y finalmente, el tercer enlace:envíe un correo electrónico con una foto:

  - alias:'Enviar notificación cuando se active una alarma' disparador:- plataforma:estado entity_id:alarm_control_panel.home_alarm to:'triggered' action:- service:persistent_notification.create data :mensaje:Notificación cuando se activa la alarma. Se detectó el sensor de movimiento HC-SR501. - delay:seconds:4 # ejecute nuestro script para crear un único script - service:script.webcam_snapshot # y consulte el objeto descrito en configuration.yaml:notify.ha_sendmail - service:notify.ha_sendmail data:title:'Intruder alert' message:'{{now (). strftime ("% H:% M% Y-% m-% d")}}:Notificación cuando se activa la alarma. Se detectó el sensor de movimiento HC-SR501. data:images:#enlace al script ya creado por el script.webcam_snapshot - /config/camera/snapshot.jpg  

Recuerde que en los archivos yaml, el marcado de línea es importante, y los caracteres de espacio antes de los comandos juegan un papel importante en la formación de bloques de código y su estructura. Verifique todos los cambios en su yaml a través de Home Assistant (en adelante HA) Configuración -> Controles del servidor -> Verificar configuración

Parece ser todo. ¡Y tu Raspberry pi se convierte en algo elegante! ...)

Aquí está - ¡Automatización HA funcional, configurada con sus propias manos! ¡Asegúrate de escribirme todo lo que piensas al respecto!

Y, si después de todo lee hasta el final, aquí están los enlaces prometidos:

Imagen y zip:https://viamybox.com/downloadpage

Proyecto Github:https://github.com/viatc/viamybox

Los archivos de configuración se describen aquí:configuration.yaml, automation.yaml, takeSnapshotWebcam.sh, rec-motion-mjpg.php, mov.py

hc-sr501, alarma de casa, asistente de casa, raspberry pi, видеорегистрация, датчик движения, подключение сигнализации, умный дом

Sin categoría

Fuente:sensor de movimiento, alarma, grabación de video en HA en Raspberry Pi


Proceso de manufactura

  1. Registrador de temperatura Raspberry Pi
  2. Sensor de temperatura Python y Raspberry Pi
  3. Estación meteorológica Raspberry Pi
  4. Sensor de temperatura de 1 cable DS1820 en Raspberry Pi (GPIO directamente)
  5. Sensor ultrasónico (HC-SR04) + Raspberry Pi
  6. Sistema de sensor de movimiento por infrarrojos de bricolaje para Raspberry Pi
  7. Creación de una red de sensores inalámbricos en su hogar
  8. Sensor de movimiento con Raspberry Pi
  9. Alarma de agua frambuesa pi 2 con t cobbler plus
  10. Sensor de humedad del suelo Raspberry Pi
  11. Sensor de pasillo digital Raspberry Pi en JAVA