Skip to content
  • Home
  • 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

Community Forum

  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.3k

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

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

Synology Surveillance Station API

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
181 Beiträge 51 Kommentatoren 61.6k 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.
  • D der_Auge

    @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 `

    Super Danke

    Genau so habe ich es übernommen. Und es funktioniert.

    Gruß

    Jürgen

    XBiTX Offline
    XBiTX Offline
    XBiT
    schrieb am zuletzt editiert von
    #172

    @apollon77 @der_Auge

    Hallo,

    du hattest mal hier irgendwo dieses script bereitgestellt (finde es leider nicht mehr im original)

    @der_Auge said in Synology Surveillance Station API:
    @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 `

    Super Danke

    Genau so habe ich es übernommen. Und es funktioniert.

    Gruß

    Jürgen

    Ich habe das Problem das die Synology nach einiger Zeit ca 20 mal die videostreaming.cgi offen hat und die CPU Last bei 99% ist.
    Nach einen Neustart der SurveillanceStation geht es erst mal ein paar Stunden wieder bis die Prozesse in der Anzahl wieder ansteigen.

    Gibt es dafür eine Lösung?
    Hat noch jemand dieses Verhalten?

    Gruß XBiT

    ? 1 Antwort Letzte Antwort
    0
    • XBiTX XBiT

      @apollon77 @der_Auge

      Hallo,

      du hattest mal hier irgendwo dieses script bereitgestellt (finde es leider nicht mehr im original)

      @der_Auge said in Synology Surveillance Station API:
      @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 `

      Super Danke

      Genau so habe ich es übernommen. Und es funktioniert.

      Gruß

      Jürgen

      Ich habe das Problem das die Synology nach einiger Zeit ca 20 mal die videostreaming.cgi offen hat und die CPU Last bei 99% ist.
      Nach einen Neustart der SurveillanceStation geht es erst mal ein paar Stunden wieder bis die Prozesse in der Anzahl wieder ansteigen.

      Gibt es dafür eine Lösung?
      Hat noch jemand dieses Verhalten?

      Gruß XBiT

      ? Offline
      ? Offline
      Ein ehemaliger Benutzer
      schrieb am zuletzt editiert von
      #173

      @XBiT ...das Problem hab ich auch... dachte erst, es liegt daran, dass ich 18 Kameras eingebunden habe, aber das hat damit nix zu tun.. irgendwas hängt sich da..:-(

      XBiTX 1 Antwort Letzte Antwort
      0
      • ? Ein ehemaliger Benutzer

        @XBiT ...das Problem hab ich auch... dachte erst, es liegt daran, dass ich 18 Kameras eingebunden habe, aber das hat damit nix zu tun.. irgendwas hängt sich da..:-(

        XBiTX Offline
        XBiTX Offline
        XBiT
        schrieb am zuletzt editiert von
        #174

        @ilovegym

        Ich denke mal das es an der schedule Funktion im Script liegt die jede Stunde die Ausführung startet.
        Habe mal das Script gestoppt, die Werte sind ja im Object vorhanden und habe nicht mehr so viele videostreaming.cgi sessions offen. (jedenfalls bis jetzt 2 Stunden lang)

        1 Antwort Letzte Antwort
        0
        • S Offline
          S Offline
          skokarl
          schrieb am zuletzt editiert von
          #175

          Morgen,
          ich kann Euch gerade nicht allen folgen, ist mir noch zu schwierig.

          Ich hab ne DS718+, mit 2 Kameras in der Surveillance Station.
          Komme ich noch irgendwie an den Stream und kann mir damit MotionEye auf meiner Nuc sparen ?
          oder ist das zu aufwändig, anfällig, oder wie auch immer ?

          Bewegungsaufzeichnung etc, brauch ich alles nicht, ich brauche nur das Livebild für die View.

          IOBroker mit Proxmox auf Celeron Nuc mit 16 GB und Debian11, Sonos API, Echo Show 15 als Wandtablet, Homematic IP, HUE, Sonos, Echos, DS718+ als Backup

          Samson71S 1 Antwort Letzte Antwort
          0
          • S skokarl

            Morgen,
            ich kann Euch gerade nicht allen folgen, ist mir noch zu schwierig.

            Ich hab ne DS718+, mit 2 Kameras in der Surveillance Station.
            Komme ich noch irgendwie an den Stream und kann mir damit MotionEye auf meiner Nuc sparen ?
            oder ist das zu aufwändig, anfällig, oder wie auch immer ?

            Bewegungsaufzeichnung etc, brauch ich alles nicht, ich brauche nur das Livebild für die View.

            Samson71S Offline
            Samson71S Offline
            Samson71
            Global Moderator
            schrieb am zuletzt editiert von
            #176

            @skokarl
            Bei mir funktioniert es immer noch mit dem Skript von Apollon. Allerdings ist das kein echter Livestream, sondern ein Standbild mit sekündlicher Aktualisierung. Reicht mir aber. Die Aufzeichnung läuft nativ über die Syno.

            Markus

            Bitte beachten:
            Hinweise für gute Forenbeiträge
            Maßnahmen zum Schutz des Forums

            S 1 Antwort Letzte Antwort
            0
            • Samson71S Samson71

              @skokarl
              Bei mir funktioniert es immer noch mit dem Skript von Apollon. Allerdings ist das kein echter Livestream, sondern ein Standbild mit sekündlicher Aktualisierung. Reicht mir aber. Die Aufzeichnung läuft nativ über die Syno.

              S Offline
              S Offline
              skokarl
              schrieb am zuletzt editiert von
              #177

              @Samson71 sagte in Synology Surveillance Station API:

              @skokarl
              Bei mir funktioniert es immer noch mit dem Skript von Apollon. Allerdings ist das kein echter Livestream, sondern ein Standbild mit sekündlicher Aktualisierung. Reicht mir aber. Die Aufzeichnung läuft nativ über die Syno.

              Benötigt man nur das Script ?
              Wo kriege ich das her ?

              IOBroker mit Proxmox auf Celeron Nuc mit 16 GB und Debian11, Sonos API, Echo Show 15 als Wandtablet, Homematic IP, HUE, Sonos, Echos, DS718+ als Backup

              Samson71S K ? 3 Antworten Letzte Antwort
              0
              • S skokarl

                @Samson71 sagte in Synology Surveillance Station API:

                @skokarl
                Bei mir funktioniert es immer noch mit dem Skript von Apollon. Allerdings ist das kein echter Livestream, sondern ein Standbild mit sekündlicher Aktualisierung. Reicht mir aber. Die Aufzeichnung läuft nativ über die Syno.

                Benötigt man nur das Script ?
                Wo kriege ich das her ?

                Samson71S Offline
                Samson71S Offline
                Samson71
                Global Moderator
                schrieb am zuletzt editiert von Samson71
                #178

                @skokarl
                Das "Original" stammt meine ich von der 2. Seite dieses Threads:
                https://forum.iobroker.net/topic/3742/synology-surveillance-station-api/40
                Ist schon etwas her.

                Markus

                Bitte beachten:
                Hinweise für gute Forenbeiträge
                Maßnahmen zum Schutz des Forums

                1 Antwort Letzte Antwort
                0
                • S skokarl

                  @Samson71 sagte in Synology Surveillance Station API:

                  @skokarl
                  Bei mir funktioniert es immer noch mit dem Skript von Apollon. Allerdings ist das kein echter Livestream, sondern ein Standbild mit sekündlicher Aktualisierung. Reicht mir aber. Die Aufzeichnung läuft nativ über die Syno.

                  Benötigt man nur das Script ?
                  Wo kriege ich das her ?

                  K Offline
                  K Offline
                  Kueppert
                  schrieb am zuletzt editiert von
                  #179

                  @skokarl bei mir läuft das Skript auch noch und funktioniert :) Probiere es mal aus

                  UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

                  EnduranceE 1 Antwort Letzte Antwort
                  0
                  • K Kueppert

                    @skokarl bei mir läuft das Skript auch noch und funktioniert :) Probiere es mal aus

                    EnduranceE Offline
                    EnduranceE Offline
                    Endurance
                    schrieb am zuletzt editiert von
                    #180

                    @Kueppert @skokarl
                    kann ich bestätigen, hab es gerade getestet, läuft noch. noch.... ;-)

                    1 Antwort Letzte Antwort
                    0
                    • NegaleinN Offline
                      NegaleinN Offline
                      Negalein
                      Global Moderator
                      schrieb am zuletzt editiert von Negalein
                      #181

                      der neue Thread zum ioBroker Synology Adapter findet hier hier

                      ° Node.js: 20.17.0 NPM: 10.8.2
                      ° Proxmox, Ubuntu 22.04.3 LTS
                      ° Fixer ---> iob fix

                      1 Antwort Letzte Antwort
                      2
                      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

                      333

                      Online

                      32.4k

                      Benutzer

                      81.4k

                      Themen

                      1.3m

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

                      • Du hast noch kein Konto? Registrieren

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