NEWS
Synology Surveillance Station API
-
Da habe ich mich wohl ein bisschen zu früh gefreut. Nachdem jetzt von extern alles läuft, wollte ich auf zuhause auf die internen IPs umstellen.
Da bekomme ich aber (auch beim Aufuf mit dem Browser) folgenden Fehler:
{"error":{"code":105},"success":false}
Das besagt wohl, dass man eine Session-ID angeben muss. Weiß jemand, wo ich diese ID finde und wie ich die in den Aufruf mit einbaue - sowohl im Browser als auch über das Script?
Oder geht das bei Euch ohne Session ID aus dem internen Netz??
Vielen Dank im Voraus! `
Hallo,
ich bekomme einen ähnlichen Fehler.
{"error":{"code":400},"success":false}
Hat jemand vielleicht schon eine Lösung hierzu gefunden?
-
Ich steuere inzwischen Aufnahmen und Screenshots über den Home Modus. Da die Gefence Erkennung der App aber eine riesen Prozesserlast auf der Syno produziert schalte ich den Home Modus der SSS über meine Anwesenheitserkennung von IOBroker. Dazu einfach auf der SSS eine Aktionregel für Home on und eine für Home off erstellen. Den Rest der Aufnahmesteuerung usw hab ich alles auf der SSS eingerichtet.
-
Es gibt dann einen Datenpunkt wo ich einmal pro Stunde ne neue URL hole und reinschreibe.
In Vis zeige ich es dann mit dem Cam-Widget an und {javascript.0.Anzeigen.Kamera.Eingangstuer-Stream} als "Source"/Quelle. Das klappt recht gut. `
Hallo,ich beschäftige mich auch gerade mit der Thematik, da ich Cams habe, die nur rtsp können und nicht wie die meisten Foscams nativ über eine normale URL einzubinden sind. Habe das jetzt soweit auch erfolgreich nachgebaut. Klappt einwandfrei.
Kann mich jemand aufschlauen, wie ich diese URL regelmäßig neu hole? Ich habe von Scripting keine Ahnung. Muss ich dafür das Script, bzw. die Scripte in Intervallen neu anstoßen? Wenn ja wie?
-
Ich steuere inzwischen Aufnahmen und Screenshots über den Home Modus. Da die Gefence Erkennung der App aber eine riesen Prozesserlast auf der Syno produziert schalte ich den Home Modus der SSS über meine Anwesenheitserkennung von IOBroker. Dazu einfach auf der SSS eine Aktionregel für Home on und eine für Home off erstellen. Den Rest der Aufnahmesteuerung usw hab ich alles auf der SSS eingerichtet.
2017-09-09 09_17_38-Surveillance Station Client - Neckarstat.jpg
2017-09-09 09_27_46-2017-09-09 09_19_36-Surveillance Station Client - Neckarstat.jpg
2017-09-09 09_20_19-Surveillance Station Client - Neckarstat.jpg
2017-09-09 09_20_28-Surveillance Station Client - Neckarstat.jpg `
Hallo,
kannst Du bitte sagen wie Du das über IoBroker gelöst hast. Wie sieht Dein Script aus bzw. wie kann ich den Home-Modus aktivieren und deaktivieren in Abhängigkeit von einer Homematic Variable.
Ich bekomme es hin, dass ich es über einen Browser aktiviere und deaktiviere, aber am einbauen in Iobroker oder Homematic scheitere ich leider…
Sorry für die dumme Frage...
-
Hi Lobomau,
danke für Deine Hilfe. Habe es kapiert und bin jetzt auf das Script von Apollon gegangen und habe dieses unter Common angelegt und die jeweiligen Daten korrigiert.
Leider bleibt das Bild noch immer dunkel…
Hast Du eine Idee, wo mein Fehler sein könnte?
Unter Objekte sehe ich den Status "true".
var request = require('request'); // Konfiguration var user = "Admin"; // Synology Benutzer mit Berechtigung die Kamera anzuzeigen var pass = "Passwort"; // Passwort zu eben eingegebenem Benutzer var ip = "externeAdresse.net"; // IP-Adresse eures Synology-NAS var port = 8881; // default Port der Surveillance Station var cameraID = 1; // ID der Kamera, welche angezeigt werden soll createState('javascript.' + instance + '.Anzeigen.Kamera.Eingangstuer-Stream', {'type': 'string', 'read': true, 'write': true, 'role': 'value', 'def': ""}); // Authentifizierung an Synology Surveillance Station WebAPI und auslesen der SID function updateStreamUrl() { request('https://' + ip + ':' + port + '/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account=' + user + '&passwd=' + pass + '&session=SurveillanceStation&format=sid', function (error, response, body) { //console.log('error:', error); // Print the error if one occurred //console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received //console.log('body:', body); // Print the HTML for the Google homepage. try { var bodyObj = JSON.parse(body); } catch (e) { console.log("Error update SurveillanceStation Stream URL: " + e); return; } if (bodyObj && bodyObj.data && bodyObj.data.sid) { var sid = bodyObj.data.sid; setState('javascript.' + instance + '.Anzeigen.Kamera.Eingangstuer-Stream', 'http://' + ip + ':' + port + '/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&version=1&method=Stream&cameraId=' + cameraID + '&format=mjpeg&_sid=' + sid, true); } else { console.log("Invalid return on SurveillanceStation Stream URL: " + JSON.stringify(bodyObj)); return; } }); } schedule("0 * * * *", function() { updateStreamUrl(); }); updateStreamUrl(); ```` `
Hallo, ich hätte noch eine Frage dazu.
Ich habe dieses, mein erstes Script von Apollon jetzt zum Laufen bekommen und die URL zu dem Kamera Stream wird in IO Broker unter Objekte angezeigt und funktioniert.
Kann man vielleicht jetzt mithilfe von IO Broker von einer festen URL auf diese "dynamische URL" verlinken? Oder muss man dazu einen Web Server installieren und diese SS API Abfrage noch in PHP betreiben?
Ich würde gern den Stream noch in anderen Anwendungen nutzen, zB in Kodi im surveillance room addon.
-
Kann man vielleicht jetzt mithilfe von IO Broker von einer festen URL auf diese "dynamische URL" verlinken? Oder muss man dazu einen Web Server installieren und diese SS API Abfrage noch in PHP betreiben?
Ich würde gern den Stream noch in anderen Anwendungen nutzen, zB in Kodi im surveillance room addon. `
Mir vis könntest du den Link einer iframe wiedergeben bin mir aber nicht sicher ob das ist was du suchst?
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Kann man vielleicht jetzt mithilfe von IO Broker von einer festen URL auf diese "dynamische URL" verlinken? Oder muss man dazu einen Web Server installieren und diese SS API Abfrage noch in PHP betreiben?
Ich würde gern den Stream noch in anderen Anwendungen nutzen, zB in Kodi im surveillance room addon. `
Nur wenn Kodi auf dem gleichen Rechner wie IOBroker läuft. Die abgefragte SID hat nur auf diesem Rechner Gültigkeit.
Du kannst aber auch die Gültigkeit des Links in der Surveillance auf der Syno auf "dauerhaft" stellen, dann die mit deinem Rechner wo Kodi drauf ist einmalig einloggen und die SID abfragen, dann hast du die Links dort auch. (Falls sich aber was ändert, z.B. eine IP, gehen die Links nicht mehr)
-
Hey,
weil bisher primär PHP Code gepostet wurde, hier mal meine Lösung die ich aktuell verwende.
In der Synology Surveillancestation bei der "Stream Gültigkeit" habe ich "Dauerhaft" gewählt, trotzdem wird die URL nach 1-2 Wochen ungültig, also hole ich Sie jetzt täglich neu.
var request = require('request'); // Konfiguration var user = "surveillanceUser"; // Synology Benutzer mit Berechtigung die Kamera anzuzeigen var pass = "..."; // Passwort zu eben eingegebenem Benutzer var ip = "..."; // IP-Adresse eures Synology-NAS var port = 5000; // default Port der Surveillance Station var cameraID = 1; // ID der Kamera, welche angezeigt werden soll createState('javascript.' + instance + '.Anzeigen.Kamera.Eingangstuer-Stream', {'type': 'string', 'read': true, 'write': true, 'role': 'value', 'def': ""}); // Authentifizierung an Synology Surveillance Station WebAPI und auslesen der SID function updateStreamUrl() { request('http://' + ip + ':' + port + '/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account=' + user + '&passwd=' + pass + '&session=SurveillanceStation&format=sid', function (error, response, body) { //console.log('error:', error); // Print the error if one occurred //console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received //console.log('body:', body); // Print the HTML for the Google homepage. try { var bodyObj = JSON.parse(body); } catch (e) { console.log("Error update SurveillanceStation Stream URL: " + e); return; } if (bodyObj && bodyObj.data && bodyObj.data.sid) { var sid = bodyObj.data.sid; setState('javascript.' + instance + '.Anzeigen.Kamera.Eingangstuer-Stream', 'http://' + ip + ':' + port + '/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&version=1&method=Stream&cameraId=' + cameraID + '&format=mjpeg&_sid=' + sid, true); } else { console.log("Invalid return on SurveillanceStation Stream URL: " + JSON.stringify(bodyObj)); return; } }); } schedule("0 * * * *", function() { updateStreamUrl(); }); updateStreamUrl();
Es gibt dann einen Datenpunkt wo ich einmal pro Stunde ne neue URL hole und reinschreibe.
In Vis zeige ich es dann mit dem Cam-Widget an und {javascript.0.Anzeigen.Kamera.Eingangstuer-Stream} als "Source"/Quelle. Das klappt recht gut
Ingo `
Super Danke
Genau so habe ich es übernommen. Und es funktioniert.
Gruß
Jürgen
-
Hi,
sitze jetzt stunden daran, das Bild im ioBroker zu erhalten…jetzt hab ich es...manmanman.
Lösung:
-
Ich nutze den dyndns-Service von NO-IP und habe nicht meine IP, sondern entsprechend die NO-IP-Adresse im Skript hinterlegt
-
Ich nutze https und den entsprechenden Port 5001. Hab 2 Adressen in https abgeändert und oben im Skript die 5001 eingetragen
-
JETZT: Ich habe die Cam-ID 5 :lol: :lol: :lol: das hat mich die meisste Zeit gekostet...hab alles probiert und immer nur ID 1-4 :mrgreen:
Tip: Um den Link zu testen, einfach den generierten Link aus den Objekten herauskopieren, bei mir in Chrome einfügen und manuell die "&cameraId=X&" ändern (X = 1, 2, 3...) bis ein Bild kommt.
Daaaaaaanke für das Skript. Jetzt nur noch in vis reinbekommen
Viele Grüße, Thorsten
-
-
Sooo,
ich wieder. Die camera-widgets hab ich jetzt alle durch…tut es keins von. Funktionieren ja schon mal klasse.
Mit dem "basic string img src" widget klappt es...aber das verdeckt mir meine ganze Wohnung im View :lol: Kann ich irgendwie erreichen, dass ich ein Kamera.Symbol angezeigt bekomme und bei druffklicken geht das Bild auf? Und dann bei nem Klick von mir aus auf Schließen oder woanders hin geht das wieder zu?
Wenn das nicht geht, muss ich hat eine neue View mit dem cam-Bild machen (hab da etwas Angst, weil der mir in der App auf Android bei rsync ab und zu sagt, keine main view im Projekt :shock: . Muss dann 5-6 mal neu resyncen und auch neu laden, dann gehts wieder ).
Wie habt ihr das in euren Views umgesetzt?
Danke euch und Grüße, Thorsten
-
ich habs so
! ````
[{"tpl":"tplMfdCamSnapshot","data":{"visibility-cond":"==","visibility-val":1,"asButton":false,"interval":"1000","dialog_width":"800","dialog_height":"600","icon":"","url":"http://xxxxxxx:5000/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&version=1&method=Stream&cameraId=1&format=mjpeg&_sid=yyyyyyyyyy","title":"Kamera vorne","modal":false,"name":"Kamera vorne Dialog für großes Bild","filterkey":"Kamera","dialog_top":"20","dialog_left":"20","gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-is-moment":false,"lc-zindex":0,"autoclose":""},"style":{"left":"738px","top":"309px","width":"140px","height":"60px","border-width":"2px","border-style":"solid","border-color":"#ebe6d6","border-radius":"5px","z-index":"4","opacity":"0","background-color":"#861d1d","color":""},"widgetSet":"jqui-mfd"}] -
ich habs so
!
[{"tpl":"tplMfdCamSnapshot","data":{"visibility-cond":"==","visibility-val":1,"asButton":false,"interval":"1000","dialog_width":"800","dialog_height":"600","icon":"","url":"http://xxxxxxx:5000/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&version=1&method=Stream&cameraId=1&format=mjpeg&_sid=yyyyyyyyyy","title":"Kamera vorne","modal":false,"name":"Kamera vorne Dialog für großes Bild","filterkey":"Kamera","dialog_top":"20","dialog_left":"20","gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-is-moment":false,"lc-zindex":0,"autoclose":""},"style":{"left":"738px","top":"309px","width":"140px","height":"60px","border-width":"2px","border-style":"solid","border-color":"#ebe6d6","border-radius":"5px","z-index":"4","opacity":"0","background-color":"#861d1d","color":""},"widgetSet":"jqui-mfd"}]
` Hi danke dir. Kannst du noch nen Screen dazu Posten? Dann muss ich nicht erst importieren damit ich sehe, wir es aussehen sollteDanke und Grüße, Thorsten
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk
-
Hallo,
ich bekomme mit dem Script von Apollon folgenden Fehler:
javascript.0 2018-03-05 21:14:33.596 info script.js.MeineScripte.CamGarten: Invalid return on SurveillanceStation Stream URL: {"error":{"code":400},"success":false}
Weiß jemand warum?
-
Hallo zusammen,
ich habe ein Schwierigkeiten mit der Darstellung meiner Kamera Streams und vielleicht hat jemand eine Idee:
Ich habe 5 Trendnet (=HIKVision) Kameras. Da diese Probleme mit einem direkten Abruf der Streams machen (sie können wohl immer nur einen Client bedienen und steigen gerne mal ganz aus) habe ich sie in meine Synology eingebunden (das klappt gut) und hole mir mit dem obigen Script die dynamischen Links. Das passt alles auch gut. Die Darstellung erfolgt dann über das "Basic String Img src" Widget.
ABER:
Sobald ich auf die View wechsle mit den Kamerabildern, geht die Prozessor Last auf der Synology auf 100% und die Bilder kommen sporadisch bzw gar nicht mehr, wenn es mehr als eines sind. Und das bleibt auch so, wenn die View wieder weggeschaltet wird. D.h. der Stream "verstopft" weiterhin die Synology.
habt Ihr auch das Problem? Hat jemand eine Idee, wie ich das lösen kann.
Also den Load reduzieren und den Stream auch wieder stoppen, wenn der View nicht mehr aktiv ist.
Vielen Dank,
Markus
-
Hallo,
ich bekomme mit dem Script von Apollon folgenden Fehler:
javascript.0 2018-03-05 21:14:33.596 info script.js.MeineScripte.CamGarten: Invalid return on SurveillanceStation Stream URL: {"error":{"code":400},"success":false}
Weiß jemand warum? `
die login daten sind falsch .. würde ich tippen
-
Also irgendwie stimmt was mit dem Script nicht.
Ich habe einen extra benutzter für die Kamera bei mir der admini angelegt und ein temporäres Passwort(wird natürlich danach geändert) vergeben wie ihr im Script sehen könnt.
Hier ist das Script und danach der Fehler:
__var request = require('request');
// Konfiguration
var user = "admini"; // Synology Benutzer mit Berechtigung die Kamera anzuzeigen
var pass = "Winter2018"; // Passwort zu eben eingegebenem Benutzer
var ip = "192.168.6.200"; // IP-Adresse eures Synology-NAS
var port = 9900; // default Port der Surveillance Station
var cameraID = 2; // ID der Kamera, welche angezeigt werden soll
createState('javascript.' + instance + '.Anzeigen.Kamera.Eingangstuer-Stream', {'type': 'string', 'read': true, 'write': true, 'role': 'value', 'def': ""});
// Authentifizierung an Synology Surveillance Station WebAPI und auslesen der SID
function updateStreamUrl() {
request('http://' + ip + ':' + port + '/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account=' + user + '&passwd=' + pass + '&session=SurveillanceStation&format=sid', function (error, response, body) {
console.log('error:', error); // Print the error if one occurred
console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
console.log('body:', body); // Print the HTML for the Google homepage.
try {
var bodyObj = JSON.parse(body);
}
catch (e) {
console.log("Error update SurveillanceStation Stream URL: " + e);
return;
}
if (bodyObj && bodyObj.data && bodyObj.data.sid) {
var sid = bodyObj.data.sid;
setState('javascript.' + instance + '.Anzeigen.Kamera.Eingangstuer-Stream', 'http://' + ip + ':' + port + '/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&version=1&method=Stream&cameraId=' + cameraID + '&format=mjpeg&_sid=' + sid, true);
}
else {
console.log("Invalid return on SurveillanceStation Stream URL: " + JSON.stringify(bodyObj));
return;
}
});
}
schedule("0 * * * *", function() {
updateStreamUrl();
});
updateStreamUrl();__
script.js.common.CamEingang: Invalid return on SurveillanceStation Stream URL: {"error":{"code":400},"success":false}
Baue ich den String selber zusammen funktioniert es:
http://192.168.6.200:9900//webapi/auth. … format=sid
{"data":{"sid":"2wUTJTseubyHg1710NNN034612"},"success":true}
Also lieber Schwarm, irgendwo muss ein Fehler sein.
-
Ich bin auf der Suche nach einem Script-Beispiel, bei dem der Home Mode der Surveillance Station an- bzw. ausgeschaltet wird. Ich möchte den Schaltzustand des Home Modes an z.B. eine Anwesenheitsvariable knüpfen.
andyb hatte hier im Thread davon gesprochen. Ein passendes Skript würde mir helfen.
Danke
ak1
-
Mon!
Ich muß mich hier mal ranhänge.
Ausgangslage:
Ich benutze die hier geposteten PHP-Scripte um auf der Synology Snapshots zu triggern und die ID des Snapshots in Variablen zu schreiben.
Diese kann man dann per SQL-History konfortabel durchsuchen.
Dieses funktionierte lange ohne Probleme.
Problem:
Seit ca. einem Monat ist die Anmeldung an der Synology so langsam, das der Anmeldedienst (da ich das Bild alle 2sek Refreshe das System komplett auslastet.
Eine Anmeldung dauert ca. 10sec. (bis sid geholt).
Scriptfehler sinds nicht, auch wenn ich im Browser "manuell" eine Authetifizierung mache und eine sid hole dauert es so lange.
Hat jemand Ähnliches? Weiß jemand welche Einstellung/Update/etc. bei der Synology den Authetifizierungsdienst verändert hat?
Danke Euch!
Mr.Lee
bis denne
Mr.Lee
-
Hi.
Grundsätzlich geht es ja hier um Screenshots erstellen, verschicken und einbindne in VIS.
Ich möchte was ganz simples, weiß aber nicht wie ich es anstellen kann.
Ich habe 4 Kameras in der SSS und möchte die SSS aktivieren, wenn ich meine Alarmanlage scharf schalte (quasi eine Systemvariable in der Homematic…)
Ich habes mir so vorgestellt, dass ich die Aufnahme Einstellungen in der SSS einfach auf Bewegungserkennung stelle, rund um die Uhr….
Und aktivieren tue ich eben über den Modus Alarmanlage aktiv.
Gibt es dazu eine Lösung.
Habe das Widget schon drauf, aber da kann man nur screenshots und so erstellen und nicht die SSS aktivieren und deaktiviren.
Habe die aktuelleste Version drauf. (8...)
Danke, Gruß
-
Ich habe 4 Kameras in der SSS und möchte die SSS aktivieren, wenn ich meine Alarmanlage scharf schalte (quasi eine Systemvariable in der Homematic…)
Ich habes mir so vorgestellt, dass ich die Aufnahme Einstellungen in der SSS einfach auf Bewegungserkennung stelle, rund um die Uhr….
Und aktivieren tue ich eben über den Modus Alarmanlage aktiv. `
Hast du mal in den Aktionsregeln geschaut?
Dort kann man -durch externe Ereignisse aktiviert- AKtionen auslösen.
z.B. Kameras de-/aktivieren, HomeMode de-/aktivieren, Aufnahme starten/stoppen oder weitere Externe AKtionen ausführen.
Somit habe ich geregelt dass mein ioBroker -sobald per WLAN Anwesenheit erkannt- den Home Mode einschaltet.
Die DS Cam App funktioniert hier ja nicht zuverlässig.
Dazu habe ich allerdings eine Frage:
Mein Befehl zum Einschalten des Homemode lautet:
https://192.168.0.123:5001/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method="Trigger"&version=1&eventId=1&account="admin"&password="XXXXXXX"
Wenn ich den per Browser ausführe, wird der Homemode eingeschaltet.
Wenn der ioBroker aufm Pi den Befehl ausführt, passiert nichts.
So sieht das Blockly dazu aus: