Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Capteur de mouvement, alarme, enregistrement vidéo en HA sur Raspberry Pi

Connexion du capteur de mouvement, de l'alarme et de l'enregistrement vidéo dans Home Assistant sur Raspberry pi.

J'aimerais vous parler de ma petite expérience de travail avec Home Assistant (ci-après – HA) sur Raspberry pi. En outre, je parlerai de la connexion de la fonctionnalité d'enregistrement vidéo, du capteur de mouvement et, par conséquent, de la fonction de sécurité à domicile à la réception de photos par e-mail en cas de déclenchement de la « sécurité ».

Bien sûr, l'une des raisons est le désir de comprendre à partir de vos critiques ce que j'ai « fait de mal » lors de la mise en œuvre de ce scénario.

Il existe trois manières de configurer la fonctionnalité ci-dessus :« sans problème », « court » et « indépendant ». Dans le premier cas, vous pouvez télécharger l'image développée depuis le site https://ViaMyBox.com/downloadpage 

pour votre Raspberry pi, et vous pouvez voir à quoi tout ressemble dans le formulaire déjà configuré. Dans le second cas, vous pouvez télécharger le zip depuis le site ou depuis le projet github, l'installer puis installer l'image docker HA via l'utilitaire (sudo via-setup.sh) pour voir comment tout est configuré. Et enfin, la troisième façon est de mettre en place « tout à votre manière » :prenez quelque chose d'utile du site ou du projet githab, ou de ce tutoriel. Vous trouverez des liens vers tout cela à la fin de l'article.

Supposons que vous ayez déjà un Home Assistant (HA) en cours d'exécution. Dans cet article, nous ne considérerons que les aspects de la création de configurations yaml et de la description de la séquence de règles et de conditions qui conduisent à une action spécifique. Dans notre cas, l'action est la connexion du mode "sécurité" et le déclenchement du script, qui commence à prendre des photos dans les 5 secondes après l'activation du capteur de mouvement. Et par conséquent, Home Assistant envoie les photos capturées par courrier. Je ne suis pas un expert en yaml ou en création de configurations pour Home Assistant, mais en suivant les exemples de travail, j'ai obtenu une configuration de travail que je souhaite partager.

Tous les fichiers que nous contacterons, je les présenterai à la fin de l'article pour une considération plus pratique. Je ne vais pas aborder le fonctionnement des scripts d'enregistrement vidéo en bash ou en python dans cet exemple. Nous parlerons uniquement de Home Assistant. Mais si vous avez des questions, vous êtes les bienvenus !

Au final, j'ai tout ressemble à ça (le rouge surligné ce que nous allons considérer dans l'article) :

Naturellement, j'utilise Raspberry pi comme plate-forme. Et mon chemin vers les fichiers de configuration est /usr/share/hassio/homeassistant/ . Le chemin d'accès à vos fichiers de configuration peut différer de mon chemin. A cette époque, j'avais Home Assistant 0.101.3. Nous nous intéresserons aux fichiers de configuration dans ce répertoire :configuration.yaml et automation.yaml.

Après chaque modification de ces fichiers, il est important de se rappeler que vous devrez vérifier la configuration après nos modifications pour détecter d'éventuelles erreurs. Cela se fait dans le tableau de bord Home Assistant -> Configuration -> Contrôles du serveur -> Vérifier la configuration. Et puis, au même endroit, nous faisons Reload Automations et Reload Scripts, si la vérification a réussi. Et, en cas de doute, Server Management redémarre les mises à jour de configuration exactement dans le même onglet.

Le capteur de mouvement HC-SR501 est connecté au bus GPIO Raspberry pi. Il est nécessaire de connecter correctement les trois fils de contact au GPIO, et nous pourrons utiliser notre capteur en action. Le capteur a trois contacts :puissance gcc (+), zéro gnd ( -), contact de commande (données). Après avoir lu la description de GPIO, je les ai connectés à ma framboise comme suit. J'ai connecté le HC-SR501 au connecteur GPIO :pir#2 – 5,5 vvcc; pin#26 (13 row) – contact de données et pin#6-GND ( – ) du capteur.

Comme source photo, j'utilise soit un appareil photo USB, soit un appareil photo csi en conjonction avec mjpg-streamer. Nous ne décrirons pas comment installer et configurer mjpg-streamer sur Raspberry pi dans cet article. Il existe de nombreux exemples d'installation rapide sur Internet. Cependant, je tiens à dire que j'utilise les données de ce projet https://github.com/cncjs/cncjs/wiki/Setup-Guide:-Raspberry-Pi-%7C-MJPEG-Streamer-Install-&-Setup-&-FFMpeg-Recording  L'installation de ce module y est également décrite en détail. Ou utilisez n'importe quelle méthode qui vous convient pour obtenir des photos et des vidéos. Après tout, c'est à vous de décider quel script bash attacher à HA.

Décrivons maintenant notre capteur dans configuration.yml, disons, via la ligne de commande :

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

bien que l'utilisation de notepad++ avec winscp puisse être plus pratique.

Décrivons la séquence de réglages du HC-SR501 comme suit :

binary_sensor :- plate-forme :rpi_gpio #name :HC-SR501 ports :7 :Sensor HC-SR501 invert_logic :false 

Il convient de noter qu'ici un point important est joué par les paramètres dans les lignes qui décrivent la connexion aux contacts de contrôle (données) des capteurs :     pin#7

ports :

7 :Capteur HC-SR501

Home Assistant dispose d'un outil intégré pour activer la fonction de sécurité à domicile. Décrivons-le dans notre configuration.yaml, en utilisant la description : https://www.home-assistant.io/integrations/manual/

 alarm_control_panel :- plate-forme :nom du manuel :Home Alarmpendant_time :60 retard 40 déclenché :pending_time :0 code :1234 

Ce réglage signifie que nous avons 60 secondes pour quitter la maison (passé ce délai, l'alarme s'allumera), et 40 secondes pour l'éteindre (avec le mot de passe 1234) lorsque nous rentrerons à la maison. Pour une raison quelconque, vous partez toujours plus longtemps que vous ne venez.)

Nous allons maintenant décrire le mécanisme d'activation et de désactivation de la photographie lorsque le capteur de mouvement est déclenché dans notre configuration.yaml (plus d'informations sur le commutateur - plate-forme de ligne de commande peuvent être trouvées ici https://www.home-assistant.io/integrations/switch .ligne_commande/) :

 - plate-forme : commutateurs de ligne de commande :start_stop_motion_rec_timelapse :friendly_name : « Record motion timelapse video » 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' 

Ici, nous avons lié les commandes command_on enable et command_off disable à nos scripts qui contrôlent l'enregistrement de la caméra. Dans ce cas, lorsque vous activez command_on, 2 scripts sont exécutés séquentiellement. Cela démarre mjpg-streamer et démarre l'enregistrement sur le capteur de mouvement. L'accès aux scripts bash passe par le fichier php du site de travail sur le Raspberry pi. Pour ce faire, j'ai configuré nginx et l'accès Web, et lors de l'accès via le navigateur en tant que http:///start_mjpgstrm.php doit exécuter notre script php.

Nous n'envisageons pas de configurer l'accès Web dans cet article. De toute évidence, ce n'est pas sécurisé, mais du fait que j'ai HA sur docker, je suis confronté au fait que j'ai un environnement docker isolé. Et le "monde externe" de l'OS que je peux voir en accédant à mon site via php. Il existe probablement un tas de bonnes solutions de docker ou de gourou HA. S'il vous plaît, écrivez, ce serait intéressant de savoir!

Je laisserai la liste de ces scripts sous l'article, et nous ne nous attarderons pas dessus. Dans cet article, je souhaite suivre uniquement la formation d'une séquence d'actions dans Home Assistant.

Tout cela est placé dans l'objet start_stop_motion_rec_timelapse, qui sera notre interrupteur visuel, avec lequel nous gérerons l'enregistrement des photos lorsque le capteur de mouvement sera déclenché.

Nous pourrons visualiser ces objets créés par nos soins dans l'onglet Home Assistant-> Overview en basculant l'activation du mode de configuration Configure UI dans le coin supérieur droit

Pré-redémarrez le HA dans le navigateur dans l'onglet "Configuration -> Server Control" pour récupérer notre configuration.yaml.

Ensuite, sélectionnez le plus jaune en bas de la fenêtre du navigateur, cliquez sur la fiche Entités et liez nos objets créés aux cartes.

Pour notre capteur, sélectionnez la carte capteur. Cela ressemblera à ceci :

Comme vous pouvez le voir sur l'image, le deuxième champ d'entité contient le commutateur décrit ci-dessus :switch.start_stop_motion_rec_timelapse.

Il nous permet d'activer et de désactiver l'enregistrement de notre capteur de mouvement, que la fonction « sécurité à domicile » soit activée ou non. Et, en général, cela devrait déjà fonctionner après toutes les actions décrites ci-dessus.

Et, en conséquence, nous ajoutons la carte du panneau d'alarme :

Il y a un autre point intéressant ici. J'utilise Home Assistant comme conteneur docker. À cet égard, le chemin d'accès à notre script sera différent du chemin réel vers le fichier de script. Après tout, la structure de fichiers à l'intérieur du conteneur est virtualisée et liée à la structure de fichiers réelle via des volumes montés sur docker. Cela ressemble, par exemple, à ceci :Chemin à l'intérieur du conteneur :/config/scripts/ Chemin à l'intérieur du système d'exploitation :/usr/share/hassio/homeassiatnt/scripts. Regardez donc les paramètres de votre conteneur, comment ces volumes sont configurés dans le champ Binds. Si vous avez HA là-bas.

sudo docker inspect homeassistant|less 

Lorsque le détecteur de mouvement se déclenche, au moment où l'alarme se déclenche :je souhaite qu'en plus du fait qu'on commence à prendre des photos rapides (timelapsesnapshots), je reçois un avertissement par mail et une photo. J'ai parallélisé les processus. Dans le premier cas, l'enregistrement photo (timelapsesnapshots) se produit quelques secondes après le déclenchement du capteur. Pour ce faire, je lance mjpg-streamer curl http://localhost/start_mjpgstrm.php , lancez php :сurl http://localhost/rec-motion-mjpg.php . Il exécute à son tour le script python mov.py. Tous les fichiers et bundles décrits sont disponibles à la fin de l'article par le lien. Et un autre script takeSnapshotWebcam.sh prend une photo que j'envoie dans un e-mail. Je décris ces scripts dans notre configuration.yml de cette façon :

shell_command:#start le script qui génère un instantané pour la liste de diffusion 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 le script qui génère des instantanés pendant 5 secondes start_motion_rec:'curl http://localhost/ rec-motion-mjpg.php'#stop it stop_motion_rec:'curl http://localhost/rec-motion-mjpg-stop.php' 

Dans la même configuration.yml décrivant notre objet pour l'envoi :

notify :- name :ha_sendmail platform :smtp#if mail is on gmail server :smtp.gmail.com port :587 timeout :15#from who we send sender :[email protected] cryptage :starttls username :[email protected] mot de passe :passwd#à qui nous envoyons (vous pouvez utiliser une boîte et l'envoyer à vous-même, pourquoi pas) destinataire :- [email protected] sender_name :My Home Assistant 

Point important! Pour que notre HA puisse se connecter et envoyer des e-mails (le champ expéditeur), nous devons autoriser notre service HA à utiliser cette boîte aux lettres sur gmail. Comment faire ce lien ici : https://myaccount.google.com/lesssecureapps

Et plus loin, nous décrivons le mécanisme d'automatisation lui-même lors de l'activation de l'alarme home_alarm dans automation.yaml :

#first action bundle (alias « déclenché par le capteur si la sécurité est activée » - alias :'Déclencher l'alarme pendant l'armement'#alias est déclenché lorsque le capteur est dans le déclencheur de position « on » :- plate-forme :état entity_id :binary_sensor.sensor_hc_sr501 à :'on'#sous réserve que le mode de sécurité soit activé en l'absence de personnes à la maison condition « armé » :- condition :état :état entity_id :alarm_control_panel.home_alarm état :arm_away#puis effectue l'action action :#Running mjpg-streamer (si désactivé) - service :shell_command.start_mgpg_streamer#Exécution d'un script qui enregistre à partir de la caméra - service :shell_command.start_motion_rec#Modifiez la visualisation de notre « Sécurité à domicile " sur le panneau HA à la position « alarme déclenchée » - service :alarm_control_panel.alarm_trigger entity_id :alarm_control_panel.home_alarm 

Le prochain ensemble de conditions et d'actions consiste à envoyer un message de console lorsque la « sécurité » est désactivée et à désactiver nos scripts d'enregistrement de mouvement.

- alias :'Envoyer une notification lorsque l'alarme est désarmée' déclencheur :- plate-forme :état entity_id :alarm_control_panel.home_alarm à :'désarmé' action :- service :shell_command.stop_mgpg_streamer - service :shell_command.stop_motion_rec - service :persistent_notification.create data :message :l'alarme est désarmée à {{ states('sensor.date_time') }}" 

Et enfin, le troisième lien :envoyer un e-mail avec une photo :

- alias :'Envoyer une notification lorsque l'alarme est déclenchée' déclencheur :- plate-forme :état entity_id :alarm_control_panel.home_alarm à :action 'triggered' :- service :persistent_notification.create data :message :notification lorsque l'alarme est déclenchée. Détecteur de mouvement HC-SR501 détecté. - délai :secondes :4#exécutez notre script pour créer un seul script - service :script.webcam_snapshot# et reportez-vous à l'objet décrit dans configuration.yaml :notify.ha_sendmail - service :notify.ha_sendmail data :titre :'Intruder alert' message :'{{now().strftime("%H:%M %Y-%m-%d")}} : Notification lorsque l'alarme est déclenchée. Détecteur de mouvement HC-SR501 détecté.' data:images:#lien vers le script déjà réalisé par le script.webcam_snapshot - /config/camera/snapshot.jpg 

N'oubliez pas que dans les fichiers yaml, le balisage de ligne est important et que les espaces avant les commandes jouent un rôle important dans la formation des blocs de code et de sa structure. Vérifiez toutes les modifications apportées à votre yaml via Home Assistant (ci-après HA) Configuration -> Server Controls -> Check Config

Il semble que ce soit tout. Et votre Raspberry pi se transforme en quelque chose d'élégant !..)

Voilà automatisation HA fonctionnelle, configurée de vos propres mains ! Assurez-vous de m'écrire tout ce que vous en pensez !

Et, si après tout vous avez lu jusqu'au bout, voici les liens promis :

Image et zip : https://viamybox.com/downloadpage

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

Les fichiers de configuration sont décrits ici : configuration.yaml, automation.yaml, takeSnapshotWebcam.sh, rec-motion-mjpg.php, mov.py

hc-sr501, alarme à domicile, assistant à domicile, raspberry pi, видеорегистрация, датчик движения, подключение сигнализации, умный дом

Non classé

Source :Détecteur de mouvement, alarme, enregistrement vidéo en HA sur Raspberry Pi


Processus de fabrication

  1. Enregistreur de température Raspberry Pi
  2. Capteur de température Python et Raspberry Pi
  3. Station météo Raspberry Pi
  4. Capteur de température 1 fil DS1820 au Raspberry Pi (GPIO directement)
  5. Capteur à ultrasons (HC-SR04) + Raspberry Pi
  6. Système de capteur de mouvement infrarouge DIY pour Raspberry Pi
  7. Construire un réseau de capteurs sans fil dans votre maison
  8. Capteur de mouvement utilisant Raspberry Pi
  9. Avertisseur d'eau Raspberry Pi 2 avec t cobbler plus