Surveillance Station Bewegungserkennung von unterwegs aktivieren/deaktivieren

Status
Für weitere Antworten geschlossen.

MrLadiesman

Benutzer
Mitglied seit
07. Dez 2013
Beiträge
107
Punkte für Reaktionen
1
Punkte
18
Hallo zusammen!

Gibt es eine Möglichkeit, die Bewegungserkennung der Kamera bei der SS von unterwegs zu aktivieren oder zu deaktivieren? Ich habe die Möglichkeit die Bewegungserkennung von der Kamera direkt oder von der SS steuern zu lassen. Bei der Kamera gibt es die Möglichkeit, die Bewegungserkennung per Häkchen über eine URL zu de-/aktivieren. Bei der SS habe ich diese Möglichkeit (über URL, App o.ä) noch nicht gefunden. Gibt es diese Möglichkeit nicht? Ich möchte nämlich alles über die SS erledigen, da ich hier mehr Möglichkeiten habe, jedoch fehlt mir der wichtigste Punkt (von Unterwegs de-/aktivieren).

Danke im Voraus.
 

sünollodschi

Benutzer
Mitglied seit
21. Apr 2009
Beiträge
109
Punkte für Reaktionen
0
Punkte
16
Du könntest von unterwegs mit Deinem Smartphone eine VPN-Verbindung herstellen und dann mittels der App DS Cam die Kameras aktivieren oder deaktivieren. So mache ich das und das funktioniert einwandfrei.

Oli
 

MrLadiesman

Benutzer
Mitglied seit
07. Dez 2013
Beiträge
107
Punkte für Reaktionen
1
Punkte
18
Die App "DS Cam" habe ich bereits installiert und kann auf die SS zugreifen. Und irgendwo in dieser App habe ich einen Punkt erwartet "Bewegungserkennung aktivieren/deaktivieren". Muss ich noch dazu eine VPN-Verbingung aufbauen? Wenn ja, wie? Ich verstehe ehrlich gesagt nicht, warum das so schwer ist. Die von mir beschriebene Funktion ist doch nichts außergewöhnliches, oder?
 

sünollodschi

Benutzer
Mitglied seit
21. Apr 2009
Beiträge
109
Punkte für Reaktionen
0
Punkte
16
Nein, eine solche Funktion gibt es leider (noch) nicht. Bis vor einiger Zeit war es noch nicht einmal möglich, mit der App die Kameras zu aktivieren/deaktivieren. Vielleicht kannst Du dem Synology-Support mal den Vorschlag machen, die Funktion einzubauen.

Wenn Du auf Deine Kameras von unterwegs zugreifen willst, musst Du ja erstmal irgendwie eine Verbindung zu Deinem Heimnetz herstellen. Das geht wie gesagt entweder über VPN, über QuickConnect oder indem Du an Deinem Router Ports öffnest. Zur letztgenannten Möglichkeit kann ich Dir leider nichts sagen. Ein VPN-Tunnel ist nach meiner Auffassung aber von allen Varianten eh die sicherste.
Die Konfiguration zwischen iOS-Geräten und einer Fritz!Box ist nach meiner Erfahrung auch kinderleicht.

Oli
 

MrLadiesman

Benutzer
Mitglied seit
07. Dez 2013
Beiträge
107
Punkte für Reaktionen
1
Punkte
18
Danke für die Rückmeldung. Ich bin etwas irritiert, da diese Funktion meiner Meinung nach eines der wichtigsten Funktionen ist. Naja, was solls. Vielleicht klappt das ja irgendwann mal. Der Zugriff auf die Kamera von unterwegs läuft problemlos. Ich kann diese auch per App steuern etc.
 

kenyo

Benutzer
Mitglied seit
28. Feb 2012
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Suche ebenfalls nach dieser Möglichkeit und finde es echt sonderbar, dass es so etwas noch nicht gibt. Ich persönlich träume ja davon, dass via Geofencing sogar automatisch erkannt wird, wann der Benutzer z.B. das Haus verlässt und somit die Bewegungserkennung aktiviert wird.

Aber das ist und bleibt erstmal wohl nur ein Traum..
 

createch2

Benutzer
Mitglied seit
22. Dez 2013
Beiträge
57
Punkte für Reaktionen
0
Punkte
0
Suche ebenfalls nach dieser Möglichkeit und finde es echt sonderbar, dass es so etwas noch nicht gibt. Ich persönlich träume ja davon, dass via Geofencing sogar automatisch erkannt wird, wann der Benutzer z.B. das Haus verlässt und somit die Bewegungserkennung aktiviert wird.

Aber das ist und bleibt erstmal wohl nur ein Traum..

Ich hab das so umgesetzt.
zutaten:

- Surveillance Station
- 2 oder mehr iPhones mit Geofency
- Webserver

Geofency schickt an der Webserver beim betreten oder verlassen des Bereiches um das Haus einen Link. Der Webserver überwacht damit die Anwesenheit der Telefone. Wenn beide Telefone abwesend sind wird die SS scharf geschaltet (per Web Api), sobald mindestens ein Telefon wieder daheim ist wird die Überwachung ausgeschaltet.
Zusätzlich hab ich mir noch einen Nachfunktion eingebaut wo innerhalb einer bestimmten Zeitspanne die SS auf jeden Fall aktiviert wrid. Dafür muss dann noch ein Cronjob laufen.

Unterm Strich ist meine Überwachung jetzt auch "Familienkompatibel" ohne daß man sich noch groß gedanken machen muss.
 

kenyo

Benutzer
Mitglied seit
28. Feb 2012
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Klingt nach einer guten Lösung. Magst du das vielleicht etwas ausführlicher beschreiben oder gibts vielleicht sogar irgendwie ein Tutorial im Web?

SS, iPhones und Webserver (Synology WebStation sollte gehen, oder?) sind vorhanden. Welche Art "Links" schickt Geofency an den Server? Was ist die Web-API der SS?
 

createch2

Benutzer
Mitglied seit
22. Dez 2013
Beiträge
57
Punkte für Reaktionen
0
Punkte
0
Klingt nach einer guten Lösung. Magst du das vielleicht etwas ausführlicher beschreiben oder gibts vielleicht sogar irgendwie ein Tutorial im Web?

SS, iPhones und Webserver (Synology WebStation sollte gehen, oder?) sind vorhanden. Welche Art "Links" schickt Geofency an den Server? Was ist die Web-API der SS?

Na klar kann ich es ausführlicher beschreiben, eine plug & play Lösung kann ich allerdings nicht bieten.

Grundlage ist folgende:
Die Surveillance Station lässt sich nicht nur über das Web Frontend steuern, sondern auch mit direkten Befehlen über eine URL. Das heisst ich schicke einen Link and die Diskstation und kann mit diesem Link die Surveillance Station aktivieren bzw. deaktivieren. ES gibt noch viele weiter Funktionen die sich steuern lassen. (Dokumentation hier: http://ukdl.synology.com/download/Document/DeveloperGuide/Surveillance_Station_Web_API.pdf )

In der Praxis läuft es so daß man sich aber auch per Web Befehl an der Surveillance Station erst einloggen muss, dann den Befehl ausführen und dann wieder ausloggen. Es ist also mehr als eine simple URL Zeile notwendig.

Daher bietet es sich an das ganze über ein Script bzw. irgendwas anderes auszuführen das einem diese Arbeit abnimmt.
Sagen wir einfach es gibt ein Script fürs einschalten und eins fürs ausschalten:

Einschalten:
- einloggen
- Surveillance Station aktivieren
- ausloggen

Ausschalten:
- einloggen
- Surveillance Station aktivieren
- ausloggen

Nun muss ich dieses Script nur noch per URL von aussen aufrufen und das Einschalten bzw. Ausschalten wird ausgeführt.

Die URL kannst du mit Geofency am iPhone mit der FUnktion "Webhook" aufrufen und dort beim betreten / verlassen verschiedene URLs aufrufen, eben das deaktivieren und aktivieren.

Ich selbst habe dafür die Webstation aktiviert und habe dort eine PHP seite laufen an die ich den Paramter ein- / ausschalten übergebe. Zusätzlich übergebe ich den Nutzer (notwendig wenn mehr als ein Nutzer im Haushalt ist). Das ganze wird in einer MySQL Tabelle protokolliert und wenn beide Nutzer abwesend sind wird erst das script fürs einschalten aktiviert.Sobald nur ein nutzer wieder anwesend ist wird wieder abgeschalten.

Um eine dauerhafte aktivierung im Nachtzeitraum zu schaffen habe ich im PHP script noch einen vergleich der Uhrzeit mit aktivierung / deaktivierung unabhängig von der Anwesenheit. Daz umuss aber ein Cronjob laufen der die PHP seite zum Beispiel alle 30 min aufruft damit der Uhrzeitvergleich stattfinden kann.

Mein ganzes PHP ist seit 6 Jahren eingerostet und ich möchte ungern das halbfertige hier posten, daher belasse ich es bei ein paar Codeschnipseln:

Variablen:

$httpformat="https"; //hier angeben ob http oder https
$port="5001"; //port
$loginname="LOGINNAME"; //Loginname an der Surveillance Station
$passwd="PASSWORT"; //passwort an der Surveillance Station
$ip="192.168.0.XXX"; //ip adresse der Surveillance station im LAN
$cam_id="2"; // Kamera ID mit script "hole Kamera ID" abfragen, später automatisieren

Login an der Surveillance Station:

$json = file_get_contents($httpformat."://".$ip.":".$port."/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account=".$loginname."&passwd=".$passwd."&session=SurveillanceStation&format=sid'");
$obj = json_decode($json, true);
$sid = $obj["data"]["sid"];

Kamera aktivieren:
$json = file_get_contents($httpformat."://".$ip.":".$port."/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&method=Enable&version=3&cameraIds=2&_sid=".$sid);

Kamera deaktivieren:
$json = file_get_contents($httpformat."://".$ip.":".$port."/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&method=Disable&version=3&cameraIds=2&_sid=".$sid);

Logout Surveillance Station:
$out = file_get_contents($httpformat."://".$ip.":".$port."/webapi/auth.cgi?api=SYNO.API.Auth&version=3&method=Logout&session=SurveillanceStation");

Ich denke damit lässt sich schon was anfangen wenn man PHP und MySQL soweit im Griff hat.
Ein Stolperstein für mich war noch daß der DSM Aufgabenplaner (übernimmt den Cronjob alle halbe stunde die PHP Seite aufzurufen) keine URLs mit Variablenübergabe aufrufen kann sondern nur die reine Php Seite.
 
Zuletzt bearbeitet:

kenyo

Benutzer
Mitglied seit
28. Feb 2012
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Sorry, dass ich ich erst so spät antworte. DANKE für die Mühe.

Klingt nach einem tollen Projekt für ein verregnetes Wochenende! Ich werde mich mal dran versuchen und dann berichten..
 

kenyo

Benutzer
Mitglied seit
28. Feb 2012
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Hab doch bereits heute versucht, mich so ein wenig in die Thematik einzudenken - grundsätzlich habe ich überhaupt keine Ahnung von PHP, deshalb wird es wohl alles etwas kleinschrittig gehen müssen.

Grundsätzlich verstehe ich als Laie das so:

Ich aktiviere die WebStation und lege ein Verzeichnis an mit zwei Basis-Scripts - Eins fürs Ein- und das andere fürs Ausschalten, denn mehr brauche ich aktuell erstmal nicht (Nachtschaltung und Mehrbenutzer ist nicht nötig). Diese leg ich dann im Projektverzeichnis ab, z.B. "/.../projekt_geofencing_SS/einschalten.php". Logischerweise muss alles von außen erreichbar sein, deshalb Portfreigabe, etc. logischerweise notwendig.

Diese Scripts werden nun bei Verlassen des Geofences via Geofency-Webhook 'angetriggert', sprich ich verlasse das Haus, dies wird von der App automatisch erkannt, welche infolgedessen dann wiederum im Hintergrund das Skript "einschalten.php" auf der WebStation aufruft.

Grundsätzlich soweit richtig?

Jetzt zu den schwierigen Dingen.. der Erstellung der Skripts, beispielhaft für die Aktivierung der Kamera (einschalten.php). Nun muss ich mich immer zuerst authentifizieren, dann den gewünschten Befehl (z.B. Kamera einschalten) ausführen und dann wieder abmelden.

Meine Daten:
http, 192.168.1.100, 5000, admin, password, id:1

I. Anmeldung:
http: //192.168.1.100:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account=admin&passwd=passwort&session=SurveillanceStation

II. Befehl (einschalten):
http: //192.168.1.100:5000/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&method=Enable&version=3&cameraIds=1

III. Logout:
http: //192.168.1.100:5000/webapi/auth.cgi?api=SYNO.API.Auth&version=3&method=Logout&session=SurveillanceStation

Ich habe testweise versucht die o.g. Links einfach nacheinander in die Browserzeile einzugeben - und siehe da, die Kamera wurde anstandslos eingeschaltet und nach Logout konnte ich den zweiten Befehl auch nicht mehr ausführen, wurde verweigert - so soll's sein.

Jetzt muss ich diese drei Links quasi doch nur noch in eine .php-Datei einfügen, welche bei Aufruf durch Geofency automatisch die drei Aktionen ausführt, richtig?

Leider habe ich keine Ahnung, wie man das macht. Du hast ja noch neben den Links wesentlich mehr Dinge in deinem Skript stehen, die ich als Laie allerdings nicht zuordnen kann- kannst du oder jemand anders mich hier unterstützen? Insbesondere fehlt mir das Wissen, wie ich das php-Skript dazu bringe, die Links nacheinander 'aufzurufen' bzw. auszuführen..

Besten Dank schon einmal!
 
Zuletzt bearbeitet:

createch2

Benutzer
Mitglied seit
22. Dez 2013
Beiträge
57
Punkte für Reaktionen
0
Punkte
0
Ich habs mal aus Beitrag 9 copy/pasted und mit deinen Daten versehen:

Inhalt File aktivieren.php

<?php
$httpformat="http"; //hier angeben ob http oder https
$port="5000"; //port
$loginname="admin"; //Loginname an der Surveillance Station
$passwd="PASSWORT"; //passwort an der Surveillance Station
$ip="192.168.1.100"; //ip adresse der Surveillance station im LAN
$cam_id="1"; // Kamera ID mit script "hole Kamera ID" abfragen, später automatisieren

//Login an der Surveillance Station:

$json = file_get_contents($httpformat."://".$ip.":".$port."/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3& account=".$loginname."&passwd=".$passwd."&session= SurveillanceStation&format=sid'");
$obj = json_decode($json, true);
$sid = $obj["data"]["sid"];

//Kamera aktivieren:
$json = file_get_contents($httpformat."://".$ip.":".$port."/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&met hod=Enable&version=3&cameraIds=2&_sid=".$sid);


//Logout Surveillance Station:
$out = file_get_contents($httpformat."://".$ip.":".$port."/webapi/auth.cgi?api=SYNO.API.Auth&version=3&method=Logout &session=SurveillanceStation");
?>


-------------------------------------------------------------------

Inhalt File deaktivieren.php

<?php

$httpformat="http"; //hier angeben ob http oder https
$port="5000"; //port
$loginname="admin"; //Loginname an der Surveillance Station
$passwd="PASSWORT"; //passwort an der Surveillance Station
$ip="192.168.1.100"; //ip adresse der Surveillance station im LAN
$cam_id="1"; // Kamera ID mit script "hole Kamera ID" abfragen, später automatisieren

//Login an der Surveillance Station:

$json = file_get_contents($httpformat."://".$ip.":".$port."/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3& account=".$loginname."&passwd=".$passwd."&session= SurveillanceStation&format=sid'");
$obj = json_decode($json, true);
$sid = $obj["data"]["sid"];

//Kamera deaktivieren:
$json = file_get_contents($httpformat."://".$ip.":".$port."/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&met hod=Disable&version=3&cameraIds=2&_sid=".$sid);

//Logout Surveillance Station:
$out = file_get_contents($httpformat."://".$ip.":".$port."/webapi/auth.cgi?api=SYNO.API.Auth&version=3&method=Logout &session=SurveillanceStation");


?>
 

kenyo

Benutzer
Mitglied seit
28. Feb 2012
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Gigantisch! Sofern ich von der Uni wieder zu Hause bin, setz ich mich direkt ran.. und werde berichten! :rolleyes:
 

kenyo

Benutzer
Mitglied seit
28. Feb 2012
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Also, grundsätzlich hat alles wunderbar geklappt..

Zunächst wollte es nicht so richtig hinhauen, habe den Fehler dann aber nach kurzer Zeit im Code gefunden.. bei Kamera aktivieren/deaktivieren muss es statt
richtigerweise
cameraIds=".$cam_id."
heißen, dann klappt es.

Ich habe mir dann nicht Geofency, sondern Geofancy runtergeladen,.. ist kostenlos und ermöglicht ebenfalls den Webhook, allerdings ohne den Zeiterfassungs-Krams. Reicht für mich also vollkommen.

Nun zum Problem:

Die Kamera aktiviert und deaktiviert sich jetzt bei Verlassen des Geofences und ist auch nachweislich (mehrfach geprüft) in der SS ausgeschaltet. ABER: Die Bewegungserkennung und Aufzeichnung läuft trotzdem - wie kann das sein? Obwohl die Kamera in der SS kein Bild im Thumbnail anzeigt und auch erst aktiviert werden müsste, läuft die Bewegungserkennung.. ich weiß nicht, was da los ist.
 

Janniman

Benutzer
Mitglied seit
11. Jan 2013
Beiträge
260
Punkte für Reaktionen
2
Punkte
18
Welche Bewegungserkennung denn? Die der SS, oder die in der Kamera?

Ciao,

Jan
 

createch2

Benutzer
Mitglied seit
22. Dez 2013
Beiträge
57
Punkte für Reaktionen
0
Punkte
0
Nun zum Problem:

Die Kamera aktiviert und deaktiviert sich jetzt bei Verlassen des Geofences und ist auch nachweislich (mehrfach geprüft) in der SS ausgeschaltet. ABER: Die Bewegungserkennung und Aufzeichnung läuft trotzdem - wie kann das sein? Obwohl die Kamera in der SS kein Bild im Thumbnail anzeigt und auch erst aktiviert werden müsste, läuft die Bewegungserkennung.. ich weiß nicht, was da los ist.

Genau diesen Fehler hatte ich vorgestern einmal nach irgendeinem Update (DSM update oder SS update - ich weiss es nicht mehr). Ich hab dann die DS neu gestartet und es funktioniert wieder.
 

kenyo

Benutzer
Mitglied seit
28. Feb 2012
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Stimmt, hatte gestern geupdated. Nach Neustart funktioniert alles prima!

Danke für Deine Hilfe, läuft jetzt alles wunderbar!
 

plutarch123

Benutzer
Mitglied seit
03. Dez 2014
Beiträge
11
Punkte für Reaktionen
0
Punkte
1
Kann mir jemand erklären, wie ich dieses PHP Skript in der Webstation zum laufen bekomme? Ich habe mit meinem beschränkten Wissen, was dieses Thema angeht, einfach eine Datei mit der Endung php erstellt und die Datei mit dem oben aufgeführten Inhalt versehen. Jeweils eine für "aktivieren" und eine für "deaktivieren". Naturlich habe ich den Inhalt mit meinen Anmeldedaten etc. abgeändert.
In meiner naiven Vorstellung habe ich mir gedacht, dass ich die beiden Dateien einfach in den Ordner Web schiebe und dann durch Aufrufen der entsprechenden URL, die auf die Dateien verweist, die Kamera aktiviere bzw. deaktiviere. Wenn ich dies tue, bekomm ich jedoch im Browser die Meldung "Access denied". Was mache ich falsch.
Kann jemand die Vorgehensweise auch für einen nicht Programmierer erklären? Ist es nicht sehr unsicher eine solche Datei auf der Webstation zu haben, da die Zugangsdaten ja alle unverschlüsselt in der Datei geschrieben sind?

Danke im Voraus :D
 

flugwaps

Benutzer
Mitglied seit
11. Feb 2009
Beiträge
168
Punkte für Reaktionen
3
Punkte
24
's läuft net : - /

Extrakt :
Rich (BBCode):
wget --no-cache --no-check-certificate -O "$tmpfile" "$url/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account=$user&passwd=$pw&session=SurveillanceStation" #1>/dev/null 2>&1
sid=$(cat "$tmpfile" | tr -d '{}\"' | tr ',' ':' | cut -d':' -f3) 
wget --save-headers --no-cache --no-check-certificate -O "$tmpfile" "$url/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&method=Enable&version=3&cameraIds=1&_sid=$sid" #1>/dev/null 2>&1
wget --no-cache --no-check-certificate -O "$tmpfile" "$url/webapi/auth.cgi?api=SYNO.API.Auth&method=Logout&version=3&session=SurveillanceStation&_sid=$sid" #1>/dev/null 2>&1

...bin am verzweifeln. (naja , so schnell nun auch nicht ;) )
Hab sowohl die php- als auch die script Variante probiert, letztlich machen ja beide das gleiche.
Das Setzen des Kamera - Status geht nicht.
Im php geht das Abfragen des Status, wenn ich den in der GUI der surveillance station verändere sehe ich das im php.
Das Prinzip und login geht also. Antwort ist ja auch brav :
Rich (BBCode):
{"success":true}

Welcher Baum in diesem Wald steht mir vor der Nase das ich die Lösung nicht sehe ??? :mad:

Wollte doch nur die Kameras in Abhängigkeit der Präsenz meines Handy im WLAN ein- un d ausschalten :rolleyes:
 

kenyo

Benutzer
Mitglied seit
28. Feb 2012
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Habe heute mal auf die neue SS 7.0-Version geupdated. Sieht ja alles ziemlich chic aus.. aber:

Jetzt will mein Skript nicht mehr funktionieren und gibt folgenden Fehler aus:

Warning: file_get_contents(http://10.0.1.10:***/webapi/Surveil...le&version=3&cameraIds=1&_sid=I0KMS4vOi3***): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /volume1/web/***.php on line 18 Warning: file_get_contents(http://10.0.1.10:***/webapi/Surveil...=1&cameraId=1&presetId=5&_sid=I0KMS4vOi3***): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /volume1/web/***.php on line 22

Dies sind meine Zeilen 18-22 .. hat Synology irgendwas an ihrer API geändert? Zumindest kann ich keine aktualisierte API-Doku finden.

//Kamera aktivieren:

$json = file_get_contents($httpformat."://".$ip.":".$port."/webapi/SurveillanceStation/camera.cgi?api=SYNO.SurveillanceStation.Camera&method=Enable&version=3&cameraIds=".$cam_id."&_sid=".$sid);
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat