Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Bewegingssensor, alarm, video-opname in HA op Raspberry Pi

De bewegingssensor, alarm en video-opname in Home Assistant op Raspberry pi aansluiten.

Ik wil je graag vertellen over mijn kleine ervaring met het werken met Home Assistant (hierna - HA) op Raspberry pi. Verder zal ik het hebben over het verbinden van de videoregistratiefunctionaliteit, de bewegingssensor en, dienovereenkomstig, de huisbeveiligingsfunctie met het ontvangen van foto's per e-mail in het geval van activering van "beveiliging".

Een van de redenen is natuurlijk de wens om uit uw beoordelingen te begrijpen wat ik "fout heb gedaan" bij het implementeren van dit scenario.

Er zijn drie manieren om bovenstaande functionaliteit te configureren:"zonder probleem", kort" en "onafhankelijk". In het eerste geval kunt u de ontwikkelde afbeelding downloaden van de site https://ViaMyBox.com/downloadpage 

voor je Raspberry pi, en je kunt zien hoe alles eruit ziet in de reeds geconfigureerde vorm. In het tweede geval kun je de zip downloaden van de site of van het github-project, het installeren en vervolgens de HA-docker-image installeren via het hulpprogramma (sudo via-setup.sh) om te zien hoe alles is ingesteld. En tot slot, de derde manier is om "alles op je eigen manier" in te stellen:neem iets nuttigs van de site of het Githab-project, of uit deze tutorial. Links naar dit alles vindt u aan het einde van het artikel.

Stel dat je al een Home Assistant (HA) hebt draaien. In dit artikel gaan we alleen in op de aspecten van het maken van yaml-configuraties en het beschrijven van de volgorde van regels en voorwaarden die tot een specifieke actie leiden. In ons geval is de actie de verbinding van de "beveiligings" -modus en het activeren van het script, dat begint met het maken van foto's binnen 5 seconden nadat de bewegingssensor is geactiveerd. En als resultaat verstuurt Home Assistant de gemaakte foto's per post. Ik ben geen expert op het gebied van yaml of het maken van configuraties voor Home Assistant, maar door de werkende voorbeelden te volgen, heb ik een werkende configuratie die ik wil delen.

Alle bestanden waarmee we contact zullen opnemen, zal ik aan het einde van het artikel opmaken voor een gemakkelijkere overweging. Ik ga in dit voorbeeld niet in op hoe video-opnamescripts werken in bash of python. We zullen het alleen hebben over Home Assistant. Maar als u vragen heeft, bent u van harte welkom!

Uiteindelijk zie ik dat alles er zo uitziet (rood gemarkeerd wat we in het artikel zullen bespreken):

Natuurlijk gebruik ik Raspberry pi als platform. En mijn pad naar de configuratiebestanden is /usr/share/hassio/homeassistant/ . Het pad naar uw configuratiebestanden kan verschillen van mijn pad. Ik had toen Home Assistant 0.101.3. We zijn geïnteresseerd in de configuratiebestanden in deze map:configuration.yaml en automation.yaml.

Na elke wijziging van deze bestanden is het belangrijk om te onthouden dat u de configuratie na onze wijzigingen moet controleren op mogelijke fouten die erin zijn gemaakt. Dit doe je in het Home Assistant-dashboard -> Configuratie -> Serverbesturing -> Configuratie controleren. En dan, op dezelfde plaats, doen we Reload Automations en Reload Scripts, als de controle succesvol was. En bij twijfel start Serverbeheer de configuratie-updates opnieuw op precies op hetzelfde tabblad.

De HC-SR501 bewegingssensor wordt aangesloten op de Raspberry pi GPIO-bus. Het is noodzakelijk om de drie contactdraden correct op de GPIO aan te sluiten, en we zullen onze sensor in actie kunnen gebruiken. De sensor heeft drie contacten:power gcc (+), zero gnd ( -), stuurcontact (data). Na het lezen van de beschrijving van GPIO heb ik ze als volgt aangesloten op mijn Raspberry. Ik heb de HC-SR501 aangesloten op de GPIO-connector:pir#2 – 5.5 vvcc; pin#26 (13 rijen) – datacontact en pin#6-GND ( – ) van de sensor.

Als fotobron gebruik ik een usb-camera of een csi-camera in combinatie met mjpg-streamer. We zullen in dit bericht niet beschrijven hoe mjpg-streamer op Raspberry pi moet worden geïnstalleerd en geconfigureerd. Er zijn veel voorbeelden van snelle installatie op internet. Ik wil echter zeggen dat ik gegevens van dit project gebruik https://github.com/cncjs/cncjs/wiki/Setup-Guide:-Raspberry-Pi-%7C-MJPEG-Streamer-Install-&-Setup-&-FFMpeg-Recording De installatie van deze module wordt daar ook uitgebreid beschreven. Of gebruik een methode die voor u handig is om foto's en video's te krijgen. Het is tenslotte aan jou om te beslissen welk bash-script je aan HA wilt koppelen.

Laten we onze sensor nu beschrijven in configuration.yml, laten we zeggen, via de opdrachtregel:

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

hoewel het gebruik van notepad++ met winscp handiger kan zijn..

Laten we de volgorde van instellingen voor de HC-SR501 als volgt beschrijven:

binary_sensor:- platform:rpi_gpio #name:HC-SR501 poorten:7:Sensor HC-SR501 invert_logic:false 

Opgemerkt moet worden dat hier een belangrijk punt wordt gespeeld door de instellingen in de regels die de verbinding met de besturings(data)contacten van de sensoren beschrijven:     pin#7

poorten:

7:Sensor HC-SR501

Home Assistant heeft een ingebouwde tool om de huisbeveiligingsfunctie in te schakelen. Laten we het beschrijven in onze configuration.yaml, met behulp van de beschrijving: https://www.home-assistant.io/integrations/manual/

 alarm_control_panel:- platform:handleiding naam:Home Alarm pending_time:60 vertragingstijd 40 geactiveerd:pending_time:0 code:1234 

Deze instelling houdt in dat we 60 seconden hebben om het huis te verlaten (na deze tijd gaat het alarm af) en 40 seconden om het uit te schakelen (met het wachtwoord 1234) wanneer we thuiskomen. Om de een of andere reden vertrek je altijd langer dan je komt.)

We zullen nu het mechanisme beschrijven voor het in- en uitschakelen van fotografie wanneer de bewegingssensor wordt geactiveerd in onze configuration.yaml (meer informatie over de switch - command_line-platform vindt u hier https://www.home-assistant.io/integrations/switch .command_line/):

 - platform:command_line switches: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' 

Hier hebben we de command_on enable en command_off disable commando's gekoppeld aan onze scripts die camera-opname regelen. In dit geval worden, wanneer u command_on inschakelt, 2 scripts achter elkaar uitgevoerd. Dit start mjpg-streamer en begint met opnemen op de bewegingssensor. Toegang tot bash-scripts gaat via het php-bestand van de werksite op de Raspberry pi. Om dit te doen, heb ik nginx en webtoegang ingesteld en bij toegang via de browser als http:///start_mjpgstrm.php  moet ons php-script worden uitgevoerd.

In dit artikel beschouwen we het instellen van webtoegang niet. Het is duidelijk dat dit niet veilig is, maar vanwege het feit dat ik HA op docker heb, word ik geconfronteerd met het feit dat ik een geïsoleerde docker-omgeving heb. En de "externe wereld" van het besturingssysteem kan ik zien door mijn site te openen via php. Er zijn waarschijnlijk een heleboel juiste oplossingen van docker of HA-goeroe. Schrijf alsjeblieft, het zou interessant zijn om te weten!

Ik laat de lijst van deze scripts onder het artikel staan ​​en we zullen er niet bij stilstaan. In dit artikel wil ik alleen de vorming van een reeks acties in Home Assistant volgen.

Dit alles wordt geplaatst in het start_stop_motion_rec_timelapse-object, dat onze visuele schakelaar zal zijn, waarmee we de opname van foto's zullen beheren wanneer de bewegingssensor wordt geactiveerd.

We kunnen deze door ons gemaakte objecten visualiseren op het tabblad Home Assistant-> Overzicht door de activering van de configuratiemodus UI configureren in de rechterbovenhoek te wijzigen

Start de HA opnieuw op in de browser op het tabblad "Configuratie -> Serverbeheer" om onze configuration.yaml op te halen.

Selecteer vervolgens het gele plusje onderaan het browservenster, klik op de kaart Entiteiten en koppel onze gemaakte objecten aan de kaarten.

Selecteer voor onze sensor de sensorkaart. Het ziet er als volgt uit:

Zoals je op de afbeelding kunt zien, bevat het tweede entiteitsveld de hierboven beschreven schakelaar:switch.start_stop_motion_rec_timelapse.

Hiermee kunnen we onze bewegingssensoropname in- en uitschakelen, ongeacht of de functie "huisbeveiliging" is ingeschakeld. En over het algemeen zou het al moeten werken na alle hierboven beschreven acties.

En dienovereenkomstig voegen we de kaart van het alarmpaneel toe:

Er is hier nog een interessant punt. Ik gebruik Home Assistant als een docker-container. In dit opzicht zal het pad naar ons script verschillen van het daadwerkelijke pad naar het scriptbestand. De bestandsstructuur in de container is immers gevirtualiseerd en via docker-mounted volumes gekoppeld aan de daadwerkelijke bestandsstructuur. Dit ziet er bijvoorbeeld zo uit:Pad in de container:/config/scripts/ Pad in het besturingssysteem:/usr/share/hassio/homeassiatnt/scripts. Kijk dus naar de instellingen van je container, hoe deze volumes zijn geconfigureerd in het veld Binds. Als je daar HA hebt.

sudo docker inspect homeassistant|less 

Wanneer de bewegingssensor wordt geactiveerd, op het moment dat het alarm wordt geactiveerd:ik wil dat ik naast het feit dat we snelle foto's gaan maken (timelapsesnapshots), ik een waarschuwing in de mail en een foto zou ontvangen. Ik parallelleerde de processen. In het eerste geval vindt foto-logging (timelapsesnapshots) plaats binnen enkele seconden nadat de sensor is geactiveerd. Hiervoor voer ik mjpg-streamer curl http://localhost/start_mjpgstrm.php uit, start php:сurl http://localhost/rec-motion-mjpg.php. Het voert op zijn beurt het python-script mov.py uit. Alle beschreven bestanden en bundels zijn beschikbaar aan het einde van het artikel via de link. En een ander script takeSnapshotWebcam.sh maakt een foto die ik in een e-mail stuur. Ik beschrijf deze scripts in onze configuration.yml op deze manier:

shell_command:#start het script dat een snapshot genereert voor de mailinglijst 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 het script dat gedurende 5 seconden snapshots genereert start_motion_rec:'curl http://localhost/ rec-motion-mjpg.php'#stop it stop_motion_rec:'curl http://localhost/rec-motion-mjpg-stop.php' 

In dezelfde configuratie.yml die ons object voor mailing beschrijft:

melding:- naam:ha_sendmail platform:smtp#if mail is op gmail-server:smtp.gmail.com poort:587 time-out:15#van wie we afzender sturen:[email protected] encryptie:starttls gebruikersnaam:[email protected] wachtwoord:passwd#naar wie we sturen (je kunt één box gebruiken en deze naar jezelf sturen, waarom niet) ontvanger:- [email protected] afzendernaam:My Home Assistant 

Belangrijk punt! Om ervoor te zorgen dat onze HA verbinding kan maken en e-mails kan verzenden (het veld afzender), moeten we onze HA-service toestaan ​​deze mailbox op Gmail te gebruiken. Hoe u deze doet, link hier: https://myaccount.google.com/lesssecureapps

En verder beschrijven we het automatiseringsmechanisme zelf bij het inschakelen van het alarm home_alarm in automation.yaml:

#eerste actiebundel (alias "getriggerd door sensor als beveiliging is ingeschakeld"- alias:'Trigger alarm terwijl uitgeschakeld'#alias wordt getriggerd wanneer de sensor in de "aan" positie trigger:- platform:status entiteit_id:binary_sensor.sensor_hc_sr501 naar:'aan'#mits de beveiligingsmodus is ingeschakeld bij afwezigheid van mensen thuis "uitgeschakeld" voorwaarde:- voorwaarde:status entiteit_id:alarm_control_panel.home_alarm staat:gewapend_away#en voert vervolgens de actieactie uit:#Mjpg-streamer uitvoeren (indien uitgeschakeld) - service:shell_command.start_mgpg_streamer#Een script uitvoeren dat opneemt vanaf de camera - service:shell_command.start_motion_rec#Wijzig de visualisatie van onze "Home security " kaart op het HA-paneel naar de positie "alarm geactiveerd" - service:alarm_control_panel.alarm_trigger entiteit_id:alarm_control_panel.home_alarm 

De volgende reeks voorwaarden en acties is het verzenden van een consolebericht wanneer "beveiliging" is uitgeschakeld en het uitschakelen van onze bewegingsopnamescripts.

- alias:'Stuur melding wanneer alarm is uitgeschakeld' trigger:- platform:status entiteit_id:alarm_control_panel.home_alarm naar:'ontwapende' actie:- service:shell_command.stop_mgpg_streamer - service:shell_command.stop_motion_rec - service:persistent_notification.create data:bericht:het alarm is uitgeschakeld om {{states('sensor.date_time') }}" 

En tot slot, de derde link - stuur een e-mail met een foto:

- alias:'Stuur melding wanneer alarm geactiveerd' trigger:- platform:state entity_id:alarm_control_panel.home_alarm to:'triggered' action:- service:persistent_notification.create data :bericht:melding wanneer alarm afgaat. Bewegingssensor HC-SR501 gedetecteerd. - vertraging:seconden:4#voer ons script uit voor het maken van een enkel script - service:script.webcam_snapshot#en verwijs naar het beschreven object in configuration.yaml:notificeer.ha_sendmail - service:notificeer.ha_sendmail data:titel:'Indringerwaarschuwing' message:'{{now().strftime("%H:%M %Y-%m-%d")}}:Melding wanneer alarm afgaat. Bewegingssensor HC-SR501 gedetecteerd.' data:afbeeldingen:#link naar het script dat al is gemaakt door de script.webcam_snapshot - /config/camera/snapshot.jpg 

Onthoud dat in yaml-bestanden regelopmaak belangrijk is en dat spatietekens voor opdrachten een belangrijke rol spelen bij het vormen van codeblokken en de structuur ervan. Controleer alle wijzigingen aan uw yaml via Home Assistant (hierna HA) Configuratie -> Serverbesturing -> Controleer configuratie

Het lijkt alles te zijn. En je Raspberry pi verandert in iets elegants!..)

Hier is het werkende HA-automatisering, geconfigureerd met uw eigen handen! Zorg ervoor dat je me alles schrijft wat je erover denkt!

En als je toch tot het einde hebt gelezen, hier zijn de beloofde links:

Afbeelding en zip: https://viamybox.com/downloadpage

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

Configuratiebestanden worden hier beschreven: configuration.yaml, automation.yaml, takeSnapshotWebcam.sh, rec-motion-mjpg.php, mov.py

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

Geen categorie

Bron:bewegingssensor, alarm, video-opname in HA op Raspberry Pi


Productieproces

  1. Raspberry Pi Temperature Logger
  2. Python- en Raspberry Pi-temperatuursensor
  3. Raspberry Pi-weerstation
  4. 1-draads temperatuursensor DS1820 op Raspberry Pi (direct GPIO)
  5. Ultrasone sensor (HC-SR04) + Raspberry Pi
  6. DIY infrarood bewegingssensorsysteem voor Raspberry Pi
  7. Een draadloos sensornetwerk in uw huis bouwen
  8. Bewegingssensor met Raspberry Pi
  9. Raspberry pi 2 wateralarm met t cobbler plus
  10. Raspberry Pi Bodemvochtsensor
  11. Raspberry Pi digitale Hall-sensor in JAVA