Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Synology Surveillance Station API

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

Synology Surveillance Station API

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
181 Beiträge 51 Kommentatoren 61.5k Aufrufe 35 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B Offline
    B Offline
    bku
    schrieb am zuletzt editiert von
    #29

    Super, funktioniert auch bei mir!

    Gruß und Danke

    Bernd

    1 Antwort Letzte Antwort
    0
    • lobomauL Offline
      lobomauL Offline
      lobomau
      schrieb am zuletzt editiert von
      #30

      Ich versuche gerade meine zweite cam mit einzubinden fuer snapshots.

      Meine zweite cam hat die ID 4 und mit der Aenderung funktioniert die zweite cam <u>alleine</u>:

      var url_snapshot = 'http://192.168.178.24:5000/webapi/entry.cgi?camStm=1&version=8&cameraId=4&api=SYNO.SurveillanceStation.Camera&preview=true&method=GetSnapshot';
      

      Was ich bisher versucht habe:

      • einfach die URL-Zeile zweimal schreiben, nur mit unterschiedlicher cameraID -> kommt nur ein Foto

      • zwei Scripte geschrieben fuer jede cam ein eigenes: geht manchmal aber nicht immer (mal 1 Foto, mal 2). Ich denke der gleichzeitige Befehl an beide cams ist suboptimal. Ich stelle mir vor beide in ein Script zu schreiben und einfach ein kleines delay zwischen beiden snapshots, 250ms, einzubauen.

      Aber wie macht man das?

      Host: NUC8i3 mit Proxmox:

      • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
      • Slave: Pi4
      1 Antwort Letzte Antwort
      0
      • Alex1808A Offline
        Alex1808A Offline
        Alex1808
        schrieb am zuletzt editiert von
        #31

        eigentlich mit dem zwei scripts soll gehen, was hast als Trieger?

        1 Antwort Letzte Antwort
        0
        • lobomauL Offline
          lobomauL Offline
          lobomau
          schrieb am zuletzt editiert von
          #32

          @Alex1808:

          eigentlich mit dem zwei scripts soll gehen, was hast als Trieger? `
          Zum Testen benutze ich einen homematic Lichtschalter. Sonst den Bewegungsmelder,innen von HM.

          Host: NUC8i3 mit Proxmox:

          • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
          • Slave: Pi4
          1 Antwort Letzte Antwort
          0
          • Alex1808A Offline
            Alex1808A Offline
            Alex1808
            schrieb am zuletzt editiert von
            #33

            @lobomau:

            @Alex1808:

            eigentlich mit dem zwei scripts soll gehen, was hast als Trieger? Zum Testen benutze ich einen homematic Lichtschalter. Sonst den Bewegungsmelder,innen von HM.

            Mache vielleicht etwas anderes, lege zwei variablen bei javascript.0, z.b. snapshot1 und snapshot2, die trägst du in beiden scripts und baue einen script mit Trieger so das er nur bei bestimmten regeln diese variablen ansteuert.

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              Semenchkare
              schrieb am zuletzt editiert von
              #34

              Hallo,

              ich habe seit Monaten dieses Script am laufen:

              Seit gestern Abend gibt es kein Bild mehr auf meinem VIS. Folgender Fehler wird angezeigt, wenn ich die API der Surveillance direkt im Browser aufrufe_

              > Warning: fopen([http://192.168.xxx.xxx:5000/webapi/Surv … 0NEN300004](http://192.168.xxx.xxx:5000/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&amp;version=1&amp;method=Stream&amp;cameraId=1&amp;format=mjpeg&amp;_sid=3SqyukBt6kkio15A0NEN300004)): failed to open stream: HTTP request failed! HTTP/1.1 502 Bad Gateway in /volume1/web/cam/stream.php on line 24 Warning: fgets() expects parameter 1 to be resource, boolean given in /volume1/web/cam/stream.php on line 28 .

              Ich selbst habe weder eine Firmware geändert. Höchstens auf der Synology könnte ein Auto-Update erfolgt sein.

              Im Einsatz ist dort die Surveillance 7.2, neueste Firmware.

              Hat sich etwa die API bei Surveillance geändert? Dann müsste jemand anders doch das gleiche Problem haben.

              Und:

              Ja, ich habe die Cam, die Synology etc. alles schon neu gestartet. Die Cam funktioniert per direkt-Link auch noch…

              Viele Grüße

              Semenchkare

              raspberry 5 8GB mit iobroker,
              raspberry 5 8GB mit Raspberrymatic

              1 Antwort Letzte Antwort
              0
              • apollon77A Offline
                apollon77A Offline
                apollon77
                schrieb am zuletzt editiert von
                #35

                Hey All,

                geht das noch? Ich will auch mit dem Thema anfangen 🙂

                Bei der npm Library steht:

                This project is deprecated, because the api used is not existing anymore in the current DSM.

                … geändert vor 6 Monaten ...

                Ist die API noch da oder nicht? 🙂

                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                1 Antwort Letzte Antwort
                0
                • lobomauL Offline
                  lobomauL Offline
                  lobomau
                  schrieb am zuletzt editiert von
                  #36

                  @apollon77:

                  Hey All,

                  geht das noch? Ich will auch mit dem Thema anfangen 🙂

                  Bei der npm Library steht:

                  This project is deprecated, because the api used is not existing anymore in the current DSM.

                  … geändert vor 6 Monaten ...

                  Ist die API noch da oder nicht? 🙂 `
                  Ja, also mein Script mit der API läuft noch. Fotos kommen per telegram an.

                  Host: NUC8i3 mit Proxmox:

                  • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                  • Slave: Pi4
                  1 Antwort Letzte Antwort
                  0
                  • A Offline
                    A Offline
                    andyb
                    schrieb am zuletzt editiert von
                    #37

                    Es tut sich was im Hause Synology.

                    Die Beta der SSS hat jetzt einen "Home-Modus" der per Geofence in der App funktioniert.

                    Mal ausprobieren…

                    1 Antwort Letzte Antwort
                    0
                    • lobomauL Offline
                      lobomauL Offline
                      lobomau
                      schrieb am zuletzt editiert von
                      #38

                      @andyb:

                      Es tut sich was im Hause Synology.

                      Die Beta der SSS hat jetzt einen "Home-Modus" der per Geofence in der App funktioniert.

                      Mal ausprobieren… `
                      Ja, und jetzt kann man mit der beta mit chrome browser die aufgenommenen videos anschauen.

                      Host: NUC8i3 mit Proxmox:

                      • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                      • Slave: Pi4
                      1 Antwort Letzte Antwort
                      0
                      • A Offline
                        A Offline
                        andyb
                        schrieb am zuletzt editiert von
                        #39

                        Ich find nur keine api Beschreibung zur beta….

                        1 Antwort Letzte Antwort
                        0
                        • apollon77A Offline
                          apollon77A Offline
                          apollon77
                          schrieb am zuletzt editiert von
                          #40

                          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

                          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                          1 Antwort Letzte Antwort
                          3
                          • lobomauL Offline
                            lobomauL Offline
                            lobomau
                            schrieb am zuletzt editiert von
                            #41

                            EDIT: habe das Problem gefunden. Ich musste es natürlich für mich anpassen mit 2x https 🙂
                            @apollon77:

                            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 `  
                            

                            Das klingt gut. Leider ist da bei mir noch irgendwo ein Fehler.

                            Anpassen muss ich oben nur die 5 Variablen, richtig?

                            Ich habe ja nur https mit 5001… vielleicht macht das schon Probleme?

                            Ansonsten user, pass und ip ohne die "Anführungszeichen", richtig?

                            Wie bekommt man systematisch die cameraID raus? Bei mir ist es durch Ausprobieren 2 und 4, obwohl ich nur 2 cams habe.

                            Fehler:

                            javascript.0	2017-08-09 15:56:46.989	error	script.js.common.cam.cam_innen compile failed: SyntaxError: Unexpected token !
                            

                            Host: NUC8i3 mit Proxmox:

                            • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                            • Slave: Pi4
                            1 Antwort Letzte Antwort
                            0
                            • apollon77A Offline
                              apollon77A Offline
                              apollon77
                              schrieb am zuletzt editiert von
                              #42

                              Hm … schau mal ob da wirklich nichts reingerutzt ist. Such mal in deinem Skript nach einem "!" 😉

                              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                              1 Antwort Letzte Antwort
                              0
                              • lobomauL Offline
                                lobomauL Offline
                                lobomau
                                schrieb am zuletzt editiert von
                                #43

                                @apollon77:

                                Hm … schau mal ob da wirklich nichts reingerutzt ist. Such mal in deinem Skript nach einem "!" 😉 `
                                Im Passwort ist eins. Bitte nicht weitersagen 😉

                                Host: NUC8i3 mit Proxmox:

                                • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                                • Slave: Pi4
                                1 Antwort Letzte Antwort
                                0
                                • lobomauL Offline
                                  lobomauL Offline
                                  lobomau
                                  schrieb am zuletzt editiert von
                                  #44

                                  Hmm… will immer noch nicht. Habe neuen User. Nun meckert er bei der IP:

                                  javascript.0	2017-08-09 19:04:46.571	error	script.js.common.cam.cam_aussen compile failed: SyntaxError: Unexpected number
                                  

                                  Die Zeile mit IP wird auch innerhalb des Adapters rot markiert. "a leading decimal can be confused…"

                                  Host: NUC8i3 mit Proxmox:

                                  • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                                  • Slave: Pi4
                                  1 Antwort Letzte Antwort
                                  0
                                  • apollon77A Offline
                                    apollon77A Offline
                                    apollon77
                                    schrieb am zuletzt editiert von
                                    #45

                                    Hast Du die ID etwa als Zahl geschrieben? Das muss ein String sein, also

                                    "192.168.111.111"

                                    mit Anführungszeichen drumrum

                                    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                    1 Antwort Letzte Antwort
                                    0
                                    • lobomauL Offline
                                      lobomauL Offline
                                      lobomau
                                      schrieb am zuletzt editiert von
                                      #46

                                      Edit: nee, leider weiterhin unexpected token 😞
                                      @apollon77:

                                      Hast Du die ID etwa als Zahl geschrieben? Das muss ein String sein, also

                                      "192.168.111.111"

                                      mit Anführungszeichen drumrum `
                                      OK. Wir kommen der Sache schon näher mit "…":

                                      // Konfiguration
                                      var user = "user";  // Synology Benutzer mit Berechtigung die Kamera anzuzeigen
                                      var pass = "pass";  // Passwort zu eben eingegebenem Benutzer
                                      var ip = "192.168.178.24";  // IP-Adresse eures Synology-NAS
                                      var port = 5001;  // default Port der Surveillance Station
                                      var cameraID = 4;  // ID der Kamera
                                      

                                      Habe jetzt keinen Fehler mehr. Aber immer noch einen Hinweis. Vielleicht füllt er die value korrekt zur vollen Stunden!?

                                      javascript.0	2017-08-09 21:15:43.482	info	script.js.common.cam.cam_innen: Error update SurveillanceStation Stream URL: SyntaxError: Unexpected token u in JSON at position 0
                                      javascript.0	2017-08-09 21:15:43.383	info	script.js.common.cam.cam_innen: registered 0 subscriptions and 1 schedule
                                      javascript.0	2017-08-09 21:15:43.248	info	Start javascript script.js.common.cam.cam_innen
                                      

                                      Host: NUC8i3 mit Proxmox:

                                      • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                                      • Slave: Pi4
                                      1 Antwort Letzte Antwort
                                      0
                                      • lobomauL Offline
                                        lobomauL Offline
                                        lobomau
                                        schrieb am zuletzt editiert von
                                        #47

                                        Nun klappt es mit dem Script. Habe umgestellt auf port 5000 und http.

                                        Welches cam widget soll ich nun nehmen wo die source eingestellt wird?

                                        Bei denen kann ich es nicht eintragen:

                                        jqui-mfd Cam/Video (Object)

                                        jqui-mfd Cam/Video (img)

                                        basic image

                                        jqui-mfd Cam/ Snapshot dialog

                                        Host: NUC8i3 mit Proxmox:

                                        • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                                        • Slave: Pi4
                                        1 Antwort Letzte Antwort
                                        0
                                        • A Offline
                                          A Offline
                                          andyb
                                          schrieb am zuletzt editiert von
                                          #48

                                          @lobomau:

                                          Welches cam widget soll ich nun nehmen wo die source eingestellt wird? `
                                          basic - string img src

                                          1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          318

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe