Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Bewegungssensor, Alarm, Videoaufzeichnung in HA auf Raspberry Pi

Verbindung von Bewegungssensor, Alarm und Videoaufzeichnung in Home Assistant auf Raspberry Pi.

Ich möchte Ihnen von meiner kleinen Erfahrung in der Arbeit mit Home Assistant (im Folgenden – HA) auf Raspberry Pi erzählen. Außerdem werde ich über die Verbindung der Videoregistrierungsfunktion, des Bewegungssensors und entsprechend der Heimsicherheitsfunktion mit dem Empfang von Fotos per E-Mail sprechen, falls „Sicherheit“ ausgelöst wird.

Einer der Gründe ist natürlich der Wunsch, aus Ihren Bewertungen zu verstehen, was ich bei der Umsetzung dieses Szenarios „falsch gemacht“ habe.

Es gibt drei Möglichkeiten, die obige Funktionalität zu konfigurieren:„ohne Probleme“, kurz“ und „unabhängig“. Im ersten Fall können Sie das entwickelte Bild von der Website https://ViaMyBox.com/downloadpage 

. herunterladen

für Ihren Raspberry Pi, und Sie können sehen, wie alles im bereits konfigurierten Formular aussieht. Im zweiten Fall können Sie die ZIP-Datei von der Site oder vom Github-Projekt herunterladen, installieren und dann das HA-Docker-Image über das Dienstprogramm (sudo via-setup.sh) installieren, um zu sehen, wie alles eingerichtet ist. Und schließlich besteht die dritte Möglichkeit darin, „alles auf Ihre Weise“ einzurichten:Nehmen Sie etwas Nützliches von der Site oder dem Githab-Projekt oder aus diesem Tutorial. Links zu all dem findest du am Ende des Artikels.

Angenommen, Sie haben bereits einen laufenden Home Assistant (HA). In diesem Artikel betrachten wir nur die Aspekte der Erstellung von Yaml-Konfigurationen und die Beschreibung der Abfolge von Regeln und Bedingungen, die zu einer bestimmten Aktion führen. In unserem Fall ist die Aktion das Zuschalten des „Sicherheits“-Modus und das Auslösen des Skripts, das innerhalb von 5 Sekunden nach Aktivierung des Bewegungssensors mit der Aufnahme von Fotos beginnt. Und als Ergebnis sendet Home Assistant die aufgenommenen Fotos per E-Mail. Ich bin kein Experte für Yaml oder das Erstellen von Konfigurationen für Home Assistant, aber nach den Arbeitsbeispielen habe ich eine funktionierende Konfiguration, die ich teilen möchte.

Alle Dateien, die wir kontaktieren werden, werde ich am Ende des Artikels zur bequemeren Betrachtung anordnen. Ich werde in diesem Beispiel nicht darauf eingehen, wie Videoaufzeichnungsskripte in Bash oder Python funktionieren. Wir werden nur über Home Assistant sprechen. Aber wenn Sie Fragen haben – Sie sind herzlich willkommen!

Am Ende sieht bei mir alles so aus (rot hervorgehoben, was wir im Artikel betrachten werden):

Als Plattform verwende ich natürlich Raspberry Pi. Und mein Pfad zu den Konfigurationsdateien ist /usr/share/hassio/homeassistant/ . Der Pfad zu Ihren Konfigurationsdateien kann von meinem Pfad abweichen. Damals hatte ich Home Assistant 0.101.3. Uns interessieren die Konfigurationsdateien in diesem Verzeichnis:configuration.yaml und automation.yaml.

Denken Sie nach jeder Änderung an diesen Dateien daran, dass Sie die Konfiguration nach unseren Änderungen auf mögliche darin enthaltene Fehler überprüfen müssen. Dies erfolgt im Home Assistant-Dashboard -> Konfiguration -> Serversteuerung -> Konfiguration überprüfen. Und dann führen wir an derselben Stelle Neuladen von Automatisierungen und Neuladen von Skripten durch, wenn die Prüfung erfolgreich war. Und im Zweifelsfall startet die Serververwaltung die Konfigurationsaktualisierungen genau auf demselben Tab neu.

Der Bewegungssensor HC-SR501 wird an den Raspberry Pi GPIO-Bus angeschlossen. Es ist notwendig, die drei Kontaktdrähte richtig mit dem GPIO zu verbinden, und wir können unseren Sensor in Aktion verwenden. Der Sensor hat drei Kontakte:Strom gcc (+), Null Masse (-), Steuerkontakt (Daten). Nachdem ich die Beschreibung von GPIO gelesen hatte, habe ich sie wie folgt mit meiner Himbeere verbunden. Ich habe den HC-SR501 an den GPIO-Anschluss angeschlossen:pir#2 – 5.5 vvcc; Pin#26 (13 Reihe) – Datenkontakt und Pin#6-GND ( – ) des Sensors.

Als Fotoquelle verwende ich entweder eine USB-Kamera oder eine CSI-Kamera in Verbindung mit mjpg-streamer. Wir werden in diesem Beitrag nicht beschreiben, wie Sie mjpg-streamer auf Raspberry Pi installieren und konfigurieren. Beispiele für eine schnelle Installation gibt es viele im Internet. Ich möchte jedoch sagen, dass ich Daten aus diesem Projekt verwende https://github.com/cncjs/cncjs/wiki/Setup-Guide:-Raspberry-Pi-%7C-MJPEG-Streamer-Install-&-Setup-&-FFMpeg-Recording  Die Installation dieses Moduls ist dort auch ausführlich beschrieben. Oder verwenden Sie eine für Sie geeignete Methode, um Fotos und Videos zu erhalten. Schließlich liegt es an Ihnen zu entscheiden, welches Bash-Skript Sie an HA anhängen möchten.

Beschreiben wir unseren Sensor jetzt in der configuration.yml, sagen wir, über die Befehlszeile:

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

obwohl die Verwendung von notepad++ mit winscp bequemer sein kann..

Beschreiben wir die Reihenfolge der Einstellungen für HC-SR501 wie folgt:

binary_sensor:- Plattform:rpi_gpio #name:HC-SR501-Ports:7:Sensor HC-SR501 invert_logic:false 

Anzumerken ist, dass hier ein wichtiger Punkt durch die Einstellungen in den Zeilen, die die Verbindung zu den Steuer-(Daten-)Kontakten der Sensoren beschreiben, gespielt wird:     Pin#7

Ports:

7:Sensor HC-SR501

Home Assistant verfügt über ein integriertes Tool zum Aktivieren der Heimsicherheitsfunktion. Beschreiben wir es in unserer configuration.yaml mit der Beschreibung: https://www.home-assistant.io/integrations/manual/

 alarm_control_panel:- Plattform:manuell Name:Home Alarm anstehende_Zeit:60 Verzögerungszeit 40 ausgelöst:anstehende_Zeit:0 Code:1234 

Diese Einstellung bedeutet, dass wir 60 Sekunden Zeit haben, das Haus zu verlassen (nach dieser Zeit schaltet sich der Wecker ein) und 40 Sekunden, um ihn auszuschalten (mit dem Passwort 1234), wenn wir nach Hause zurückkehren. Aus irgendeinem Grund gehst du immer länger als du kommst.)

Wir werden nun den Mechanismus zum Aktivieren und Deaktivieren der Fotografie beim Auslösen des Bewegungssensors in unserer configuration.yaml beschreiben (weitere Informationen zum Switch – Command_line-Plattform finden Sie hier https://www.home-assistant.io/integrations/switch .command_line/):

 - Plattform:Befehlszeilenschalter:start_stop_motion_rec_timelapse:friendly_name:'Bewegungszeitraffervideo aufzeichnen' 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' 

Hier haben wir die Befehle command_on enable und command_off disable mit unseren Skripten verknüpft, die die Kameraaufzeichnung steuern. In diesem Fall werden beim Aktivieren von command_on 2 Skripte nacheinander ausgeführt. Dies startet den mjpg-streamer und startet die Aufnahme auf dem Bewegungssensor. Der Zugriff auf Bash-Skripte erfolgt über die PHP-Datei der Arbeitsseite auf dem Raspberry Pi. Dazu habe ich nginx und Webzugriff eingerichtet, und beim Zugriff über den Browser als http:///start_mjpgstrm.php  sollte unser PHP-Skript ausgeführt werden.

Das Einrichten des Webzugriffs betrachten wir in diesem Artikel nicht. Dies ist natürlich nicht sicher, aber aufgrund der Tatsache, dass ich HA auf Docker habe, bin ich mit der Tatsache konfrontiert, dass ich eine isolierte Docker-Umgebung habe. Und die „Außenwelt“ des Betriebssystems kann ich sehen, indem ich über PHP auf meine Site zugreife. Es gibt wahrscheinlich eine Reihe von richtigen Lösungen von Docker oder HA-Guru. Bitte schreiben Sie, es wäre interessant zu wissen!

Ich werde die Auflistung dieser Skripte unter dem Artikel belassen, und wir werden nicht darauf eingehen. In diesem Artikel möchte ich nur die Bildung einer Aktionsfolge in Home Assistant verfolgen.

All dies wird in das start_stop_motion_rec_timelapse-Objekt platziert, das unser visueller Schalter sein wird, mit dem wir die Aufnahme von Fotos verwalten, wenn der Bewegungssensor ausgelöst wird.

Wir werden diese von uns erstellten Objekte im Home Assistant-> Übersichts-Tab visualisieren können, indem wir die Aktivierung des Konfigurationsmodus UI konfigurieren in der oberen rechten Ecke umschalten

Starten Sie den HA im Browser auf der Registerkarte "Konfiguration -> Serversteuerung" neu, um unsere configuration.yaml abzurufen.

Wählen Sie als Nächstes das gelbe Plus am unteren Rand des Browserfensters aus, klicken Sie auf die Karte Entitäten und verknüpfen Sie unsere erstellten Objekte mit den Karten.

Wählen Sie für unseren Sensor die Sensorkarte aus. Es wird so aussehen:

Wie Sie im Bild sehen können, enthält das zweite Entity-Feld den oben beschriebenen Schalter:switch.start_stop_motion_rec_timelapse.

Es ermöglicht uns, unsere Bewegungssensor-Aufzeichnung ein- und auszuschalten, unabhängig davon, ob die Funktion „Home Security“ aktiviert ist. Und im Allgemeinen sollte es nach all den oben beschriebenen Aktionen bereits funktionieren.

Dementsprechend fügen wir die Karte der Alarmzentrale hinzu:

Hier gibt es noch einen weiteren interessanten Punkt. Ich verwende Home Assistant als Docker-Container. In dieser Hinsicht weicht der Pfad zu unserem Skript vom tatsächlichen Pfad zur Skriptdatei ab. Schließlich wird die Dateistruktur innerhalb des Containers virtualisiert und über Docker-Mounting-Volumes mit der eigentlichen Dateistruktur verknüpft. Das sieht zum Beispiel so aus:Pfad im Container:/config/scripts/ Pfad im Betriebssystem:/usr/share/hassio/homeassiatnt/scripts. Sehen Sie sich also die Einstellungen Ihres Containers an, wie diese Volumes im Feld Binds konfiguriert sind. Wenn Sie dort HA haben.

sudo docker inspect homeassistant|less 

Wenn der Bewegungssensor ausgelöst wird, in dem Moment, in dem der Alarm aktiviert wird:Ich möchte, dass ich zusätzlich zu der Tatsache, dass wir mit schnellen Fotos (Zeitraffer-Schnappschüssen) beginnen, eine Warnung per Post und ein Bild erhalten würde. Ich habe die Prozesse parallelisiert. Im ersten Fall erfolgt die Fotoaufzeichnung (Zeitraffer-Schnappschüsse) innerhalb weniger Sekunden nach Auslösen des Sensors. Dazu führe ich mjpg-streamer curl http://localhost/start_mjpgstrm.php aus, starte php:сurl http://localhost/rec-motion-mjpg.php . Es führt wiederum das Python-Skript mov.py aus. Alle beschriebenen Dateien und Bundles sind am Ende des Artikels unter dem Link verfügbar. Und ein weiteres Skript takeSnapshotWebcam.sh macht ein Bild, das ich per E-Mail schicke. Ich beschreibe diese Skripte in unserer configuration.yml so:

shell_command:#starte das Skript das einen Snapshot für die Mailingliste generiert 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'#starte das Skript, das für 5 Sekunden Snapshots generiert start_motion_rec:'curl http://localhost/ rec-motion-mjpg.php'#stop it stop_motion_rec:'curl http://localhost/rec-motion-mjpg-stop.php' 

In der gleichen configuration.yml, die unser Objekt zum Mailen beschreibt:

benachrichtigen:- Name:ha_sendmail Plattform:smtp#wenn E-Mail auf dem Gmail-Server ist:smtp.gmail.com Port:587 Zeitüberschreitung:15#von wem wir den Absender senden:[email protected] Verschlüsselung:starttls Benutzername:[email protected] Passwort:passwd#an wen wir senden (Sie können ein Feld verwenden und es an sich selbst senden, warum nicht) Empfänger:- [email protected] Absendername:My Home Assistant 

Wichtiger Punkt! Damit unser HA eine Verbindung herstellen und E-Mails senden kann (das Absenderfeld), müssen wir unserem HA-Dienst erlauben, dieses Postfach in Google Mail zu verwenden. So geht dieser Link hier: https://myaccount.google.com/lesssecureapps

Außerdem beschreiben wir den Automatisierungsmechanismus selbst beim Aktivieren des home_alarm-Alarms in automation.yaml:

#erstes Aktionspaket (Alias ​​„vom Sensor ausgelöst, wenn Sicherheit aktiviert ist“- Alias:'Alarm auslösen, während weg scharf geschaltet'#Alias ​​wird ausgelöst, wenn sich der Sensor im Trigger Position „on“:- Plattform:state entity_id:binary_sensor.sensor_hc_sr501 to:'on'#vorausgesetzt, dass der Sicherheitsmodus bei Abwesenheit von Personen zu Hause aktiviert ist state:bewaffnet_away#und führt dann die Aktion aus:#Mjpg-Streamer ausführen (falls deaktiviert) - service:shell_command.start_mgpg_streamer#Ein Skript ausführen, das von der Kamera aufzeichnet - service:shell_command.start_motion_rec#Visualisierung unserer "Home Security" ändern " Karte auf der HA-Zentrale in die Position "Alarm ausgelöst" - Service:alarm_control_panel.alarm_trigger entity_id:alarm_control_panel.home_alarm 

Der nächste Satz von Bedingungen und Aktionen besteht darin, eine Konsolennachricht zu senden, wenn "Sicherheit" deaktiviert ist, und unsere Bewegungsaufzeichnungsskripte zu deaktivieren.

- Alias:'Benachrichtigung bei unscharfem Alarm senden' Trigger:- Plattform:Entity_id angeben:alarm_control_panel.home_alarm an:Aktion 'disarmed':- service:shell_command.stop_mgpg_streamer - service:shell_command.stop_motion_rec - service:persistent_notification.create data:message:Der Alarm ist deaktiviert um {{ States('sensor.date_time') }}" 

Und schließlich der dritte Link - eine E-Mail mit einem Foto senden:

- Alias:'Benachrichtigung bei Alarmauslösung senden' Trigger:- Plattform:state entity_id:alarm_control_panel.home_alarm an:'triggered' action:- service:persistent_notification.create data :Nachricht:Benachrichtigung bei Alarmauslösung. Bewegungssensor HC-SR501 erkannt. - delay:Sekunden:4#führen Sie unser Skript zum Erstellen eines einzelnen Skripts aus - service:script.webcam_snapshot#und verweisen Sie auf das beschriebene Objekt in der configuration.yaml:notify.ha_sendmail - service:notify.ha_sendmail data:title:'Intruder alert' Nachricht:'{{now().strftime("%H:%M %Y-%m-%d")}}:Benachrichtigung bei Alarmauslösung. Bewegungssensor HC-SR501 erkannt.' data:images:#link zu dem bereits von script.webcam_snapshot erstellten Skript - /config/camera/snapshot.jpg 

Denken Sie daran, dass in yaml-Dateien Zeilenmarkierungen wichtig sind und Leerzeichen vor Befehlen eine wichtige Rolle bei der Bildung von Codeblöcken und ihrer Struktur spielen. Überprüfen Sie alle Änderungen an Ihrem Yaml über Home Assistant (im Folgenden HA) Konfiguration -> Serversteuerung -> Konfiguration überprüfen

Es scheint alles zu sein. Und aus Ihrem Raspberry Pi wird etwas Elegantes!..)

Hier ist es funktionierende HA-Automatisierung, mit Ihren eigenen Händen konfiguriert! Schreib mir unbedingt alles was du dazu denkst!

Und falls du doch bis zum Ende gelesen hast, hier die versprochenen Links:

Bild und Zip: https://viamybox.com/downloadpage

Github-Projekt: https://github.com/viatc/viamybox

Konfigurationsdateien werden hier beschrieben: configuration.yaml, automation.yaml, takeSnapshotWebcam.sh, rec-motion-mjpg.php, mov.py

hc-sr501, Home Alarm, Home Assistant, Raspberry Pi, видеорегистрация, датчик движения, подключение сигнализации, умный дом

Nicht kategorisiert

Quelle:Bewegungssensor, Alarm, Videoaufzeichnung in HA auf Raspberry Pi


Herstellungsprozess

  1. Himbeer-Pi-Temperaturlogger
  2. Python- und Raspberry Pi-Temperatursensor
  3. Raspberry Pi Wetterstation
  4. 1-Draht-Temperatursensor DS1820 am Raspberry Pi (GPIO direkt)
  5. Ultraschallsensor (HC-SR04) + Raspberry Pi
  6. DIY Infrarot-Bewegungssensorsystem für Raspberry Pi
  7. Aufbau eines drahtlosen Sensornetzwerks in Ihrem Zuhause
  8. Bewegungssensor mit Raspberry Pi
  9. Raspberry Pi 2 Wasseralarm mit t Schuster plus
  10. Raspberry Pi Bodenfeuchtigkeitssensor