Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Synology Surveillance Station API

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Synology Surveillance Station API

    This topic has been deleted. Only users with topic management privileges can see it.
    • hollywoot
      hollywoot last edited by

      Update für alle:

      mein System war scheinbar nicht ganz in Ordnung.
      Zudem hatte ich node 10 installiert. Diese beiden Sachen zusammen haben scheinbar dazu geführt, dass ich die hier geposteten Skripte nicht nutzen konnte.

      Nachdem ich jetzt ioBroker sauber neu aufgesetzt habe, funktioniert alles wie es soll!
      Ein riesiges Dankeschön geht raus an @dslraser, der sich stundenlang mit mir im TeamViewer hingesetzt hat um das Problem zu lösen. Alleine hätte ich wohl spätestens nach 4-5 Stunden wieder aufgegeben.

      Top!

      M 1 Reply Last reply Reply Quote 1
      • H
        hobbycamper last edited by

        Hi zusammen,

        hat noch jemand @apollon77 Skript am laufen?

        var request = require('request');
        
        // Konfiguration
        var user = "XXXXXX";  // Synology Benutzer mit Berechtigung die Kamera anzuzeigen
        var pass = "XXXXXXX";  // Passwort zu eben eingegebenem Benutzer
        var ip = "192.168.178.XXX";  // IP-Adresse eures Synology-NAS
        var port = XXX;  // 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();
        

        Lief monatelang ohne Probleme. Scheinbar nach irgend einem Update, entweder iobroker oder SurveillanceStation (aktuell 8.2.3-5828), kommt kein Bild mehr. Wenn ich die angelegte URL aus dem Datenpunkt in den Browser kopiere, kommt auch kein Bild.
        Das wäre z.B. das Format des aktuellen Datenpunkt:

        http://192.168.178.XXX:XXX/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&version=1&method=Stream&cameraId=1&format=mjpeg&_sid=ibdh4MDGQhITs1790QDN403203
        

        Es kommt auch nicht "Seite nicht erreichbar", sondern der Browser sucht und sucht...

        Es hilft auch kein Neustart des iobroker oder der synology.

        Im Log kommt auch nichts ungewöhnliches:

        javascript.0	2019-03-02 08:29:30.867	info	script.js.common.Kamera: registered 0 subscriptions and 1 schedule
        javascript.0	2019-03-02 08:29:30.842	info	Start javascript script.js.common.Kamera
        javascript.0	2019-03-02 08:29:30.828	info	Stop script script.js.common.Kamera
        

        Ist da jemand schon was bekannt?

        LG
        Thomas

        hollywoot Samson71 2 Replies Last reply Reply Quote 0
        • hollywoot
          hollywoot @hobbycamper last edited by

          @hobbycamper
          Ja, hier läuft es auch. URL wird erzeugt und ich habe selbiges Problem im Browser. Ich dachte bislang es liegt am Browser oder an mir. Habe mich nicht weiter damit beschäftigt.
          Jetzt interessiert es mich allerdings doch...

          1 Reply Last reply Reply Quote 0
          • M
            mehrwiedu last edited by

            Funktioniert hier einwandfrei mit der 8.2.3-5828 mit einem jqui-mfd Cam/Snapshot Dialog Widget.

            Wobei ich bei mir noch nicht das richtige Widget gefunden habe. Hätte gerne eines, was permanent die Cam anzeigt und nur bei Ereignis sichtbar wird.
            Der Dialog-Button erfordert jetzt immer ein bewusstes antippen.

            Vielleicht aber bei Euch einmal in der Surveillance Station die Kamera neu freigeben?

            hollywoot 1 Reply Last reply Reply Quote 0
            • R
              Ragnar last edited by

              @dslraser
              Ich bin auf diesen Beitrag gestoßen, weil ich es auf klassischem/einfachen Weg über Eingabe einer Snapshot-Url meiner Kamera zwar im Browser etwas sehe, aber unter Einsatz von wget auf iobroker/js er ums Verrecken keine jpg abspeichert, und somit auch nicht an telegram versendet.

              Da ich auch eine Syno laufen habe, auf der meine Kamera ordnungsgemäß funktioniert, dachte ich ich probiere mal Dein Skript. Es läuft auch ohne Probleme durch, im Log erscheint 'snapshot sent'. Allerdings findet sich keine Datei /tmp/snap.jpg auf meinem Raspi.

              Demzufolge schickt mir die 'sendTo'-Zeile in Deinem Script auch kein Bild, sondern den Text "/tmp/snap.jpg". Ich habe diese Frage schon einmal woanders gestellt, aber keine Antwort erhalten: kann es sein, dass bei mir aus welchem Grund auch immer die js-Instanz keine Schreibrechte auf den Ordner /tmp hat? (Vielleicht ist das totaler Quatsch was ich schreibe, aber ich bin an diesem Problem seit Wochen dran und werde langsam wahnsinnig😵 ).

              Danke für die HIlfe
              Erol

              I dslraser 2 Replies Last reply Reply Quote 0
              • I
                I-Punkt @Ragnar last edited by

                @Ragnar
                Bild von meiner Kamera hole ich mit

                request.get({url: url, encoding: 'binary'}, function (err, response, body) {
                            fs.writeFile("/tmp/snap.jpg", body, 'binary', function(err) {
                                if (err) {console.error(err);}
                                else {
                                    sendTo('telegram.0', {
                                        text:                   '/tmp/snap.jpg',
                                        disable_notification:   noNotification
                                    });
                                }
                            });
                        });
                

                Ein anderer Ansatz wäre vielleicht auch, ein "Foto" mit dem Phantomjs-Adapter zu machen.

                sendTo('phantomjs.0', 'send', {
                            url:                    floturl,
                            output:                 '123.png',  // default value
                            width:                  1000,            // default value
                            height:                 500,            // default value
                            timeout:                2000,           // default value
                            zoom:                   1,              // default value
                            'clip-top':             0,              // default value
                            'clip-left':            0,              // default value
                            'clip-width':           1000,            // default value is equal to width
                            'clip-height':          500,            // default value is equal to height
                            'scroll-top':           0,              // default value
                            'scroll-left':          0,              // default value
                            online:                 false           // default value
                            }, function (result) {
                                if (result.error) {
                                    console.error(JSON.stringify(result.error));
                                    sendtelegram(JSON.stringify(result.error));
                                    }
                                if (result.stderr) {
                                    console.error(result.stderr);
                                    sendtelegram(result.stderr);
                                    }
                                if (result.stdout) {
                                    console.log(result.stdout);
                                    }
                                sendtelegram(result.output);
                            });
                
                1 Reply Last reply Reply Quote 0
                • dslraser
                  dslraser Forum Testing Most Active @Ragnar last edited by

                  @Ragnar
                  Das Skript ist nicht von mir, ich habe es auch hier aus dem Forum.
                  Bei mir läuft ioBroker auf den Syno im Docker Container.
                  Über die Skript url's geht es aber, oder ?
                  Schreibrechte könnten aber schon sein...
                  Hattest Du mal den Fixer hier aus dem Forum bei Deiner Installation laufen lassen ?

                  1 Reply Last reply Reply Quote 0
                  • R
                    Ragnar last edited by Ragnar

                    @I-Punkt Danke für Deinen Post. Für aber zum bereits beschriebenen Effekt (es kommt nur Text an, kein Bild). Keine Fehlermeldungen o.Ä. im Log.
                    @dslraser : Ja, Fixer ausgeführt, aber Problem nach wie vor wie wieter oben beschrieben. Phantomjs habe ich auch schon dran gedacht, aber das wäre noch ein Adapter mehr (muss ein wenig mit dem RAM haushalten).

                    Ich werden weiter probieren und suchen. Danke Euch für Eure Beiträge.

                    Gruß
                    Erol

                    p.s.: Ja, die url's funktionieren im Browser

                    hollywoot 1 Reply Last reply Reply Quote 0
                    • hollywoot
                      hollywoot @Ragnar last edited by

                      @Ragnar
                      Mit welchem Benutzer führst du ioBroker aus?
                      Guck doch mal nach den Rechten. Oder ändere den Pfad in ein /home/ Verzeichnis wo dein User definitiv Schreibrechte besitzt... Wobei das bei /tmp/ auch der Fall sein sollte.

                      Gruß

                      R 1 Reply Last reply Reply Quote 0
                      • hollywoot
                        hollywoot @mehrwiedu last edited by

                        @mehrwiedu
                        Womit öffnest du das VIS?
                        Welcher Browser?
                        Mit der App?
                        iOS oder Android?

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          mehrwiedu @hollywoot last edited by

                          @hollywoot sagte in Synology Surveillance Station API:

                          @mehrwiedu
                          Womit öffnest du das VIS?
                          Welcher Browser?
                          Mit der App?
                          iOS oder Android?

                          Ach so. Ja, das ist wahrscheinlich gar nicht mal so unwichtig.

                          VIS läuft in einer macOS Umgebung in Safari. Version 12, welches Build, weiß ich aber grad nicht auswendig.
                          Wobei ioBroker auch darauf läuft. Also alles eine Suppe. 😉

                          hollywoot 1 Reply Last reply Reply Quote 0
                          • hollywoot
                            hollywoot @mehrwiedu last edited by

                            @mehrwiedu
                            Danke.
                            Da ich hier rein gar nichts mit Apple zu tun habe, könnte da schon der Unterschied sein.
                            Ich kann mir weder in der App, noch im Browser (Chromium, Chrome, Vivaldi, Firefox) das Livebild anzeigen lassen.
                            Also selbst außerhalb des VIS nicht - da eiert sich der Browser zu Tode...

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              mehrwiedu @hollywoot last edited by

                              @hollywoot sagte in Synology Surveillance Station API:

                              Ich kann mir weder in der App, noch im Browser (Chromium, Chrome, Vivaldi, Firefox) das Livebild anzeigen lassen.
                              Also selbst außerhalb des VIS nicht - da eiert sich der Browser zu Tode...

                              Dann stimmt aber irgendwas mit der Pfadfreigabe auf der Syno bei Dir nicht.
                              Da würde ich die Fehlersuche mal ansetzen.

                              Du kriegst also auch kein Livebild, wenn Du direkt den Link aus der Syno kopierst?
                              In der Surveillance Station auf Kameras, dann Rechtsklick auf die gewünschte Kamera und dann Freigeben?
                              Den Link kopieren und in einen Browser einfügen.

                              Wenn das schon nicht geht, würde ich vielleicht die Kamera einmal neu hinzufügen.
                              DSM ist aktuell?

                              hollywoot 1 Reply Last reply Reply Quote 0
                              • hollywoot
                                hollywoot @mehrwiedu last edited by

                                @mehrwiedu
                                Davon hab ich nicht gesprochen.
                                Ich nehme das Skript und den durch das Skript erzeugten Link.
                                Natürlich mit passender SID

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  mehrwiedu @hollywoot last edited by

                                  @hollywoot sagte in Synology Surveillance Station API:

                                  @mehrwiedu
                                  Davon hab ich nicht gesprochen.
                                  Ich nehme das Skript und den durch das Skript erzeugten Link.
                                  Natürlich mit passender SID

                                  Öhhh. Kopfkratz 😉
                                  Der durch das Skript generierte Link sollte mit dem Link aus der Synology identisch sein. Ist er das bei Dir?
                                  Bekommst Du das Livebild auch nicht angezeigt, wenn Du das Skript außen vor lässt und den Link direkt aus der Syno holst?

                                  Nur so lässt sich doch klären, ob es überhaupt am Browser oder am Skript, bzw. an den Dingen hinter der Pfadfreigabe liegt, oder vielleicht direkt an dieser.

                                  dslraser 1 Reply Last reply Reply Quote 0
                                  • dslraser
                                    dslraser Forum Testing Most Active @mehrwiedu last edited by

                                    @mehrwiedu
                                    @hollywoot

                                    sprecht ihr Beide vom gleichen Thema ? Geht es um Schnappschuss oder Livebild ?
                                    Die Frage von @Ragnar war doch Schnappschuss, oder ?

                                    M hollywoot 2 Replies Last reply Reply Quote 0
                                    • M
                                      mehrwiedu @dslraser last edited by mehrwiedu

                                      @dslraser sagte in Synology Surveillance Station API:

                                      @mehrwiedu
                                      @hollywoot

                                      sprecht ihr Beide vom gleichen Thema ? Geht es um Schnappschuss oder Livebild ?
                                      Die Frage von @Ragnar war doch Schnappschuss, oder ?

                                      Also ich meine das Skript von Apollon mit dem Livebild.
                                      Aus den Fragen an mich von hollywoot entnehme ich, dass er sich auch darauf bezieht, weil er ja auch den Link mit dem Skript von der Syno holt.
                                      Mit Ragnars Snapshot hatte die Frage nach meinem Browser glaube ich nichts zu tun. Das ist ein separates Skript, auf das ich auch gar keinen Bezug genommen habe in meinem ersten Beitrag in diesem Thema.

                                      1 Reply Last reply Reply Quote 1
                                      • hollywoot
                                        hollywoot @dslraser last edited by hollywoot

                                        @dslraser
                                        @mehrwiedu
                                        Japp, hier geht's jetzt grad wieder um das Livebild.
                                        Ich teste das mal mit dem "Freigeben"-Link... melde mich dann zurück.

                                        EDIT
                                        Also. Ich bekomme einen Link. Allerdings nur einen RTSP oder einen RTSP over HTTP Link. Und dieser hat mit dem Link, der per Skript erzeugt wird nicht viel gemeinsam. Auch ein Copy&Paste in den Browser bringt mir kein Bild.

                                        dslraser 1 Reply Last reply Reply Quote 1
                                        • dslraser
                                          dslraser Forum Testing Most Active @hollywoot last edited by dslraser

                                          @hollywoot
                                          also bei mir haben die Freigabe Links und der Link vom Apollon77 Script generierte Link nichts gemeinsam.
                                          Der generierte Link aus dem Script läuft sich bei mir im Browser auch zu tode...
                                          Allerding kann ich den Freigabe Link über RTSP öffnen. Es kommt dann mir mir am Mac die Frage ob ich VLC öffnen möchte und wenn ich sage ja: Livebild im VLC Player.

                                          hollywoot 1 Reply Last reply Reply Quote 0
                                          • hollywoot
                                            hollywoot @dslraser last edited by

                                            @dslraser
                                            Dann haben wir ja schonmal was gemeinsam.
                                            Der RTSP-Link im VLC funktioniert problemlos. Nur möchte ich gerne über das VIS mit der App auf das Widget klicken und ein Livebild haben...
                                            Das VIS kann kein RTSP spielen?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            509
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            51
                                            181
                                            51231
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo