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

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

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

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.
  • M Offline
    M Offline
    MarkusL
    schrieb am zuletzt editiert von
    #72

    Hallo zusammen,

    ich habe ein Schwierigkeiten mit der Darstellung meiner Kamera Streams und vielleicht hat jemand eine Idee:

    Ich habe 5 Trendnet (=HIKVision) Kameras. Da diese Probleme mit einem direkten Abruf der Streams machen (sie können wohl immer nur einen Client bedienen und steigen gerne mal ganz aus) habe ich sie in meine Synology eingebunden (das klappt gut) und hole mir mit dem obigen Script die dynamischen Links. Das passt alles auch gut. Die Darstellung erfolgt dann über das "Basic String Img src" Widget.

    ABER:

    Sobald ich auf die View wechsle mit den Kamerabildern, geht die Prozessor Last auf der Synology auf 100% und die Bilder kommen sporadisch bzw gar nicht mehr, wenn es mehr als eines sind. Und das bleibt auch so, wenn die View wieder weggeschaltet wird. D.h. der Stream "verstopft" weiterhin die Synology.

    habt Ihr auch das Problem? Hat jemand eine Idee, wie ich das lösen kann.

    Also den Load reduzieren und den Stream auch wieder stoppen, wenn der View nicht mehr aktiv ist.

    Vielen Dank,

    Markus

    1 Antwort Letzte Antwort
    0
    • arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von
      #73

      @Alveran:

      Hallo,

      ich bekomme mit dem Script von Apollon folgenden Fehler:

      javascript.0 2018-03-05 21:14:33.596 info script.js.MeineScripte.CamGarten: Invalid return on SurveillanceStation Stream URL: {"error":{"code":400},"success":false}

      Weiß jemand warum? `

      die login daten sind falsch .. würde ich tippen

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      1 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        Alveran
        schrieb am zuletzt editiert von
        #74

        Also irgendwie stimmt was mit dem Script nicht.

        Ich habe einen extra benutzter für die Kamera bei mir der admini angelegt und ein temporäres Passwort(wird natürlich danach geändert) vergeben wie ihr im Script sehen könnt.

        Hier ist das Script und danach der Fehler:

        __var request = require('request');

        // Konfiguration

        var user = "admini"; // Synology Benutzer mit Berechtigung die Kamera anzuzeigen

        var pass = "Winter2018"; // Passwort zu eben eingegebenem Benutzer

        var ip = "192.168.6.200"; // IP-Adresse eures Synology-NAS

        var port = 9900; // default Port der Surveillance Station

        var cameraID = 2; // ID der Kamera, welche angezeigt werden soll

        createState('javascript.' + instance + '.Anzeigen.Kamera.Eingangstuer-Stream', {'type': 'string', 'read': true, 'write': true, 'role': 'value', 'def': ""});

        // Authentifizierung an Synology Surveillance Station WebAPI und auslesen der SID

        function updateStreamUrl() {

        request('http://' + ip + ':' + port + '/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account=' + user + '&passwd=' + pass + '&session=SurveillanceStation&format=sid', function (error, response, body) {

        console.log('error:', error); // Print the error if one occurred

        console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received

        console.log('body:', body); // Print the HTML for the Google homepage.

        try {

        var bodyObj = JSON.parse(body);

        }

        catch (e) {

        console.log("Error update SurveillanceStation Stream URL: " + e);

        return;

        }

        if (bodyObj && bodyObj.data && bodyObj.data.sid) {

        var sid = bodyObj.data.sid;

        setState('javascript.' + instance + '.Anzeigen.Kamera.Eingangstuer-Stream', 'http://' + ip + ':' + port + '/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&version=1&method=Stream&cameraId=' + cameraID + '&format=mjpeg&_sid=' + sid, true);

        }

        else {

        console.log("Invalid return on SurveillanceStation Stream URL: " + JSON.stringify(bodyObj));

        return;

        }

        });

        }

        schedule("0 * * * *", function() {

        updateStreamUrl();

        });

        updateStreamUrl();__

        script.js.common.CamEingang: Invalid return on SurveillanceStation Stream URL: {"error":{"code":400},"success":false}

        Baue ich den String selber zusammen funktioniert es:

        http://192.168.6.200:9900//webapi/auth. … format=sid

        {"data":{"sid":"2wUTJTseubyHg1710NNN034612"},"success":true}

        Also lieber Schwarm, irgendwo muss ein Fehler sein.

        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          ak1
          schrieb am zuletzt editiert von
          #75

          Ich bin auf der Suche nach einem Script-Beispiel, bei dem der Home Mode der Surveillance Station an- bzw. ausgeschaltet wird. Ich möchte den Schaltzustand des Home Modes an z.B. eine Anwesenheitsvariable knüpfen.

          andyb hatte hier im Thread davon gesprochen. Ein passendes Skript würde mir helfen.

          Danke

          ak1

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            MrLee
            schrieb am zuletzt editiert von
            #76

            Mon!

            Ich muß mich hier mal ranhänge.

            Ausgangslage:

            Ich benutze die hier geposteten PHP-Scripte um auf der Synology Snapshots zu triggern und die ID des Snapshots in Variablen zu schreiben.

            Diese kann man dann per SQL-History konfortabel durchsuchen.

            Dieses funktionierte lange ohne Probleme.

            Problem:

            Seit ca. einem Monat ist die Anmeldung an der Synology so langsam, das der Anmeldedienst (da ich das Bild alle 2sek Refreshe das System komplett auslastet.

            Eine Anmeldung dauert ca. 10sec. (bis sid geholt).

            Scriptfehler sinds nicht, auch wenn ich im Browser "manuell" eine Authetifizierung mache und eine sid hole dauert es so lange.

            Hat jemand Ähnliches? Weiß jemand welche Einstellung/Update/etc. bei der Synology den Authetifizierungsdienst verändert hat?

            Danke Euch!

            Mr.Lee

            bis denne

            Mr.Lee

            pattylandP 1 Antwort Letzte Antwort
            0
            • D Offline
              D Offline
              dominik.braun82
              schrieb am zuletzt editiert von
              #77

              Hi.

              Grundsätzlich geht es ja hier um Screenshots erstellen, verschicken und einbindne in VIS.

              Ich möchte was ganz simples, weiß aber nicht wie ich es anstellen kann.

              Ich habe 4 Kameras in der SSS und möchte die SSS aktivieren, wenn ich meine Alarmanlage scharf schalte (quasi eine Systemvariable in der Homematic…)

              Ich habes mir so vorgestellt, dass ich die Aufnahme Einstellungen in der SSS einfach auf Bewegungserkennung stelle, rund um die Uhr….

              Und aktivieren tue ich eben über den Modus Alarmanlage aktiv.

              Gibt es dazu eine Lösung.

              Habe das Widget schon drauf, aber da kann man nur screenshots und so erstellen und nicht die SSS aktivieren und deaktiviren.

              Habe die aktuelleste Version drauf. (8...)

              Danke, Gruß :D

              1 Antwort Letzte Antwort
              0
              • A Offline
                A Offline
                aleks-83
                schrieb am zuletzt editiert von
                #78

                @dominik.braun82:

                Ich habe 4 Kameras in der SSS und möchte die SSS aktivieren, wenn ich meine Alarmanlage scharf schalte (quasi eine Systemvariable in der Homematic…)

                Ich habes mir so vorgestellt, dass ich die Aufnahme Einstellungen in der SSS einfach auf Bewegungserkennung stelle, rund um die Uhr….

                Und aktivieren tue ich eben über den Modus Alarmanlage aktiv. `

                Hast du mal in den Aktionsregeln geschaut?

                Dort kann man -durch externe Ereignisse aktiviert- AKtionen auslösen.

                z.B. Kameras de-/aktivieren, HomeMode de-/aktivieren, Aufnahme starten/stoppen oder weitere Externe AKtionen ausführen.

                Somit habe ich geregelt dass mein ioBroker -sobald per WLAN Anwesenheit erkannt- den Home Mode einschaltet.

                Die DS Cam App funktioniert hier ja nicht zuverlässig.

                Dazu habe ich allerdings eine Frage:

                Mein Befehl zum Einschalten des Homemode lautet:

                https://192.168.0.123:5001/webapi/entry.cgi?api=SYNO.SurveillanceStation.ExternalEvent&method="Trigger"&version=1&eventId=1&account="admin"&password="XXXXXXX"
                

                Wenn ich den per Browser ausführe, wird der Homemode eingeschaltet.

                Wenn der ioBroker aufm Pi den Befehl ausführt, passiert nichts.

                So sieht das Blockly dazu aus:
                7541_homemodeblockly.png

                = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                = Node.js v20.18.3 = NPM 10.2.3 = JS Controller 7.0.6 =

                Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                Glasfaser 400

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  aleks-83
                  schrieb am zuletzt editiert von
                  #79

                  Habe meinen Fehler selbst entdeckt!

                  Der "exec" Baustein war hier nicht der richtige.

                  Ich habe jetzt den "request" Baustein genommen.

                  Damit bekomme ich beim Ausführen des SKriptes dei Fehlermeldung:

                  script.js.Synology.HomeModeSchalten: Error: unable to verify the first certificate
                  

                  Der request ist ja ein https request, das SSL Zertifikat auf der Syno ist aber nicht signiert.

                  Dann muss ich mich woh doch nochmal mit dem Thema Let's encrypt auf der Syno beschäftigen!? Oder geht es um was anderes?

                  EDIT:

                  Auch diesen Fehler habe ich gelöst :mrgreen:

                  Habe nun endlich ein Lets Encrypt Zertifikat in meine Syno einbinden können. Das hat nie funktioniert. Jetzt ging es plötzlich.

                  Jetzt sende ich zwar den Befehl aus dem Broker einmal raus ins www und über meine DynDNS wieder rein in meine Syno, aber egal.

                  Funktioniert!

                  Für interne LAN Adressen kann man ja scheinbar kein Zertifikat erstellen…

                  = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                  = Node.js v20.18.3 = NPM 10.2.3 = JS Controller 7.0.6 =

                  Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                  Glasfaser 400

                  1 Antwort Letzte Antwort
                  0
                  • hollywootH Offline
                    hollywootH Offline
                    hollywoot
                    schrieb am zuletzt editiert von
                    #80

                    @Alveran:

                    Also irgendwie stimmt was mit dem Script nicht.

                    Ich habe einen extra benutzter für die Kamera bei mir der admini angelegt und ein temporäres Passwort(wird natürlich danach geändert) vergeben wie ihr im Script sehen könnt.

                    Hier ist das Script und danach der Fehler:

                    __var request = require('request');

                    // Konfiguration

                    var user = "admini"; // Synology Benutzer mit Berechtigung die Kamera anzuzeigen

                    var pass = "Winter2018"; // Passwort zu eben eingegebenem Benutzer

                    var ip = "192.168.6.200"; // IP-Adresse eures Synology-NAS

                    var port = 9900; // default Port der Surveillance Station

                    var cameraID = 2; // ID der Kamera, welche angezeigt werden soll

                    createState('javascript.' + instance + '.Anzeigen.Kamera.Eingangstuer-Stream', {'type': 'string', 'read': true, 'write': true, 'role': 'value', 'def': ""});

                    // Authentifizierung an Synology Surveillance Station WebAPI und auslesen der SID

                    function updateStreamUrl() {

                    request('http://' + ip + ':' + port + '/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=3&account=' + user + '&passwd=' + pass + '&session=SurveillanceStation&format=sid', function (error, response, body) {

                    console.log('error:', error); // Print the error if one occurred

                    console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received

                    console.log('body:', body); // Print the HTML for the Google homepage.

                    try {

                    var bodyObj = JSON.parse(body);

                    }

                    catch (e) {

                    console.log("Error update SurveillanceStation Stream URL: " + e);

                    return;

                    }

                    if (bodyObj && bodyObj.data && bodyObj.data.sid) {

                    var sid = bodyObj.data.sid;

                    setState('javascript.' + instance + '.Anzeigen.Kamera.Eingangstuer-Stream', 'http://' + ip + ':' + port + '/webapi/SurveillanceStation/videoStreaming.cgi?api=SYNO.SurveillanceStation.VideoStream&version=1&method=Stream&cameraId=' + cameraID + '&format=mjpeg&_sid=' + sid, true);

                    }

                    else {

                    console.log("Invalid return on SurveillanceStation Stream URL: " + JSON.stringify(bodyObj));

                    return;

                    }

                    });

                    }

                    schedule("0 * * * *", function() {

                    updateStreamUrl();

                    });

                    updateStreamUrl();__

                    script.js.common.CamEingang: Invalid return on SurveillanceStation Stream URL: {"error":{"code":400},"success":false}

                    Baue ich den String selber zusammen funktioniert es:

                    http://192.168.6.200:9900//webapi/auth. … format=sid

                    {"data":{"sid":"2wUTJTseubyHg1710NNN034612"},"success":true}

                    Also lieber Schwarm, irgendwo muss ein Fehler sein. `

                    Hab das gleiche Problem.

                    Hast Du zufällig eine Lösung gefunden?

                    Gruß

                    1 Antwort Letzte Antwort
                    0
                    • H Offline
                      H Offline
                      HoffmannOs
                      schrieb am zuletzt editiert von
                      #81

                      Gibt es schon eine Lösung? Ich bekomme cam 1 angezeigt, allerdings bekomme ich bei der Camera 2 keine Ausgabe, bei jpp die Meldung das die Bilder fehler enthalten….

                      1 Antwort Letzte Antwort
                      0
                      • A Offline
                        A Offline
                        Alveran
                        schrieb am zuletzt editiert von
                        #82

                        Nein leider nicht. Hab es aufgegeben mit dem Script. Scheint mit neueren Surveillance Station Version nicht mehr kompatibel zu sein.

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

                          @Alveran:

                          Nein leider nicht. Hab es aufgegeben mit dem Script. Scheint mit neueren Surveillance Station Version nicht mehr kompatibel zu sein. ` Also ich hab die Station v8.2 drauf. Bei mir im Heimnetz läuft alles wunderbar…

                          Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk

                          PS: gerade WLAN vom Handy ausgeschaltet. Kamera tut es immer noch :) (nutze Cloud Pro, keine Ahnung ob das damit zusammenhängt)

                          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
                          • hollywootH Offline
                            hollywootH Offline
                            hollywoot
                            schrieb am zuletzt editiert von
                            #84

                            Ziemlich unbefriedigend :D

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

                              NACHTRAG: Update auf Version 6.2 führte auch bei mir dazu, dass das Skript nicht mehr funktioniert :(

                              2. NACHTRAG: Habe alles noch mal überprüft (inkl. SSS geöffnet und geschaut, ob Kamera noch da). Problem war, die hatte sich abgemeldet :o

                              …Strom raus, wieder rein, Skript läuft wieder und das Icon in VIS auch :mrgreen:

                              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
                              • H Offline
                                H Offline
                                HoffmannOs
                                schrieb am zuletzt editiert von
                                #86

                                Das Problem hatte ich auch, ich habe dann im Netz in einem Französischen Forum einen interessanten Artikel gefunden suche mal nach Yakus Master, ich habe auch gedacht das die Kamera falsche Daten liefert, allerdings war einfach die ID falsch. Ich hätte 2 Kameras und und die 2 hatte dann id 9….

                                Probiere das mal aus.

                                Gesendet von meinem SM-G965F mit Tapatalk

                                1 Antwort Letzte Antwort
                                0
                                • M Offline
                                  M Offline
                                  MyMeyer
                                  schrieb am zuletzt editiert von
                                  #87

                                  Hi,

                                  bei mir kommt auch diese Meldung:

                                  ` > javascript.0 Stop script script.js.common.Kamera

                                  23:41:12.096 [info] javascript.0 Start javascript script.js.common.Kamera

                                  23:41:12.098 [debug] javascript.0 script.js.common.Kamera: createState(name=javascript.0.Anzeigen.Kamera.Eingangstuer-Stream, initValue=, forceCreation=undefined, common={"type":"string","read":true,"write":true,"role":"value","def":"","name":"javascript.0.Anzeigen.Kamera.Eingangstuer-Stream"}, native={})

                                  23:41:12.098 [info] javascript.0 script.js.common.Kamera: schedule(cron=0 * * * *)

                                  23:41:12.098 [info] javascript.0 script.js.common.Kamera: registered 0 subscriptions and 1 schedule

                                  23:41:12.360 [info] javascript.0 script.js.common.Kamera: Invalid return on SurveillanceStation Stream URL: {"error":{"code":400},"success":false} `

                                  Zusätzlich bekomme ich diese Meldung wenn ich den Link aus Objekte im Browser eingebe:

                                  ` > Failed to load camera.

                                  X-Content-Type-Options: nosniff

                                  X-XSS-Protection: 1; mode=block

                                  Content-type: text/plain; charset="UTF-8"

                                  P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"

                                  {"success":true} `

                                  Was bedeutet das nun wieder ?

                                  Auf der Syn läuft 6.2 ! Gibt es dafür eine Lösung. Über den Browser eingegeben und da war es okay .

                                  MyMeyer

                                  >>> Hardware: Intel I5 mit ****Debian ProxMox OS: Debian **** <<< >>> Network with UniFi <<<
                                  >>> HomeMatic CCU-2 (Wired und Funk) / Philips HUE / Echo.DOT / Echo.SHOW / Xiaomi Smart-Home / Xiaomi Robot Vacuum Cleaner / Synology DS 918+ / Shelly 1&2 <<<

                                  1 Antwort Letzte Antwort
                                  0
                                  • T Trident

                                    Hallo zusammen,

                                    gibt es schon fertige Skripte oder Adapter zur Nutzung der Web API der Surveillance Station?

                                    Hier kann man per GET request Snapshots erstellen oder Aufnahmen starten.

                                    Eine Integration in ioBroker wäre wahnsinnig praktisch. Leider verstehe ich zu wenig von JS und http :)

                                    Hier der Link zur Doku der API

                                    https://global.download.synology.com/do … I_v2.0.pdf

                                    Mein konkrete Anwendungsfall wäre die automatische Erstellung von Snapshot auf Grund der Auslösung eines Bewegungsmelder bei Abwesenheit und der anschließende Versand dieser Snapshots per Telegram

                                    Ist laut API über die Methoden "take_snapshot" und "get_snapshot" wohl prinzipiell ohne weiteres möglich.

                                    Würde mich über Tipps und Vorschläge freuen - vielleicht hatte ja schon jemand ein ähnliches Problem?

                                    Viele Grüße

                                    Trident

                                    hollywootH Offline
                                    hollywootH Offline
                                    hollywoot
                                    schrieb am zuletzt editiert von
                                    #88

                                    @Trident sagte in Synology Surveillance Station API:

                                    [...]
                                    Mein konkrete Anwendungsfall wäre die automatische Erstellung von Snapshot auf Grund der Auslösung eines Bewegungsmelder bei Abwesenheit und der anschließende Versand dieser Snapshots per Telegram
                                    [...]
                                    Würde mich über Tipps und Vorschläge freuen - vielleicht hatte ja schon jemand ein ähnliches Problem?

                                    Absolut das, was ich auch will!
                                    Ich kann mir nicht vorstellen, dass wir da allein sind auf weiter Flur :P
                                    Vielleicht findet sich ja mal ein hilfsbereiter Programmer...

                                    LG

                                    dslraserD 2 Antworten Letzte Antwort
                                    1
                                    • hollywootH hollywoot

                                      @Trident sagte in Synology Surveillance Station API:

                                      [...]
                                      Mein konkrete Anwendungsfall wäre die automatische Erstellung von Snapshot auf Grund der Auslösung eines Bewegungsmelder bei Abwesenheit und der anschließende Versand dieser Snapshots per Telegram
                                      [...]
                                      Würde mich über Tipps und Vorschläge freuen - vielleicht hatte ja schon jemand ein ähnliches Problem?

                                      Absolut das, was ich auch will!
                                      Ich kann mir nicht vorstellen, dass wir da allein sind auf weiter Flur :P
                                      Vielleicht findet sich ja mal ein hilfsbereiter Programmer...

                                      LG

                                      dslraserD Offline
                                      dslraserD Offline
                                      dslraser
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von dslraser
                                      #89

                                      @hollywoot sagte in Synology Surveillance Station API:

                                      @Trident sagte in Synology Surveillance Station API:

                                      [...]
                                      Mein konkrete Anwendungsfall wäre die automatische Erstellung von Snapshot auf Grund der Auslösung eines Bewegungsmelder bei Abwesenheit und der anschließende Versand dieser Snapshots per Telegram
                                      [...]
                                      Würde mich über Tipps und Vorschläge freuen - vielleicht hatte ja schon jemand ein ähnliches Problem?

                                      Absolut das, was ich auch will!
                                      Ich kann mir nicht vorstellen, dass wir da allein sind auf weiter Flur :P
                                      Vielleicht findet sich ja mal ein hilfsbereiter Programmer...

                                      LG

                                      ich kann mal morgen ein Script hier reinstellen was bei mir genau das macht...(muss nur ein Trigger für den BWM rein, da ich aktuell ein Bild bekomme wenn es an der Haustür klingelt...BWM hatte ich mal als Trigger, ging auch.)
                                      Ich habe drei Cams, bei allen dreien geht das über meine Syno.

                                      PS: ich bin noch unterwegs, schaffe ich heute nicht mehr.

                                      1 Antwort Letzte Antwort
                                      1
                                      • hollywootH hollywoot

                                        @Trident sagte in Synology Surveillance Station API:

                                        [...]
                                        Mein konkrete Anwendungsfall wäre die automatische Erstellung von Snapshot auf Grund der Auslösung eines Bewegungsmelder bei Abwesenheit und der anschließende Versand dieser Snapshots per Telegram
                                        [...]
                                        Würde mich über Tipps und Vorschläge freuen - vielleicht hatte ja schon jemand ein ähnliches Problem?

                                        Absolut das, was ich auch will!
                                        Ich kann mir nicht vorstellen, dass wir da allein sind auf weiter Flur :P
                                        Vielleicht findet sich ja mal ein hilfsbereiter Programmer...

                                        LG

                                        dslraserD Offline
                                        dslraserD Offline
                                        dslraser
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von dslraser
                                        #90

                                        So, hier mal ein Script was bei mir läuft. Hier bekomme ich ein Bild von der Kamera wenn es an der Tür klingelt. Den Trigger kann man ja tauschen. Um die richtige Kamera zu finden mußte ich auch mehrfach "probieren", da die ID nicht fortlaufend ist. Der erste Link loggt sich ein (einfach in den Browser zum testen eingeben und dann den letzten Link in das Browserfenster eintragen und schauen ob ein Bild kommt (natürlich mit der eigenen IP und eventuell Port). Wenn nicht einfach mal eine andere ID probieren)
                                        Die ID der Cam, bei mir die 3 (alle zu ändernden Daten sind rot)

                                        ```
                                        //Datenpunkt erstellen / Bild Eingang senden
                                        createState("Eigene_Datenpunkte.05Telegram.Eingangskamera", {
                                        name: 'Eingangskamera',
                                        role: 'button',
                                        type: 'boolean',
                                        read: true,
                                        write: true,
                                        def: false,
                                        "smartName": {
                                        "de": "Eingangskamera",
                                        "smartType": "SWITCH"
                                        }
                                        });

                                        on({id:"javascript.0.Eigene_Datenpunkte.07Klingel.Klingel_aktiv"/Klingel aktiv/, val: true, change: 'ne'}, main);
                                        //on({id:"javascript.0.Eigene_Datenpunkte.05Telegram.Eingangskamera"/Eingangskamera/, val: true, change: 'any'}, main);

                                        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 ='http://192.168.180.2:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=SYNOBENUTZER&passwd=BENUTZERKENNWORT&session=SurveillanceStation&format=sid';
                                        var url_logout = 'http://192.168.180.2:5000/webapi/auth.cgi? api=SYNO.API.Auth&method=Logout&version=2&session=SurveillanceStation';
                                        var url_snapshot = 'http://192.168.180.2:5000/webapi/entry.cgi?camStm=1&version=8&cameraId=3&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', {text: '/tmp/snap.jpg', caption: 'Eingangskamera !'});
                                        request.get({url: url_logout, encoding: 'binary'});
                                        }
                                        });
                                        });
                                        } else {
                                        log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
                                        myJson = {};
                                        }
                                        });
                                        }

                                        M hollywootH 2 Antworten Letzte Antwort
                                        1
                                        • dslraserD dslraser

                                          So, hier mal ein Script was bei mir läuft. Hier bekomme ich ein Bild von der Kamera wenn es an der Tür klingelt. Den Trigger kann man ja tauschen. Um die richtige Kamera zu finden mußte ich auch mehrfach "probieren", da die ID nicht fortlaufend ist. Der erste Link loggt sich ein (einfach in den Browser zum testen eingeben und dann den letzten Link in das Browserfenster eintragen und schauen ob ein Bild kommt (natürlich mit der eigenen IP und eventuell Port). Wenn nicht einfach mal eine andere ID probieren)
                                          Die ID der Cam, bei mir die 3 (alle zu ändernden Daten sind rot)

                                          ```
                                          //Datenpunkt erstellen / Bild Eingang senden
                                          createState("Eigene_Datenpunkte.05Telegram.Eingangskamera", {
                                          name: 'Eingangskamera',
                                          role: 'button',
                                          type: 'boolean',
                                          read: true,
                                          write: true,
                                          def: false,
                                          "smartName": {
                                          "de": "Eingangskamera",
                                          "smartType": "SWITCH"
                                          }
                                          });

                                          on({id:"javascript.0.Eigene_Datenpunkte.07Klingel.Klingel_aktiv"/Klingel aktiv/, val: true, change: 'ne'}, main);
                                          //on({id:"javascript.0.Eigene_Datenpunkte.05Telegram.Eingangskamera"/Eingangskamera/, val: true, change: 'any'}, main);

                                          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 ='http://192.168.180.2:5000/webapi/auth.cgi?api=SYNO.API.Auth&method=Login&version=2&account=SYNOBENUTZER&passwd=BENUTZERKENNWORT&session=SurveillanceStation&format=sid';
                                          var url_logout = 'http://192.168.180.2:5000/webapi/auth.cgi? api=SYNO.API.Auth&method=Logout&version=2&session=SurveillanceStation';
                                          var url_snapshot = 'http://192.168.180.2:5000/webapi/entry.cgi?camStm=1&version=8&cameraId=3&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', {text: '/tmp/snap.jpg', caption: 'Eingangskamera !'});
                                          request.get({url: url_logout, encoding: 'binary'});
                                          }
                                          });
                                          });
                                          } else {
                                          log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
                                          myJson = {};
                                          }
                                          });
                                          }

                                          M Offline
                                          M Offline
                                          mpenno
                                          schrieb am zuletzt editiert von
                                          #91

                                          @dslraser
                                          Danke für das Script. Beide URLs im Browser funktionieren, den Snapshot meiner einen Kamera kann ich im Browser sehen.
                                          Wenn ich das Script unter Skripte ablegen und starte (mein Trigger ist jetzt irgendein KNX Event) dann erscheint im Log die Meldung:
                                          Info: cript.js.Scripte.Kamerabild_Tuer: Snapshot sent

                                          Welches Widget bzw. was muss ich in der VIS auswählen, um den Snapshot angezeigt zu bekommen?
                                          Ich wollte hier zum einen ein Kamerasymbol ablegen, auf das ich "drücken" kann, um das Türbild zu sehen und zum anderen beim Betätigen der Klingel eine Art Popup zu erhalten.
                                          Hier mal zur Info die Objekte, die angelegt wurden.
                                          6c0628e2-87f7-451d-ac47-e52f79696943-grafik.png

                                          Warum hat die "Eingangskamera" die Rolle "Button"? Sorry für die vielen Fragen...

                                          dslraserD 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

                                          557

                                          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