KerstProject: PIR sensor koppelen aan Foscam camera d.m.v. http requests

Door mouse86 op zondag 25 december 2016 09:45 - Reacties (4)
Categorie: -, Views: 2.228

KERST! Heerlijk, dť tijd van het jaar om weer een leuk knutselproject op te pakken. Dit keer:

Onze tuin-camera koppelen aan een PIR bewegingsmelder zodat deze alleen opneemt bij het detecteren van een mens (of grote dieren :+ ).

Hoe werkt het nu?
Ik heb in de tuin een Foscam camera. Deze is aangesloten op het thuis-netwerk via powerline. Op het thuis-netwerk heb ik ook een Synology NAS type DS414j. Wat ik pas sinds zeer recentelijk weet, is dat op deze NAS -die ik voorheen alleen gebruikte als opslag- ook de mogelijkheid zit om netwerk-camera's op aan te sluiten.

Ik had deze NAS zo ingesteld, dat op moment dat de camera verandering in beeld detecteert, deze voor X aantal seconden de beelden opneemt en opslaat op de NAS. Maar, het blijkt al enige tijd dat de camera voortdurend beweging detecteert zoals; regendruppels, bladeren, lichtveranderingen (van in-schijnende auto lichten) en nog veel meer. Dit resulteerde in c.a. 250 video's per dag van zo`n 1 minuut, terwijl van de 250 video's hooguit 1 Š 2 keer iemand voor bij liep.

Oplossing

Ik heb eerst uitgebreid gespeeld met de gevoeligheid van de camera in de hoop valse triggers weg te nemen of in ieder geval te reduceren. Het is wel lichtelijk te verbeteren, maar regendruppels die dichtbij de camera lens vallen, zorgen altijd voor een dusdanige verandering, dat dit niet weg te nemen is in de detectie. Eveneens is sterk veranderende lichthoeveelheden niet weg te nemen in de detectie. Er is namelijk een oprit aanwezig vlakbij onze woning waar een drempel aanwezig is. Zodra daar een auto overheen rijdt, licht ons huis kortdurend eventjes op van de autolampen.

De enige echte oplossing die ik kon bedenken was het plaatsen van een PIR sensor en deze koppelen aan de camera. Een PIR sensor detecteert namelijk alleen bewegende warmtebronnen, en daar vallen mijn valse triggers niet onder.

https://i.snag.gy/3QhHYt.jpg

Ik heb mijn gehele huis voorzien van Z-wave sensoren in combinatie met Fibaro HC2 controller. En hierdoor was er in de tuin al een PIR sensor aanwezig die (in de toekomst) een lamp moet inschakelen in de tuin zodra er door de PIR sensor iets gedetecteerd wordt.

Mijn eerste idee was om een Z-Wave output relais te kopen (60 euro) en een 8 kanaals input kaart (250 euro) die gekoppeld kon worden aan de DVR van Synology. De gedachte was: zodra de PIR dan een beweging registreert, dan zou de fibaro dit doorsturen aan het output-relais. Vervolgens zou de aangekoppelde input kaart de verandering van het relais registreren en doorsturen naar de DVR zodat de Synology startte met opname van beelden. Maar, ik heb dit geruime tijd laten liggen omdat ik de investering te veel geld vond. Dan maar 250+ opnames per dag.... :+

HTTP requests ?!

Ik ben programmeur voor embedded systemen maar amateur met web-programmatuur. Maar in een slapeloze nacht tikte ik bij google in "API Synology Surveillance station" en warempel bestond dit! Blijkbaar kon je met HTTP requests video opnames starten en stoppen. De volgende dag, ben ik gaan zoeken of ik met mijn Fibaro controller ook HTTP requests kon aanmaken, en ook dit kon!!

Maar, wat zijn dan eigenlijk HTTP requests... ik heb er nog nooit iets mee gedaan :? . Dit zijn dan de heerlijkste momenten vind ik om aan te werken. Lekker beetje op internet speuren naar programmatuur en uitproberen. En dan als het ineen werkt, zo blij en gelukkig maar ook beetje verbaast staan kijken :> .

Kladblok erbij, en in Google Chrome HTTP requests opbouwen en kijken wat je terug krijgt. Ja, dat was het eerste wat ik deed. Het inloggen in de surveillance station was het eerste struikelblok. Blijkbaar (en tegelijk ook logisch) moet je eerst inloggen via HTTP bij de Synology DVR voordat je een opname kan starten en stoppen.

Dit was uiteindelijk na lekker lang code zoeken op internet hťt dingetje op in te kunnen loggen op de DVR:


code:
1
http://192.168.178.222:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=enterYourUserNameHere&passwd=enterYourPasswordHere&session=SurveillanceStation&format=sid



Als ik die in de browser invoerde, kreeg ik netjes terug:
code:
1
{"data":{"sid":"YfTydk7N8Uxjg1430M4N000920"},"success":true}


YAY! Succes momentje !!

Maar, nu werkte het alleen nog in de browser. Tijd om dit _op de een of andere manier_ ook te implementeren op de Fibaro. Uiteindelijk -na paar uren- kwam er iets zoals hieronder uit....


code:
1
http://' ..ipAddressSynology..':'..portAdressSynology..'/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account='..userLogin..'&passwd='..userPasw..'&session=SurveillanceStation&format=sid



En ook dat werkte weer!! Mijn geluk kon niet op, van het een op het andere leken de geluksmomentjes steeds sneller te gaan en had ik het up and running in no time :D .

Hierna wordt het alleen maar nog technischer, dat bespaar ik jullie lieve lezers op deze mooie kerstdag even. Daar zal ik een aparte blog post van maken waar de gehele code in staat.

In ieder geval werkt het nu, als ik de tuindeur open, dat mijn lieve camera direct start met opnemen, en dat ik mezelf op elk moment van de dag en op elke device terug kan zien als ik dat zou willen.

O+ O+ O+ Iedereen fijne kerstdagen!!! :9~ :Y) :Y) :Y)