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

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

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)

Volgende: Airco voor slaapkamer zoeken.... 12-06 Airco voor slaapkamer zoeken....

Reacties


Door Tweakers user bastv, zondag 25 december 2016 11:01

leuk artkel! hier liep ik ook tegen aan (vooral de regen), neem nu continue op maar denk dat ik dit ook ga proberen.

ik zou wel willen adviseren om api requests via https te laten lopen. zeker authenticatie. dit is anders gemakkelijk te onderscheppen (ook al is het thuis, is een kleine moeite)
sterker nog, ik zou adviseren om je synology op https only te zetten :)

Door Tweakers user marcelvdk, zondag 25 december 2016 21:42

Nice. ik heb zelf een keer t.b.v. mijn opleiding (was in 2009/2010 aan de HAN opleiding deeltijd TI) ook zoiets gedaan. Met een groep toen een domotica systeem opgezet. Hierbij heb ik ook gebruik gemaakt van een foscam camera, en 2 pirs. De opzet was om de camera via een sweep beweging een bepaald gebied te laten bewaken. Op 2 punten in het gebied waren de pirs opgesteld. Als er dan een PIR actief werd, dan werd de camera voor een xx tijd gericht op dat gebied. Was er na xx tijd geen activiteit, dan ging de camera weer verder met zijn normale patroon. Beelden werden op een server opgeslagen.

(andere onderdelen v.h. domotica systeem waren o.a. vingerafdruk lezer, elektrisch slot, kamer temperatuur regeling. alle onderdelen hadden lokale besturing (via Mbed controller) en een centraal systeem met o.a. mysql en indien nodig aansturing van alle onderdelen via C#, dit indien er bijvoorbeeld een Mbed uit zou vallen)

Door Tweakers user afraca, donderdag 5 januari 2017 07:36

(Beetje laat hier)

Volgens mij kan je juist op T.net wel ingaan op de technische details. Mocht iemand het zelf nog een keer willen proberen, is het superhandig als je niet opnieuw het wiel hoeft uit te vinden :) Leuk dat het gelukt is.

Reactie formulier
(verplicht)
(verplicht, maar wordt niet getoond)
(optioneel)

Voer de code van onderstaand anti-spam plaatje in: