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.
  • 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
    • D Offline
      D Offline
      deifel
      schrieb am zuletzt editiert von
      #49

      Hallo zusammen,

      ich verfolge den Thread schon ein paar Tage und bin gerade auch dran, meine Synology in IOBroker einzubauen. Ich habe 9 Kameras und möchte gerne ein View mit allen Kameras erstellen.

      Die einzelnen Standbilder sollen sich alle 10 Sekunden erneuern (egal ob Bewegung oder nicht). Bei Bewegung soll ein Live-Video zu sehen sein mit 30 Sekunden Nachlaufzeit.

      Wenn man auf eine der Kameras im View klickt, dann sollte grundsätzlich ein Live-Video laufen - am besten im Vollbild.

      Soweit die Wünsche :lol: Ist das darstellbar?

      Ich bin leider noch Anfänger und bekomme aktuell nicht mal das Bild der ersten Kamera hin 😕

      Bin wie folgt vorgegangen:

      Im Reiter Scripte unter global habe ich ein Javascript erzeugt und die Ip-Adressen, Ports und Kamera-ID ersetzt. Außerdem habe ich einfach mal einen Bewegungssensor als variable genommen (ganz unten im Script). Das Script sieht jetzt so aus:

      var request = require("request");
      var fs = require('fs');
      var myJson = {};
      var sid = 0;
      
      function parseJson(text) {
      if (text === "") return {};
      try {
      json = JSON.parse(text);
      } catch (ex) {
      json = {};
      }
      if(!json) json = {};
      return json;
      }
      
      function readJson(url, callback) {
      request(url, function (err, state, body){
      if (body) {
      var json = parseJson(body);
      callback(null, json);
      } else {
      var error = "(" + err + ") ERROR bei Abfrage von: " + url;
      log(error, "warn"); 
      callback(error, null);
      }
      });
      }
      
      var url_login ='https://externAdress.myfritz.net:5001/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=admin&passwd=Synopasswort&session=SurveillanceStation&format=sid';
      var url_logout = 'https://externAdress.myfritz.net:5001/webapi/auth.cgi? api=SYNO.API.Auth&method=Logout&version=2&session=SurveillanceStation';
      var url_snapshot = 'https://externAdress.myfritz.net:5001/webapi/entry.cgi?camStm=1&version=8&cameraId=1&api=SYNO.SurveillanceStation.Camera&preview=true&method=GetSnapshot';
      
      function main() {
      readJson(url_login, function(err,json) {
      if(!err) {
      myJson = json;
      sid = myJson.data.sid;
      url_snapshot += '&_sid='+sid;
      url_logout += '&_sid='+sid;
      request.get({url: url_snapshot, encoding: 'binary'}, function (err, response, body) {
      fs.writeFile("/tmp/snap.jpg", body, 'binary', function(err) {
      if (err) {
      console.error(err);
      } else {
      console.log('Snapshot sent');
      sendTo('telegram.0', '/tmp/snap.jpg');
      request.get({url: url_logout, encoding: 'binary'})
      }
      }); 
      });
      } else {
      log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
      myJson = {};
      }
      });
      }
      
      on({id: "hm-rpc.0.LEQ0987565.1.MOTION"/* variable aktualiseren um snapshot zu versenden*/}, main);
      

      Dann habe ich das Script gestartet und im Vis-Editor das Widget basic-String-igm-scr genommen und dort unter Objekt das Script ausgewählt.

      War das richtig?? Ich bekomme leider kein Bild angezeigt.

      Gehe ich mit dem Browser auf https://externAdress.myfritz.net:5001/w … etSnapshot

      dann bekomme ich einen Snapshot von der Kamera - das scheint also zu funktionieren.

      Würde mich freuen, wenn mir jemand auf die Sprünge helfen könnte.

      Herzlichen Dank dafür und Grüße

      Frank

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

        @andyb:

        @lobomau:

        Welches cam widget soll ich nun nehmen wo die source eingestellt wird? basic - string img src Danke. Probiere ich mal aus.

        @deifel: das Script speicherst du unter common, nicht global. Ansonsten sieht es so richtig aus wie du es gemacht hast.

        Unter Objekte wird auch die IP Adresse dargestellt mit dem token?

        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
          #51

          @deifel: habe jetzt erst gesehen, dass du beim Script bist um Bilder auf telegram zu senden.

          Wir reden aber zuletzt über das Script von apollon77. Das musst du dafür nehmen.

          Host: NUC8i3 mit Proxmox:

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

            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();
            
            1 Antwort Letzte Antwort
            0
            • D Offline
              D Offline
              deifel
              schrieb am zuletzt editiert von
              #53

              Bekomme folgenden Fehler im Log:

              11:46:53.789 [info] javascript.0 script.js.common.Kamera_Pavillion: Error update SurveillanceStation Stream URL: SyntaxError: Unexpected token u

              1 Antwort Letzte Antwort
              0
              • D Offline
                D Offline
                deifel
                schrieb am zuletzt editiert von
                #54

                Habe umgestellt auf http wie Du auch und jetzt klappt es 🙂

                Danke!

                1 Antwort Letzte Antwort
                0
                • D Offline
                  D Offline
                  deifel
                  schrieb am zuletzt editiert von
                  #55

                  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!

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

                    @deifel:

                    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! `
                    Interessant. Ich habe es andersrum am Laufen.

                    Ich habe die lokale IP von NAS angegeben und kann nur die Bilder sehen, wenn ich im eigenen Netz bin oder unterwegs VPN dazu nehme. So gefällt mir das ganz gut.

                    Host: NUC8i3 mit Proxmox:

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

                      Hi zusammen, mal kurz ne Frage an die Fachleute

                      Wie kann ich mit ioBroker durch einen z.b. BWM eine Aufnahme auf der Synology Surveillance Station starten (also mit Vorlauf und Nachlauf)

                      Ich verwende die SSS 7.2.

                      Brauche ich da auch immer ne neue SID?

                      Die Syno schlägt mir solch einen Link vor

                      http://<ip>:<port>/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method="Trigger"&version=1&eventId=1&eventName="ExtAlarm"&account="username"&password="userpassword"</port></ip>
                      

                      Wie ist da eure Erfahrung?

                      Kann ich das in nem Javascript einfach mit nem request anstoßen?

                      z.B.

                      var request = require('request');
                      
                      function record() {
                      request('http://<ip>:<port>/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method="Trigger"&version=1&eventId=1&eventName="ExtAlarm"&account="username"&password="userpassword");
                      }
                      
                      on({id: "hm-rpc.0.XXXXXXXXXXXX.1.MOTION"}, record);</port></ip> 
                      

                      Gruß

                      Johnny

                      Intel-NUC mit ProxMox: ioBroker,SQL, logging Strom- Gas- u. Wasserzähler;10Zoll Tab im Flur für VIS; weiteres: Homematic CCU2, Homeduino, Kameras, selbstgebaute Wetterstation;

                      1 Antwort Letzte Antwort
                      0
                      • A Offline
                        A Offline
                        andyb
                        schrieb am zuletzt editiert von
                        #58

                        Sollte gehen. Ich würde aber noch, wie in die vorherigen Beispielen die SID mit in das Skript einbauen.

                        Anderer Ansatz wäre noch, den Homemodus zu deaktivieren und entsprechende Aufnahmeregeln auf der SSS zu erstellen. Dafür hab ich aber den api Befehl noch nicht rausgefunden.

                        Ebenfalls eine Alternative, per Request die Cam per Skript zu aktivieren bzw deaktivieren. Hat halt den Nachteil, wenn deaktiviert alle Regeln der SSS ausser Kraft gesetzt.

                        1 Antwort Letzte Antwort
                        0
                        • A Offline
                          A Offline
                          ACE76
                          schrieb am zuletzt editiert von
                          #59

                          @deifel:

                          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?

                          1 Antwort Letzte Antwort
                          0
                          • A Offline
                            A Offline
                            andyb
                            schrieb am zuletzt editiert von
                            #60

                            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.
                            1586_2017-09-09_09_17_38-surveillance_station_client_-_neckarstat.jpg
                            1586_2017-09-09_09_27_46-2017-09-09_09_19_36-surveillance_station_client_-_neckarstat.jpg
                            1586_2017-09-09_09_20_19-surveillance_station_client_-_neckarstat.jpg
                            1586_2017-09-09_09_20_28-surveillance_station_client_-_neckarstat.jpg

                            1 Antwort Letzte Antwort
                            0
                            • Samson71S Offline
                              Samson71S Offline
                              Samson71
                              Global Moderator
                              schrieb am zuletzt editiert von
                              #61

                              @apollon77:

                              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?

                              1 Antwort Letzte Antwort
                              0
                              • D Offline
                                D Offline
                                deifel
                                schrieb am zuletzt editiert von
                                #62

                                @andyb:

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

                                1 Antwort Letzte Antwort
                                0
                                • M Offline
                                  M Offline
                                  mitzu1981
                                  schrieb am zuletzt editiert von
                                  #63

                                  @deifel:

                                  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.

                                  1 Antwort Letzte Antwort
                                  0
                                  • DutchmanD Offline
                                    DutchmanD Offline
                                    Dutchman
                                    Developer Most Active Administrators
                                    schrieb am zuletzt editiert von
                                    #64

                                    @mitzu1981:

                                    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

                                    1 Antwort Letzte Antwort
                                    0
                                    • A Offline
                                      A Offline
                                      andyb
                                      schrieb am zuletzt editiert von
                                      #65

                                      @mitzu1981:

                                      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)

                                      1 Antwort Letzte Antwort
                                      0
                                      • D Offline
                                        D Offline
                                        der_Auge
                                        schrieb am zuletzt editiert von
                                        #66

                                        @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

                                        Master: DN2820FYKH (4GB) Linux NUC 4.4.0-22-generic #40-Ubuntu x86_64

                                        Slave: Linux RPi2-1 4.1.19-v7+ #858 v4.4.3 # 2.15.1

                                        SQL-DB : Linux DS 3.10.77 #7321 x86_64 synology412+

                                        Test : DS916+ VM Debian

                                        Test : Tinker mit piVCCU

                                        XBiTX 1 Antwort Letzte Antwort
                                        0
                                        • K Offline
                                          K Offline
                                          Kueppert
                                          schrieb am zuletzt editiert von
                                          #67

                                          Hi,

                                          sitze jetzt stunden daran, das Bild im ioBroker zu erhalten…jetzt hab ich es...manmanman.

                                          Lösung:

                                          1. Ich nutze den dyndns-Service von NO-IP und habe nicht meine IP, sondern entsprechend die NO-IP-Adresse im Skript hinterlegt

                                          2. Ich nutze https und den entsprechenden Port 5001. Hab 2 Adressen in https abgeändert und oben im Skript die 5001 eingetragen

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

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

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

                                          756

                                          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