Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter onvif-alt v0.1.x

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Test Adapter onvif-alt v0.1.x

    This topic has been deleted. Only users with topic management privileges can see it.
    • Knallochse
      Knallochse @Jey Cee last edited by

      @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 Cee 1 Reply Last reply Reply Quote 0
      • J
        Jan1 @Knallochse last edited by

        @Knallochse
        Ja habe ich gelesen, nur hier vergessen auch zu aktivieren 😁
        c3dd4bea-5873-4a41-be42-0f7053943ffe-grafik.png

        Knallochse 1 Reply Last reply Reply Quote 0
        • Knallochse
          Knallochse @Jan1 last edited by Knallochse

          @Jan1 😂 ja, damit geht es bestimmt besser 👍

          1 Reply Last reply Reply Quote 0
          • Segway
            Segway @Jey Cee last edited by Segway

            @Jey-Cee
            Moin ich hänge mich hier auch rein.

            Hab die 0.0.2 Version installiert.
            Habe eine Scricam SP007 die nur einen rtsp stream liefert ohne benutzername und passwort.
            Leider findet der Adapter nichts:

            onvif.0	2020-01-01 12:18:12.756	debug	(5942) stateChange onvif.0.discoveryRunning {"val":false,"ack":true,"ts":1577877492727,"q":0,"from":"system.adapter.onvif.0","user":"system.user.admin","lc":1577877486238}
            onvif.0	2020-01-01 12:18:12.754	debug	(5942) startCameras: []
            onvif.0	2020-01-01 12:18:12.716	debug	(5942) startCameras
            onvif.0	2020-01-01 12:18:12.679	info	(5942) starting. Version 0.0.2 in /opt/iobroker/node_modules/iobroker.onvif, node: v12.14.0
            onvif.0	2020-01-01 12:18:08.143	debug	(2292) system.adapter.admin.0: logging true
            onvif.0	2020-01-01 12:18:08.083	info	(2292) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason
            onvif.0	2020-01-01 12:18:08.082	info	(2292) terminating
            onvif.0	2020-01-01 12:18:08.081	debug	(2292) cleaned everything up...
            onvif.0	2020-01-01 12:18:08.078	info	(2292) Got terminate signal TERMINATE_YOURSELF
            onvif.0	2020-01-01 12:18:06.248	debug	(2292) startCameras: []
            onvif.0	2020-01-01 12:18:06.242	debug	(2292) stateChange onvif.0.discoveryRunning {"val":false,"ack":true,"ts":1577877486238,"q":0,"from":"system.adapter.onvif.0","user":"system.user.admin","lc":1577877486238}
            onvif.0	2020-01-01 12:18:06.236	debug	(2292) sendTo "discovery" to system.adapter.admin.0 from system.adapter.onvif.0
            onvif.0	2020-01-01 12:18:06.235	debug	(2292) Discovery finished
            onvif.0	2020-01-01 12:18:06.233	debug	(2292) startCameras
            onvif.0	2020-01-01 12:17:56.209	debug	(2292) stateChange onvif.0.discoveryRunning {"val":true,"ack":true,"ts":1577877476192,"q":0,"from":"system.adapter.onvif.0","user":"system.user.admin","lc":1577877476192}
            onvif.0	2020-01-01 12:17:56.190	debug	(2292) a.b.c.d 554
            onvif.0	2020-01-01 12:17:56.188	debug	(2292) Received "discovery" event
            onvif.0	2020-01-01 12:17:42.237	debug	(2292) system.adapter.admin.0: logging false
            onvif.0	2020-01-01 12:17:35.228	debug	(2292) sendTo "getDevices" to system.adapter.admin.0 from system.adapter.onvif.0
            

            über vlc kommt der stream per
            rtsp://a.b.c.d:554/onvif1

            Jey Cee 1 Reply Last reply Reply Quote 0
            • Jey Cee
              Jey Cee Developer @Segway last edited by

              @Segway Sorry die 0.0.2 ist nicht von mir, das ist eine von 2 Versionen die nicht mehr Weiterentwickelt wird und von meiner ersetzt werden soll. Die Version 0.1.0 ist eine Komplette neu Entwicklung.
              Deshalb kann ich dir da nicht weiterhelfen.

              Segway 2 Replies Last reply Reply Quote 0
              • Segway
                Segway @Jey Cee last edited by

                @Jey-Cee
                Oh, okay, verstanden. installiere das mal über die Katze / Github Link ! Melde mich 🙂

                1 Reply Last reply Reply Quote 0
                • Segway
                  Segway @Jey Cee last edited by

                  @Jey-Cee

                  okay, hat meine Kamera gefunden - und was nun ?

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

                  Jey Cee 1 Reply Last reply Reply Quote 0
                  • Jey Cee
                    Jey Cee Developer @Segway last edited by

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

                    Segway 1 Reply Last reply Reply Quote 0
                    • Segway
                      Segway @Jey Cee last edited by

                      @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

                      1 Reply Last reply Reply Quote 0
                      • Jey Cee
                        Jey Cee Developer @Knallochse last edited by

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

                        1 Reply Last reply Reply Quote 1
                        • Knallochse
                          Knallochse last edited by 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.

                          Neuschwansteini Jey Cee 2 Replies Last reply Reply Quote 0
                          • Neuschwansteini
                            Neuschwansteini @Knallochse last edited by

                            @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

                            Knallochse 1 Reply Last reply Reply Quote 1
                            • Jey Cee
                              Jey Cee Developer @Knallochse last edited by

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

                              Knallochse 1 Reply Last reply Reply Quote 0
                              • Knallochse
                                Knallochse @Neuschwansteini last edited by

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

                                Neuschwansteini 1 Reply Last reply Reply Quote 0
                                • Neuschwansteini
                                  Neuschwansteini @Knallochse last edited by

                                  @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 Reply Quote 0
                                  • Knallochse
                                    Knallochse @Jey Cee last edited by

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

                                    1 Reply Last reply Reply Quote 0
                                    • C
                                      ChrisXY last edited by

                                      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 Cee 1 Reply Last reply Reply Quote 0
                                      • Jey Cee
                                        Jey Cee Developer @ChrisXY last edited by

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

                                        C 1 Reply Last reply Reply Quote 0
                                        • Glasfaser
                                          Glasfaser @Dr. Bakterius last edited by Glasfaser

                                          @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

                                          Dr. Bakterius 1 Reply Last reply Reply Quote 0
                                          • Glasfaser
                                            Glasfaser @Jey Cee last edited by Glasfaser

                                            @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);
                                                 
                                              }
                                            
                                            });
                                            
                                            
                                            
                                            

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            550
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            onvif
                                            33
                                            271
                                            30711
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo