Surveillance Station Surveillance Station: API Befehle

c0smo

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
08. Mai 2015
Beiträge
7.483
Punkte für Reaktionen
1.652
Punkte
274

API Surveillance Station (9.1.4)


Alle GET-Befehle setzen einen Login voraus, weshalb für einen korrekten Syntax immer eine SID notwendig ist.

In den hier aufgeführten Befehlen werden dynamische Inhalte angegeben, die ihr selbst eintragen müsst. Diese Werte erkennt ihr an den Großbuchstaben.
Des Weiteren müsst ihr das Protokoll nach euren Bedürfnissen anpassen. Ich setze "https" als Standard, wenn ihr "http" verwendet, müsst ihr das abändern.

Beispiel:
Code:
https://IP:PORT/webapi/SurveillanceStation

SID

Die SID ist dynamisch und ändert sich mit jedem Reload der Seite! Sie bleibt dennoch dauerhaft gültig.

Eingabe:
Code:
https://NAS_IP:PORT/webapi/SurveillanceStation/ThirdParty/Auth/Login/v1?account=USER&passwd=PASSWORD

Ausgabe:
Screenshot_20240106_215447_Opera.jpg
Jetzt könnt ihr die SID (ohne " ") kopieren und für die folgenden Befehle verwenden.


Kamera

Kamerainformationen abrufen

Eingabe:
Code:
https://NAS_IP:PORT/webapi/SurveillanceStation/ThirdParty/Camera/List/v1?_sid=SID

Code:
"success": true,
"data": {
"total": 1,
"cameras":
"statusId": 1,
"status": "Normal",
"dsName": "Local host",
"model": "TC500",
"vendor": "Synology",
"dsId": 0,
"name": "CamName01",
"mac": "90:09:D0:3B:7A:1A",
"ip": "10.17.52.41",
"camId": 3

Kameraeigenschaften abrufen

Die hier verlangte ID könnt ihr mit "List Camera" (Kamerainformationen abrufen) auslesen. Die ID könnte auch durch "Name" oder MAC Adresse der Kamera ersetzt werden. Die MAC Adresse wird mit Doppelpunkten angegeben.

Eingabe:
Code:
https://NAS_IP:PORT/webapi/SurveillanceStation/ThirdParty/Camera/Get/v1?camIds=ID&_sid=SID

Code:
"success": true,
"data": {
"cameras": [
"streamHigh": {
"resolution": "1280x720",
"quality": "5",
"fps": 15,
"constantBitrate": "1000",
"bitrateCtrl": 2
"streamMedium": {
"resolution": "1280x720",
"quality": "5",
"fps": 15,
"constantBitrate": "1000",
"bitrateCtrl": 2
"streamLow": {
"resolution": "1280x720",
"quality": "5",
"fps": 15,
"constantBitrate": "1000",
"bitrateCtrl": 2
"recStatus": 1,
"userName": "NVR",
"audioCodec": "G711",
"videoCodec": "H.264",
"recordPrefix": "TC500",
"recordSchedule": "1111111111111111,
"dsId": 1,
"mac": "90:09:D0:3B:7A:1A",
"camId": 2,
"vendor": "Synology",
"rotationBySpace": "10",
"rotationByDay": 30,
"model": "TC500",
"dsName": "1517p",
"name": "SynoCam001",
"port": 80,
"ip": "10.17.52.41",
"statusId": 1,
"status": "Normal"


Snapshot

Snapshot erstellen (jpeg)

Der hier verlangte Kameranane kann auch durch die ID oder MAC Adresse der Kamera ausgetauscht werden. Die MAC Adresse wird mit Doppelpunkten angegeben.

Screenshot_20240106_215154_Opera.jpg

Eingabe:
Code:
https://NAS_IP:PORT/webapi/SurveillanceStation/ThirdParty/SnapShot/Take/v1?camId=KAMERANAME&_sid=SID"
 
Zuletzt bearbeitet:

Tomiliy

Benutzer
Mitglied seit
25. Jan 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Hallo,
vielleicht kannst du mir helfen..
Ichhabe eine DS423 mt DSM 7.2 und installierter Surveillance Station.

ich versuche das, was du gemacht hast, nachzustellen, scheitere aber:
Ich logge mich via ssh auf der Synology ein. Oder vom PC im Broser, speilt keine Rolle
Wenn ich:
Code:
Anfrage:
curl -L "http://192.168.xxx.xxx:5000/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.API.Auth,SYNO.SurveillanceStation.info"
Ergebnis:
{"data":{"SYNO.API.Auth":{"maxVersion":7,"minVersion":1,"path":"entry.cgi"}},"success":true}

soweit so gut.
Aber ein:
Code:
Wenn ich jetzt wie es in der API steht
curl -k -L "http://192.168.xxx.xxx:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=7&account=<user>&passwd=<password>&session=SurveillanceStation&format=sid"
Eingebe, erhalte ich:
{"error":{"code":103},"success":false}Tomiliy@DS412:~$

oder wie ich mittlerweile raus gefunden habe soll man entry.cgi nehmen:

 curl -L "http://192.168.xxx.xxx:5000/webapi/entry.cgi?api=SYNO.API.Auth&method=Login&version=2&account=<user>&passwd=<password>session=SurveillanceStation&format=sid"
Bringt als Ergebnis
{"error":{"code":103},"success":false}
 

c0smo

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
08. Mai 2015
Beiträge
7.483
Punkte für Reaktionen
1.652
Punkte
274

Tomiliy

Benutzer
Mitglied seit
25. Jan 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Hallo C0smo,

ja genau. hier hab ich geguckt: <klick>
Ich möchte, schlussendlich Homematic einbinden. Wie hier beschrieben: <klick>
Ich hab es mit dem Admin versucht (der einen 2. Faktor hat) und mit einem normalen User, ohne 2. Faktor.
Das Ergebnis ist immer das selbe und ich weiß nicht wieso.
die query.cgi?api=SYNO.API.... funktioniert. und er sagt mir, ich kann bis zur Version 7 gehen. Aber egal welche Version ich dort eintrage, es kommt immer der Fehler. Kann es am Passwort liegen. Dort sind Sonderzeichen drin. a la: *#?
 

c0smo

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
08. Mai 2015
Beiträge
7.483
Punkte für Reaktionen
1.652
Punkte
274
Eine aktuelle API ist nur nach Registrierung einsehbar. Deine ist 4 Jahre alt und funktioniert nicht mehr. ;)
 

Tomiliy

Benutzer
Mitglied seit
25. Jan 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Hi C0smo,

danke für deine Hilfe.
ich habe eine Homematic, die mir den Status abwesend & Anwesen gibt. z.B.
Ich möchte das die Synology mit der Aufzeichnung der Kameras anfängt, wenn die Homematic der Synology sagt: Abwesend.
Das soll so funktionieren:
Mit folgendem Befehl in der CCU kann ich nun über ein Programm eine beliebige Kamera entsprechend steuern.

Code:
curl -L "http://<IP der Syno>:5000/webapi/entry.cgi?api="SYNO.SurveillanceStation.Camera"&method="Disable"&version=9&idList="4"&_sid="<SID>"" >/dev/null 2>&1
Beschrieben ist das hier: <klick>

und mein Problem ist, ich bekomme die sid schon nicht ausgelesen...
Das mit der nicht öffentlichen API wusste ich nicht...
 

Tomiliy

Benutzer
Mitglied seit
25. Jan 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
2024-10-03 18_44_47-(1) Surveillance Station - Surveillance Station_ API Befehle _ Das deutsch...png
Bei mir ist er hier noch.
Komisch.
Kannst du was zur Konfiguration sagen? Oder wo ich eine richtige API her bekomme?
Das wäre nett
 

c0smo

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
08. Mai 2015
Beiträge
7.483
Punkte für Reaktionen
1.652
Punkte
274
Der Beitrag ist nicht freigegeben, steht eigentlich dick darüber.

Ich kann nichts dazu sagen, ich weiß nicht was du möchtest. Kameras können über onvif oder rtsp eingebunden werden, dazu braucht man keine API.

Eine aktuelle API muss bei Synology über eine Registrierung angefordert werden.
 

Tomiliy

Benutzer
Mitglied seit
25. Jan 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Ich weiß nicht, welcher Moderator den freigeben muss.. und warum. Keine Ahnung. Vielleicht kommt das noch.
Ich möchte mit der Homematic die Synology Surveillance Station steuern.
Mit dieser SID, kann man Befehle an die Surveilance Station senden.

Ich hatte zum Beispiel die Anforderung meine Kameras auf Basis der realen Anwesenheit zu aktivieren oder deaktivieren.

Mit Board-Mitteln kann man Kameras nur Zeitgesteuert Aktivieren bzw. Deaktivieren jedoch ist das gerade für Überwachungskameras viel zu Vage.
Mit folgendem Befehl in der CCU kann ich nun über ein Programm eine beliebige Kamera entsprechend steuern.

curl -L "http://<IP der Syno>:5000/webapi/entry.cgi?api="SYNO.SurveillanceStation.Camera"&method="Disable"&version=9&idList="4"&_sid="<SID>"" >/dev/null 2>&1


Und ich brauche Unterstützung wie ich diese SID auslesen kann. Mit dem Befehl, dem ich es ganz am Anfang probiert habe, gings nicht.

Es wäre nett, wenn du mir hilfst die SID der Surveillance Station zu ermitteln.
 
Zuletzt bearbeitet:

Tomiliy

Benutzer
Mitglied seit
25. Jan 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Der Beitrag ist nicht freigegeben, steht eigentlich dick darüber.

Ich kann nichts dazu sagen, ich weiß nicht was du möchtest. Kameras können über onvif oder rtsp eingebunden werden, dazu braucht man keine API.

Eine aktuelle API muss bei Synology über eine Registrierung angefordert werden.
Die Kameras sind eingebunden und es funktioniert auch die Aufnahme auch mit Bewegung und allem. Aber ich möchte der Surveillance Station über Homematic bescheid geben, wenn ich Abwesend bin, bzw. Anwesend, bzw. wann die Überwachung starten soll. Das macht die Station leider alles nur über Zeit. Bz. über die Anwesenheit in dieser DSApp. Aber das möchte ich nicht.

Kannst du mir helfen, die SID zu emitteln?
 

c0smo

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
08. Mai 2015
Beiträge
7.483
Punkte für Reaktionen
1.652
Punkte
274
Wie man die SID ausliest steht in #1
So wie ich das in der aktuellen API sehe, gibt es keine Möglichkeit mehr, die Kamera oder den Stream zu deaktivieren.
Ich denke das funktioniert jetzt mit dem Home Modus.
 

Tomiliy

Benutzer
Mitglied seit
25. Jan 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Aber hattest du nicht gesagt, was ich geschrieben habe war die alte API? Wie liest man es denn in der neuen Version aus?
Kannst du mal ein Beispiel hier posten?
Danke
 

c0smo

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
08. Mai 2015
Beiträge
7.483
Punkte für Reaktionen
1.652
Punkte
274
Wie gesagt, steht in #1. Diese API Befehle sind aktuell, deine nicht.
 

Tomiliy

Benutzer
Mitglied seit
25. Jan 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Hallo C0somo,

dann verstehe ich nicht, warum es bei mir nicht klappt:
Code:
 curl -k -L "https://192.168.99.111:5001/webapi/SurveillanceStation/ThirdParty/Auth/Login/v1?account=nmt&passwd=Hallo1234567*#?"
{"error":{"code":400},"success":false}

bzw.:
im Browser:
2024-10-03 18_44_47-(1) Surveillance Station - Surveillance Station_ API Befehle _ Das deutsch...png

Woran kann das liegen?
Der Benutzer ist kein Admin. Muss er Admin sein? Und er hat Sonderzeichen im Password
Mein Admin hat einen 2. Faktor. Wenn es ein Admin sein muss, wie inkluidiere ich das OTP?
 

c0smo

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
08. Mai 2015
Beiträge
7.483
Punkte für Reaktionen
1.652
Punkte
274
Bei mir geht's auch mit einem normalen User.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.160
Punkte für Reaktionen
407
Punkte
393
Hallo,
damit schalte ich den Home Mode
Code:
#!/bin/bash

wget -q --keep-session-cookies --save-cookies cookies.txt -O- "http://192.168.1.16:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=login&version=3&account=YYYYYY&passwd=XXXXXXXXX&session=SurveillanceStation"

wget -q --load-cookies cookies.txt -O- "http://192.168.1.16:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.HomeMode&version=1&method=Switch&on=true"

wget -q --load-cookies cookies.txt -O- "http://192.168.1.16:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=logout&version=1"

Gruß Götz
 
  • Like
Reaktionen: c0smo

Tomiliy

Benutzer
Mitglied seit
25. Jan 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Code:
https://IP:pORT/webapi/SurveillanceStation

nicht mal das klappt:
2024-10-03 19_29_42-192.168.99.111_5001_webapi_SurveillanceStation_ und 33 weitere Seiten - Pe...png
Hallo,
damit schalte ich den Home Mode
Code:
#!/bin/bash

wget -q --keep-session-cookies --save-cookies cookies.txt -O- "http://192.168.1.16:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=login&version=3&account=YYYYYY&passwd=XXXXXXXXX&session=SurveillanceStation"

wget -q --load-cookies cookies.txt -O- "http://192.168.1.16:5000/webapi/entry.cgi?api=SYNO.SurveillanceStation.HomeMode&version=1&method=Switch&on=true"

wget -q --load-cookies cookies.txt -O- "http://192.168.1.16:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=logout&version=1"

Gruß Götz
Hallo Götz,
danke für den Tipp.
Super Ansatz.

Wenn ich deine erste Zeile nehme, und die 1 zu 1 kopiere und nur IP und Logindaten ändere kommt:
{"error":{"code":400},"success":false}#


Muss man die WebAPI noch irgendwo freischalten? Oder muss irgendwas installiert sein?
Du startet die Abfrage doch von der CCU aus, richtig? Anderseits ist es egal ob ich es auf der CCU oder auf der Synology ausführe
#
 

Tomiliy

Benutzer
Mitglied seit
25. Jan 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
{"error":{"code":400},"success":false}#
Ich weiß, das lt. API code (5 Jahre alt, lt C0smo), 400 für falsches Passwort steht. Aber ich kann mich mit GENAU diesem Passwort auf der Synology anmelden. Ich verstehe nicht wo der Fehler ist.
Ich hab auch schon mehrere Benutzer durch, bei allen das selbe
3 haben einen OTP (2. Faktor) einer nicht. Aber da ist es genau das selbe
 

c0smo

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
08. Mai 2015
Beiträge
7.483
Punkte für Reaktionen
1.652
Punkte
274
https://IP:pORT/webapi/SurveillanceStation
Das ist ein Beispiel für die Schreibweise und kein vollständiger Befehl.

Wo trägst du die Befehle ein? Im Browser? Dann darf natürlich nur der https Teil rein, ohne wget.

Für die Home Modus Geschichte bin ich der falsche Ansprechpartner. Für die API in #1 benötigst du die SID, damit der Login funktioniert. Ohne SID kein positives Ergebnis.
 

Tomiliy

Benutzer
Mitglied seit
25. Jan 2024
Beiträge
19
Punkte für Reaktionen
2
Punkte
3
Ich hab es jetzt für mich gelöst.
War einfacher als gedacht :)
Warum auch immer die webapi nicht funktioniert hat.
Ich habe auf der Surveillance Station, die Aktionsregeln aktiviert:

Name: Home Modus ein:
Regeltyp: Ausgelöst
Aktionstyp: Unterbrechungsfrei
Ereignisquelle Webhook / externes Gerät
--> Es wird ein Token generiert
Als Methode GET auswählen, den kompletten HTTP String kopieren, der in dem Umrandeteen Feld angezeigt wird, den brauchen wir später
Auslösertyp: Einmalig
Aktionsgerät Surveillanc Station
Aktion: In den Home Mode wechseln
Zeitplan: anpassen, (ich hab immer ausgewählt)

Das ganze hab ich nochmal gemacht für den Home Mode verlassen und das kann ich jetzt von der CCU ganz gemütlich mit einem Curl ausführen lassen, und so die Anwesenheit, Abwesenheit oder was auch immer nutzten im den Home Mode zu schalten.
Jetzt muss ich den Kameras nur noch sagen, das sie nur funktionieren dürfen, wenn der Home Mode aus ist :)
Ich hoffe das hilft auch anderen hier.
 
  • Like
Reaktionen: c0smo


 

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