Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter onvif-alt v0.1.x

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    918

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Test Adapter onvif-alt v0.1.x

Scheduled Pinned Locked Moved Tester
onvif
271 Posts 33 Posters 42.6k Views 37 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • SegwayS Segway

    @Jey-Cee

    okay, hat meine Kamera gefunden - und was nun ?

    cdb0a080-189c-410e-b66b-1431fe783099-image.png

    Jey CeeJ Online
    Jey CeeJ Online
    Jey Cee
    Developer
    wrote on last edited by
    #44

    @Segway Benutzername und passwort der Kamera eingeben, Speicherund Schließen, dann holt er sich alles an Infos von der Cam was er kriegen kann. Da sollte auch der rtsp Stream Link dabei sein.

    Persönlicher Support
    Spenden -> paypal.me/J3YC33

    SegwayS 1 Reply Last reply
    0
    • Jey CeeJ Jey Cee

      @Segway Benutzername und passwort der Kamera eingeben, Speicherund Schließen, dann holt er sich alles an Infos von der Cam was er kriegen kann. Da sollte auch der rtsp Stream Link dabei sein.

      SegwayS Offline
      SegwayS Offline
      Segway
      wrote on last edited by
      #45

      @Jey-Cee
      Jo habe ich ja, aber die Cam hat keinen Benutzernamen und Passwort. Brauche ich in dem VLC Link wo es geht auch nicht eingeben.
      Als Objekte werden nur folgende angelegt:
      ffd483d5-6339-4d13-b5aa-b321c896a996-image.png

      Gruß Dirk
      Intel Proxmox Cluster (3x NUC) mit Debian & Proxmox / IoB als VM unter Debian / 60+ Adapter installiert

      1 Reply Last reply
      0
      • KnallochseK Knallochse

        @Jey-Cee

        @Knallochse kannst du mir mal die Objekte für den Drucker Exportieren? Das Objekt vom Drucker Anklicken und dann oben bei den Buttons den ganz rechten Pfeil Klicken.
        160753ec-7c9e-428f-b70b-cea8d75623ca-image.png
        Das dann hier posten.

        Klar, kein Problem

        
        {
          "onvif.0._003.system.reboot": {
            "type": "state",
            "common": {
              "name": "Reboot ",
              "type": "boolean",
              "role": "button",
              "read": false,
              "write": true
            },
            "native": {},
            "from": "system.adapter.onvif.0",
            "user": "system.user.admin",
            "ts": 1577873649242,
            "_id": "onvif.0._003.system.reboot",
            "acl": {
              "object": 1636,
              "state": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            }
          },
          "onvif.0._003.logs.getlogs": {
            "type": "state",
            "common": {
              "name": "Get Logs from camera",
              "type": "boolean",
              "role": "button",
              "read": false,
              "write": true
            },
            "native": {},
            "from": "system.adapter.onvif.0",
            "user": "system.user.admin",
            "ts": 1577873649242,
            "_id": "onvif.0._003.logs.getlogs",
            "acl": {
              "object": 1636,
              "state": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            }
          },
          "onvif.0._003.logs.systemlog": {
            "type": "state",
            "common": {
              "name": "System Log ",
              "type": "string",
              "role": "text",
              "read": true,
              "write": false
            },
            "native": {},
            "from": "system.adapter.onvif.0",
            "user": "system.user.admin",
            "ts": 1577873649242,
            "_id": "onvif.0._003.logs.systemlog",
            "acl": {
              "object": 1636,
              "state": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            }
          },
          "onvif.0._003.logs.accesslog": {
            "type": "state",
            "common": {
              "name": "Access Log ",
              "type": "string",
              "role": "text",
              "read": true,
              "write": false
            },
            "native": {},
            "from": "system.adapter.onvif.0",
            "user": "system.user.admin",
            "ts": 1577873649242,
            "_id": "onvif.0._003.logs.accesslog",
            "acl": {
              "object": 1636,
              "state": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            }
          },
          "onvif.0._003": {
            "type": "device",
            "common": {
              "name": "SamsungDrucker",
              "role": "camera"
            },
            "native": {
              "user": "",
              "password": "",
              "ip": "192.168.178.23",
              "urn": "urn:uuid:16a65700-007c-1000-bb49-30cda7aa23f1",
              "service": "http://192.168.178.23:8018/wsd",
              "hardware": "",
              "location": "",
              "types": [
                "wsdp:Device",
                "wprt:PrintDeviceType",
                "wscn:ScanDeviceType"
              ],
              "scopes": [
                ""
              ],
              "port": ""
            },
            "from": "system.adapter.onvif.0",
            "user": "system.user.admin",
            "ts": 1577873900661,
            "_id": "onvif.0._003",
            "acl": {
              "object": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            }
          }
        }
        
        
        Jey CeeJ Online
        Jey CeeJ Online
        Jey Cee
        Developer
        wrote on last edited by
        #46

        @Knallochse Danke, der Drucker benutzt das gleiche Protokoll um gefunden zu werden. Hab jetzt einen Filter eingebaut damit wirklich nur Kameras gefunden werden.

        Persönlicher Support
        Spenden -> paypal.me/J3YC33

        1 Reply Last reply
        1
        • KnallochseK Do not disturb
          KnallochseK Do not disturb
          Knallochse
          wrote on last edited by Knallochse
          #47

          @Jey-Cee könnte man über onvif die RSSI Werte der WLAN Verbindung der Kameras auslesen?
          Meine Kameras verbinden sich manchmal mit dem falschen Repeater (Sch... Mesh).
          So könnte man auf Grund von schlechten Verbindungswerten einen Reboot starten.

          HM&HMIP über 100 Geräte + IoBroker auf DS918+ uvm.

          ? Jey CeeJ 2 Replies Last reply
          0
          • KnallochseK Knallochse

            @Jey-Cee könnte man über onvif die RSSI Werte der WLAN Verbindung der Kameras auslesen?
            Meine Kameras verbinden sich manchmal mit dem falschen Repeater (Sch... Mesh).
            So könnte man auf Grund von schlechten Verbindungswerten einen Reboot starten.

            ? Offline
            ? Offline
            A Former User
            wrote on last edited by
            #48

            @Knallochse hast du AVM Kisten?
            Hatte mit dem "Mesh" auch so meine Probleme.. schau mal, so gehts bei mir sehr gut :
            22e4518f-47f8-416e-a56d-ed4f9ffba761-grafik.png

            hab permanent zwischen 245 und 300 Geräte im Netz..

            880d4519-3f5b-4068-9d1a-bf30b192f2d3-grafik.png

            KnallochseK 1 Reply Last reply
            1
            • KnallochseK Knallochse

              @Jey-Cee könnte man über onvif die RSSI Werte der WLAN Verbindung der Kameras auslesen?
              Meine Kameras verbinden sich manchmal mit dem falschen Repeater (Sch... Mesh).
              So könnte man auf Grund von schlechten Verbindungswerten einen Reboot starten.

              Jey CeeJ Online
              Jey CeeJ Online
              Jey Cee
              Developer
              wrote on last edited by
              #49

              @Knallochse sagte in Test Adapter onvif v0.1.x:

              könnte man über onvif die RSSI Werte der WLAN Verbindung der Kameras auslesen?

              Es gibt tatsächlich die Möglichkeit per onvif WLAN Informationen ab zu rufen, aber ich weis nicht ob RSSI Werte auch dabei sind. Zumindest sollte es möglich sein nach WLANs in Reichweite zu scannen wenn die Kamera das Unterstützt.

              Persönlicher Support
              Spenden -> paypal.me/J3YC33

              KnallochseK 1 Reply Last reply
              0
              • ? A Former User

                @Knallochse hast du AVM Kisten?
                Hatte mit dem "Mesh" auch so meine Probleme.. schau mal, so gehts bei mir sehr gut :
                22e4518f-47f8-416e-a56d-ed4f9ffba761-grafik.png

                hab permanent zwischen 245 und 300 Geräte im Netz..

                880d4519-3f5b-4068-9d1a-bf30b192f2d3-grafik.png

                KnallochseK Do not disturb
                KnallochseK Do not disturb
                Knallochse
                wrote on last edited by
                #50

                @ilovegym ja, Fitzbox 7580+3 AVM Repeater.
                Ich habe mal deine Einstellungen übernommen. Jetzt beobachte ich das Verhalten der WLAN Geräte .
                Vielen Dank und ein gesundes neues Jahr 👍

                HM&HMIP über 100 Geräte + IoBroker auf DS918+ uvm.

                ? 1 Reply Last reply
                0
                • KnallochseK Knallochse

                  @ilovegym ja, Fitzbox 7580+3 AVM Repeater.
                  Ich habe mal deine Einstellungen übernommen. Jetzt beobachte ich das Verhalten der WLAN Geräte .
                  Vielen Dank und ein gesundes neues Jahr 👍

                  ? Offline
                  ? Offline
                  A Former User
                  wrote on last edited by
                  #51

                  @Knallochse Danke, auch frohes neues !
                  Hab 18 Kameras, und seitdem ist Ruhe, da das Mesh versucht hat, die Streams woanders hin zu connecten, was zu abrissen führte..

                  1 Reply Last reply
                  0
                  • Jey CeeJ Jey Cee

                    @Knallochse sagte in Test Adapter onvif v0.1.x:

                    könnte man über onvif die RSSI Werte der WLAN Verbindung der Kameras auslesen?

                    Es gibt tatsächlich die Möglichkeit per onvif WLAN Informationen ab zu rufen, aber ich weis nicht ob RSSI Werte auch dabei sind. Zumindest sollte es möglich sein nach WLANs in Reichweite zu scannen wenn die Kamera das Unterstützt.

                    KnallochseK Do not disturb
                    KnallochseK Do not disturb
                    Knallochse
                    wrote on last edited by
                    #52

                    @Jey-Cee sagte in Test Adapter onvif v0.1.x:

                    Zumindest sollte es möglich sein nach WLANs in Reichweite zu scannen wenn die Kamera das Unterstützt.

                    Bei meinen Kameras kann man über das WebUI einen Suchlauf anleiern, und es werden alle erkannten Netzwerke aufgelistet.

                    HM&HMIP über 100 Geräte + IoBroker auf DS918+ uvm.

                    1 Reply Last reply
                    0
                    • C Offline
                      C Offline
                      ChrisXY
                      wrote on last edited by
                      #53

                      hm was ist wenn die cams unterschiedliche Logins haben ? Es wurden 3 gefunden auch mit Bild. Ohne Zugangsdaten. Schön wäre wenn man draufklicken kann und die Speziellen Login Daten der gefunden Cam einzutragen

                      Jey CeeJ 1 Reply Last reply
                      0
                      • C ChrisXY

                        hm was ist wenn die cams unterschiedliche Logins haben ? Es wurden 3 gefunden auch mit Bild. Ohne Zugangsdaten. Schön wäre wenn man draufklicken kann und die Speziellen Login Daten der gefunden Cam einzutragen

                        Jey CeeJ Online
                        Jey CeeJ Online
                        Jey Cee
                        Developer
                        wrote on last edited by
                        #54

                        @ChrisXY sagte in Test Adapter onvif v0.1.x:

                        hm was ist wenn die cams unterschiedliche Logins haben ?

                        Du meinst wenn eine Cam mehrere Logins hat? Das macht für mich keinen Sinn, ioBroker ist in meinen Cams der Administrator und kann damit alles machen. Warum sollte ich mehrere Benutzer anlegen wenn es auch einer tut.
                        Vielleicht bau ich das irgendwann ein, aber das hat sehr niedrige Priorität.

                        Persönlicher Support
                        Spenden -> paypal.me/J3YC33

                        C 1 Reply Last reply
                        0
                        • Dr. BakteriusD Dr. Bakterius

                          @Jey-Cee sagte in Test Adapter onvif v0.1.x:

                          @Dr-Bakterius hast du den Adapter neu gestartet?
                          Falls ja geht es wohl so nicht oder irgendwas stimmt nicht.

                          Nicht nur einmal! :confused:

                          Zusammengefasst: onvif ist aktiviert, die Cams sind vom Broker aus erreichbar (im selben Subnetz) und mit anderer Software (von einem anderen Rechner) klappt auch die onvif-Verbindung. Cams, ioBroker und Adapter wurden mehrfach neu gestartet und das Log wirft keine Fehler aus. Trotzdem wird keine der drei Cams vom Adapter gefunden.

                          Noch Ideen?

                          GlasfaserG Offline
                          GlasfaserG Offline
                          Glasfaser
                          wrote on last edited by Glasfaser
                          #55

                          @Dr-Bakterius

                          Test mal hier , was als Log Ausgabe folgt .

                          In der Instanz JavaScript , das Modul node-onvif eintragen

                          1.JPG

                          JavaScript :

                          /// ONVIF Ausgabe ioBroker 01.01.2020 Glasfaser
                          
                          const onvif = require('node-onvif');// 
                           
                          console.log('Start the discovery process.');
                          // Find the ONVIF network cameras.
                          // It will take about 3 seconds.
                          onvif.startProbe().then((device_info_list) => {
                            console.log(device_info_list.length + ' devices were found.');
                            // Show the device name and the URL of the end point.
                            device_info_list.forEach((info) => {
                              console.log('- ' + info.urn);
                              console.log('  - ' + info.name);
                              console.log('  - ' + info.xaddrs[0]);
                            });
                          }).catch((error) => {
                            console.error(error);
                          });
                          

                          So sieht es dann aus :

                          1.JPG

                          Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                          Dr. BakteriusD 1 Reply Last reply
                          0
                          • Jey CeeJ Jey Cee

                            @Glasfaser sagte in Test Adapter onvif v0.1.x:

                            Laut Doku von onvif-nvt ,

                            Auf die habe ich gehört, deswegen hat es auch nicht funktioniert. Die Doku sagt callback geht und so hatte ich es versucht, aber tatsächlich geht nur der Promise weg.
                            Hab heute nacht noch viel probiert, aber auf das bin ich erst heute morgen gekommen.

                            GlasfaserG Offline
                            GlasfaserG Offline
                            Glasfaser
                            wrote on last edited by Glasfaser
                            #56

                            @Jey-Cee sagte in Test Adapter onvif v0.1.x:

                            @Glasfaser sagte in Test Adapter onvif v0.1.x:

                            Laut Doku von onvif-nvt ,

                            Auf die habe ich gehört, deswegen hat es auch nicht funktioniert. Die Doku sagt callback geht und so hatte ich es versucht, aber tatsächlich geht nur der Promise weg.
                            Hab heute nacht noch viel probiert, aber auf das bin ich erst heute morgen gekommen.

                            Habe sonst dieses Script für eine Cam genutzt , was auch gut funktioniert.
                            (War hier aus dem Forum)

                            Dort wird Preset auch angesprochen , vielleicht kannst du damit etwas anfangen !???

                            /* 
                            Instanz Javascript Modul eintragen : node-onvif
                            
                            Ab Zeile 219 anpassen // Create an OnvifDevice object
                            xaddr :http://deineIP/onvif/device_service
                            user :
                            pass :
                            
                            */
                            
                            const fC = false;
                            const logging = false;
                            
                            const pfad = 'javascript.' + instance + '.VIS.Kamera.1.PTZ.';
                            const idSpeed     = pfad + 'Geschwindigkeit';
                            
                            const idStoppzeit = pfad + 'Stoppzeit';
                            
                            const idStopp =     pfad + 'Stopp';
                            
                            const idRechts =    pfad + 'rechts';
                            
                            const idLinks =     pfad + 'links';
                            
                            const idHoch =      pfad + 'hoch';
                            
                            const idRunter =    pfad + 'runter';
                            
                            const idZoomIn =    pfad + 'ZoomIn';
                            
                            const idZoomOut =   pfad + 'ZoomOut';
                            
                            const idGotoPreset =   pfad + 'gotoPreset';
                            
                            const onvif = require('node-onvif');
                            
                            const fs = require('fs');
                            
                            createState(idSpeed, 1, fC, {
                            
                              def: 1,
                            
                              min: 0,
                            
                              max: 1,
                            
                              name: 'Kamera 1 PTZ Geschwindkeit bei Bewegung',
                            
                              desc: 'Geschwindigkeit von 0-1 bei der Bewegung',
                            
                              type: 'number'
                            
                            });
                            
                            createState(idStoppzeit, 1, fC, {
                            
                              def: 0,
                            
                              min: 0,
                            
                              name: 'Kamera 1 PTZ Stoppzeit',
                            
                              desc: 'Dauer in Sekunden bis zum Stopp der Bewegung',
                            
                              type: 'number',
                            
                              unit: 's'
                            
                            });
                            
                            createState(idStopp, false, fC, {
                            
                              def: false,
                            
                              name: 'Kamera 1 PTZ Stopp',
                            
                              desc: 'Sofortiger Stopp der Bewegung',
                            
                              type: 'boolean',
                            
                              role: 'switch'
                            
                            });
                            
                            createState(idRechts, false, fC, {
                            
                              def: false,
                            
                              name: 'Kamera 1 PTZ rechts',
                            
                              desc: 'Bewegung nach rechts',
                            
                              type: 'boolean',
                            
                              role: 'switch'
                            
                            });
                            
                            createState(idLinks, false, fC, {
                            
                              def: false,
                            
                              name: 'Kamera 1 PTZ links',
                            
                              desc: 'Bewegung nach links',
                            
                              type: 'boolean',
                            
                              role: 'switch'
                            
                            });
                            
                            createState(idHoch, false, fC, {
                            
                              def: false,
                            
                              name: 'Kamera 1 PTZ oben',
                            
                              desc: 'Bewegung nach oben',
                            
                              type: 'boolean',
                            
                              role: 'switch'
                            
                            });
                            
                            createState(idRunter, false, fC, {
                            
                              def: false,
                            
                              name: 'Kamera 1 PTZ unten',
                            
                              desc: 'Bewegung nach unten',
                            
                              type: 'boolean',
                            
                              role: 'switch'
                            
                            });
                            
                            createState(idZoomIn, false, fC, {
                            
                              def: false,
                            
                              name: 'Kamera 1 PTZ Zoom in',
                            
                              desc: 'Bild vergößern',
                            
                              type: 'boolean',
                            
                              role: 'switch'
                            
                            });
                            
                            createState(idZoomOut, false, fC, {
                            
                              def: false,
                            
                              name: 'Kamera 1 PTZ Zoom out',
                            
                              desc: 'Bild verkleinern',
                            
                              type: 'boolean',
                            
                              role: 'switch'
                            
                            });
                            
                            createState(idGotoPreset, 0, fC, {
                            
                              def:  0,
                            
                              name: 'Kamera 1 PTZ Preset Wähler',
                            
                              desc: 'Preset auswählen (Zahlen von 1 bis X)',
                            
                              type: 'number'
                            
                            });
                            
                            
                            
                            log('Start the discovery process.');
                            
                            //Find the ONVIF network cameras
                            
                            onvif.startDiscovery((info) => {
                            
                            // Show the device name and the URL of the end point
                            
                            log('- ' + info.urn);
                            
                            log('  - ' + info.name);
                            
                            log('  - ' + info.xaddrs[0]);
                            
                            });
                            
                            // Stop the discovery process in 3 seconds
                            
                            setTimeout(() => {
                            
                            onvif.stopDiscovery(() => {
                            
                              log('Stopped the discovery process.');
                            
                            {1}
                            
                            });
                            
                            }, 3000);
                            
                            
                            
                            // Create an OnvifDevice object
                            
                            const device = new onvif.OnvifDevice({
                            
                              xaddr: 'http://deineIP/onvif/device_service',
                            
                              user : 'xxxxxxxxx',
                            
                              pass : 'xxxxxxxxx'
                            
                            });
                            
                            function movePTZ (ptz_x, ptz_y, ptz_z, stoptime) {
                            
                              // https://github.com/futomi/node-onvif#ptzmoveparams-callback
                            
                              device.init((error) => {
                            
                                  if (error) {
                            
                                      log('[ERROR] ' + error.message);
                            
                                      return;
                            
                                  } else {
                            
                                      // +++ CONTROL via PTZ 
                            
                                      var ptzlog = '';
                            
                                      ptz_x = (ptz_x <=1 && ptz_x >=-1) ? ptz_x : 0;
                            
                                      ptz_y = (ptz_y <=1 && ptz_y >=-1) ? ptz_y : 0;
                            
                                      ptz_z = (ptz_z <=1 && ptz_z >=-1) ? ptz_z : 0;
                            
                                      if (ptz_x > 0) ptzlog = 'Schwenk nach rechts';
                            
                                      if (ptz_x < 0) ptzlog = 'Schwenk nach links';
                            
                                      if (ptz_y > 0) ptzlog = 'Schwenk nach oben';
                            
                                      if (ptz_y < 0) ptzlog = 'Schwenk nach unten';
                            
                                      if (ptz_z > 0) ptzlog = 'Zoom in';
                            
                                      if (ptz_z < 0) ptzlog = 'Zoom out';
                            
                                      ptzlog += ' für ' + stoptime + 's';
                            
                                      if (logging) log(ptzlog);
                            
                                      // Create the parameters
                            
                                      var params = {
                            
                                          'speed': {
                            
                                              x: ptz_x, // Speed of pan (in the range of -1 to 1.0)
                            
                                              y: ptz_y, // Speed of tilt (in the range of -1 to 1.0)
                            
                                              z: ptz_z  // Speed of zoom (in the range of -1 to 1.0)
                            
                                          },
                            
                                          'timeout': 30 // seconds
                            
                                      };
                            
                                      // Move the camera
                            
                                      device.ptzMove(params, (error) => {
                            
                                          if (error) {
                            
                                              log(error.message, 'error');
                            
                                          } else {
                            
                                              log('Camera moved!');
                            
                                          }
                            
                                      });
                            
                            
                            
                                      // Stop to the PTZ in X seconds
                            
                                      setTimeout(() => {
                            
                                          device.ptzStop((error) => {
                            
                                              if (error) {
                            
                                                  log(error.message, 'error');
                            
                                              } else {
                            
                                                  log('Succeeded to stop after ' + stoptime + ' seconds.');
                            
                                              }
                            
                                          });
                            
                                      }, stoptime * 1000);  // stopzeit
                            
                                  }
                            
                              });
                            
                            }
                            
                            function stopMoving () {
                            
                              device.ptzStop((error) => {
                            
                                  if (error) {
                            
                                      log(error.message, 'error');
                            
                                  } else {
                            
                                      log('Succeeded to stop.');
                            
                                  }
                            
                              });
                            
                            }
                            
                            // https://github.com/futomi/node-onvif#gotopresetparams-callback-method
                            
                            function gotoPreset (presetNumber) { // 1,2,3 kommt als ganze Zahl
                            
                              if (presetNumber > 0) {
                            
                                  device.init((error) => {
                            
                                      if (error) {
                            
                                          log('[ERROR] ' + error.message, 'error');
                            
                                          return;
                            
                                      } /*else {*/
                            
                                      // The OnvifServicePtz object
                            
                                      var ptz = device.services.ptz;
                            
                                      if (ptz) {
                            
                                          var profile = device.getCurrentProfile(); // debug
                            
                                          log(JSON.stringify(profile, null, '  ')); // debug log
                            
                            
                            
                                          var params = {
                            
                                              'ProfileToken': profile['token'],
                            
                                              'PresetToken' : presetNumber.toString(),
                            
                                              'Speed'       : {'x': 1, 'y': 1, 'z': 1}
                            
                                          };
                            
                            
                            
                                          device.services.ptz.gotoPreset(params, (error, result) => {
                            
                                              if (error) {
                            
                                                  log('[ERROR] ' + error.message, 'error');
                            
                                              } else {
                            
                                                  if (logging) log('Preset: ' + JSON.stringify(result.data, null, '  ')); // statt result.['data']
                            
                                                  log('Camera moved to Preset #' + presetNumber.toString());
                            
                                              }
                            
                                          });
                            
                                      } else {
                            
                                          log('[ERROR] Your ONVIF network camera does not support the PTZ service.');
                            
                                      }
                            
                                      //}
                            
                                  });
                            
                              } else {
                            
                                  log('Preset für Kamera 1 kein valider Preset-Wert'); // debug log
                            
                              }
                            
                            }
                            
                            
                            
                            
                            // Links
                            
                            on({id: idLinks, val: true},function (obj) {
                            
                              if (!obj.state.ack && obj.state.val) {
                            
                                 var stoppzeit = getState(idStoppzeit).val;
                            
                                 var speed = getState(idSpeed).val;
                            
                                 movePTZ(-1 * speed , 0, 0, stoppzeit);
                            
                                 setStateDelayed(idLinks, false, 500); // ggf , 500 + (stoppzeit * 1000)
                            
                              }
                            
                            });
                            
                            // rechts
                            
                            on({id: idRechts, val: true}, function (obj) {
                            
                              if (!obj.state.ack && obj.state.val) {
                            
                                 var stoppzeit = getState(idStoppzeit).val;
                            
                                 var speed = getState(idSpeed).val;
                            
                                 movePTZ(1 * speed , 0, 0, stoppzeit);
                            
                                 setStateDelayed(idRechts, false, 500);
                            
                              }
                            
                            });
                            
                            // oben
                            
                            on({id: idHoch, val: true}, function (obj) {
                            
                              if (!obj.state.ack && obj.state.val) {
                            
                                 var stoppzeit = getState(idStoppzeit).val;
                            
                                 var speed = getState(idSpeed).val;
                            
                                 movePTZ(0, 1 * speed, 0, stoppzeit);
                            
                                 setStateDelayed(idHoch, false, 500, 500);
                            
                              }
                            
                            });
                            
                            // runter
                            
                            on({id: idRunter, val: true}, function (obj) {
                            
                              if (!obj.state.ack && obj.state.val) {
                            
                                 var stoppzeit = getState(idStoppzeit).val;
                            
                                 var speed = getState(idSpeed).val;
                            
                                 movePTZ(0, -1 * speed, 0, stoppzeit);
                            
                                 setStateDelayed(idRunter, false, 500);
                            
                              }
                            
                            });
                            
                            // vergrößern
                            
                            on({id: idZoomIn, val: true}, function (obj) {
                            
                              if (!obj.state.ack && obj.state.val) {
                            
                                 var stoppzeit = getState(idStoppzeit).val;
                            
                                 var speed = getState(idSpeed).val;
                            
                                 movePTZ(0, 0, 1 * speed, stoppzeit);
                            
                                 setStateDelayed(idZoomIn, false, 500);
                            
                              }
                            
                            });
                            
                            // verkleinern
                            
                            on({id:idZoomOut, val: true}, function (obj) {
                            
                              if (!obj.state.ack && obj.state.val) {
                            
                                 var stoppzeit = getState(idStoppzeit).val;
                            
                                 var speed = getState(idSpeed).val;
                            
                                 movePTZ(0, 0, -1 * speed, stoppzeit);
                            
                                 setStateDelayed(idZoomOut, false, 500);
                            
                              }
                            
                            });
                            
                            // sofortiger Stopp
                            
                            on(idStopp, function (obj) {
                            
                              if (!obj.state.ack && obj.state.val) {
                            
                                 stopMoving();
                            
                                 setStateDelayed(idStopp, false, 500);
                            
                                 setState(idGotoPreset, 0);
                            
                              }
                            
                            });
                            
                            
                            
                            on({
                            
                              id: [idStopp, idZoomOut, idZoomIn, idRunter, idHoch, idRechts, idLinks], 
                            
                              change: 'any'
                            
                            }, function (obj) {
                            
                              if (!obj.state.ack && obj.state.val) {
                            
                                 setState(idGotoPreset, 0);
                            
                              }
                            
                            });
                            
                            // zum bereits gespeicherten Preset X fahren (Ganze Zahl, kommt aus VIS, Scenes oder Script)
                            
                            on(idGotoPreset, function (obj) {
                            
                              if (!obj.state.ack && obj.state.val) {
                            
                                 gotoPreset(parseInt(obj.state.val,10)); // vorher 10 wird später zu einem String gewandelt
                            
                                 setStateDelayed(idGotoPreset, 0, 500); // reset
                            
                              }
                            
                            });
                            
                            /// Test hochrechts
                            
                            const idHochRechts = pfad + 'hochrechts';
                            
                            
                            createState(idHochRechts, false, fC, {def: false,name: 'Kamera 1 PTZ obenrechts',desc: 'Bewegung nach obenrechts',type: 'boolean',role: 'switch'});
                            
                            
                            on(idHochRechts, function (obj) {
                            
                              if (!obj.state.ack && obj.state.val) {
                            
                                 var stoppzeit = getState(idStoppzeit).val;
                            
                                 var speed = getState(idSpeed).val;
                                 
                                 movePTZ(1 * speed , 0, 0, stoppzeit);
                            
                                 movePTZ(0, 1 * speed, 0, stoppzeit);
                            
                                 setStateDelayed(idHochRechts, false, 500);
                                 
                              }
                            
                            });
                            
                            
                            
                            

                            Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              steimi
                              wrote on last edited by
                              #57

                              @Jey-Cee kannst du die Objekt-Struktur dahingehend anpassen, dass statt IPC-model_xxx die IP-Adresse in Form von 192_168_1_1 verwenden wird? Steigert mMn die Übersichtlichkeit. Und wäre es möglich im Adapter die Liste der Cam sortierbar zu machen?

                              Thx Steimi

                              Jey CeeJ 1 Reply Last reply
                              0
                              • S steimi

                                @Jey-Cee kannst du die Objekt-Struktur dahingehend anpassen, dass statt IPC-model_xxx die IP-Adresse in Form von 192_168_1_1 verwenden wird? Steigert mMn die Übersichtlichkeit. Und wäre es möglich im Adapter die Liste der Cam sortierbar zu machen?

                                Thx Steimi

                                Jey CeeJ Online
                                Jey CeeJ Online
                                Jey Cee
                                Developer
                                wrote on last edited by Jey Cee
                                #58

                                @steimi Also die IP zu nutzen ist sicher keine gute Idee, die kann sich ändern. Alternativ kann ich die urn benutzen, die ändert sich nicht: 88d87a05-d7f77e45-b1e9-00626E51E215

                                @steimi sagte in Test Adapter onvif v0.1.x:

                                Und wäre es möglich im Adapter die Liste der Cam sortierbar zu machen?

                                Ich werde es mir merken, ist aber gerade niedrige Priorität.
                                Edit: Wonach soll denn Sortiert werden können?

                                Persönlicher Support
                                Spenden -> paypal.me/J3YC33

                                1 Reply Last reply
                                0
                                • S Offline
                                  S Offline
                                  steimi
                                  wrote on last edited by
                                  #59

                                  Wie oft ändern man den die IP-Adresse der Cam's? Beim 'wiffi-wz'-Adapter funktioniert dies ganz gut. Vlt geht aber auch ein frei vergebbarer Name für den Objektbaum.
                                  Es muss nicht sortierbar sein, allerdings sollte zumindest nach der Erkennen nach etwas sortiert sein (IP-Adresse?).

                                  Jey CeeJ 1 Reply Last reply
                                  0
                                  • S steimi

                                    Wie oft ändern man den die IP-Adresse der Cam's? Beim 'wiffi-wz'-Adapter funktioniert dies ganz gut. Vlt geht aber auch ein frei vergebbarer Name für den Objektbaum.
                                    Es muss nicht sortierbar sein, allerdings sollte zumindest nach der Erkennen nach etwas sortiert sein (IP-Adresse?).

                                    Jey CeeJ Online
                                    Jey CeeJ Online
                                    Jey Cee
                                    Developer
                                    wrote on last edited by
                                    #60

                                    @steimi sagte in Test Adapter onvif v0.1.x:

                                    Wie oft ändern man den die IP-Adresse der Cam's?

                                    Naja vielleicht nicht so oft, aber ändere sie einmal an 20 Stellen in Skripten die du vor einem Jahr geschrieben hast. Das kann ziemlich anstrengend sein und fehler verursachen.

                                    Jedenfalls ändere ich es jetzt auf die Serial des Gerätes, das ist auch Programmtechnisch stabiler.

                                    @steimi sagte in Test Adapter onvif v0.1.x:

                                    Vlt geht aber auch ein frei vergebbarer Name für den Objektbaum.

                                    Ne, aber du kannst doch den Namen beliebig ändern. Und das sogar in der Konfiguration.

                                    Persönlicher Support
                                    Spenden -> paypal.me/J3YC33

                                    1 Reply Last reply
                                    0
                                    • G Offline
                                      G Offline
                                      GeorgS
                                      wrote on last edited by GeorgS
                                      #61

                                      Danke für den Adapter endlich meine Kameras eingebunden :+1:

                                      Ich habe eine SAWAKE 1080P HD WiFi Überwachungskamera diese wird 2x in den Adapter eingetragen in beiden Objektordner sind die gleichen Daten vorhanden. Kan man das irgendwie Einstellen das er die Kamera nur einmal eingetragen wird?

                                      grüße
                                      Georg

                                      Intel NUC, MaxCul, Xiaomi Vacuum Cleaner, Philips Hue, Zigbee, FritzDECT,Shelly

                                      1 Reply Last reply
                                      0
                                      • S Offline
                                        S Offline
                                        skokarl
                                        wrote on last edited by
                                        #62

                                        Moin,

                                        ich frag jetzt mal doof.
                                        Ersetzt der Onvif String Adapter ggf. die Installation von Motioneye ?
                                        Liefert der Onvif nur Bilder oder auch einen Stream ?
                                        Oder anders, ist das besser als Motion eye ? ( wegen Auslastung etc ),
                                        aber Onvif hat nicht jede Kamera, oder ? Hab aktuell zwei Kameras über rstp mit Motion Eye eingebunden.

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

                                        Jey CeeJ 1 Reply Last reply
                                        0
                                        • S skokarl

                                          Moin,

                                          ich frag jetzt mal doof.
                                          Ersetzt der Onvif String Adapter ggf. die Installation von Motioneye ?
                                          Liefert der Onvif nur Bilder oder auch einen Stream ?
                                          Oder anders, ist das besser als Motion eye ? ( wegen Auslastung etc ),
                                          aber Onvif hat nicht jede Kamera, oder ? Hab aktuell zwei Kameras über rstp mit Motion Eye eingebunden.

                                          Jey CeeJ Online
                                          Jey CeeJ Online
                                          Jey Cee
                                          Developer
                                          wrote on last edited by Jey Cee
                                          #63

                                          @skokarl onvif ist ein protokoll zum auslesen von informationen und steuern der Kamera, es liefert also nur den Link zu den Streams.

                                          Anfangs war der Plan auch den stream selbst per ffmpeg bereit zu stellen, aber schon 1 Stream hat einen i3 voll Ausgelastet. Da es mir nicht möglich war eine passende Konfiguration zu finden wurde das Feature deaktiviert und demnächst Vollständig entfernt.
                                          Es gibt aber einen Adapter der Streams per ffmpeg wandelt, der Entwickler hat es geschafft eine Konfiguration zu finden die läuft.

                                          Persönlicher Support
                                          Spenden -> paypal.me/J3YC33

                                          S 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          597

                                          Online

                                          32.6k

                                          Users

                                          82.2k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe