Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Frage]Skript zur Steuerung ONVIF Kameras

    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

    [Frage]Skript zur Steuerung ONVIF Kameras

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      pix @schittl last edited by

      @schittl Habe das Skript ganz oben im Thread nochmal bereinigt. Nach der Protierung zum neuen Forum haben sich tatsächlich einige falsche Zeichen eingeschlichen

      smartboart metaxa 2 Replies Last reply Reply Quote 1
      • smartboart
        smartboart @pix last edited by

        @pix Vielen Dank!

        1 Reply Last reply Reply Quote 0
        • metaxa
          metaxa @pix last edited by metaxa

          @pix
          Hi pix, ich habe s tatsächlich jetzt mit deinem Script hinbekommen eine onvif cam (Escam) zu steuern. Dennoch habe ich paar Fragen bzw. Probleme:

          1. Ich haber jetzt auf einer Testumgebung - ich weiß nicht wie oft und wo überall "node-onvif" installiert. Muss man "npm install -s node-onvif" überhaupt noch installieren wenn man den Adapter "ioBroker.onvif 0.0.2" installiert hat?

          2. In meinem Fall setze ich in deinen Datenpunkten einen preset, enter, und dann heißt es warten, teilweise dauertg es bis zu 20 Sekunden bis die Cam zur gewünschten Position los fährt?

          3. Mein JS-Adapter meckert die Zeile "const onvif = require('node-onvif')" mit [Cannot find module 'node-onvif'.] an? Wie gesagt ich habs x-mal installiert.

          LG und danke für dein Script, wenn auch schwerfällig aber immerhin kann ich die Cam jetzt schon mal bewegen 🙂
          mxa

          1 Reply Last reply Reply Quote 0
          • P
            pix last edited by

            Hallo,

            schön, dass das Skript bei dir funktioniert.

            1. Ich habe den Adapter ioBroker.onvif nicht installiert. Kann dazu nichts sagen. Skripte im Adapter ioBroker.javascript erwarten die Definition Nodes in den Javascript-Adapter-Einstellungen (der entsprechenden Adapter-Instanz).
            2. Habe jetzt gerade nicht in den Code gesehen, aber du kannst zB im Bereich der Subscription on() für die Presets mal eine Log-Zeile einfügen (müsste aber schon da sein). Wenn du ein Preset änderst, reagiert das Skript sofort. Nur die Kamera eben nicht.
            3. siehe 1

            Gruß
            Pix

            metaxa 1 Reply Last reply Reply Quote 0
            • metaxa
              metaxa @pix last edited by metaxa

              @pix sagte in [Frage]Skript zur Steuerung ONVIF Kameras:

              Skripte im Adapter ioBroker.javascript erwarten die Definition Nodes in den Javascript-Adapter-Einstellungen (der entsprechenden Adapter-Instanz).

              Lieben Dank für deine Reaktion!
              Kannst du mir das bitte für Dummis mit anderen Worten erklären?
              In welches Verzeichnis muss ich auf der Commanzeile den Befehl "npm install -s node-onvif" eingeben?

              c87d966d-3157-4211-ad14-236da39d3c01-grafik.png

              LG & Dank im Voraus
              mxa

              metaxa 1 Reply Last reply Reply Quote 0
              • metaxa
                metaxa @metaxa last edited by

                @metaxa sagte in [Frage]Skript zur Steuerung ONVIF Kameras:

                In welches Verzeichnis

                erl.: iobroker.javascript, die Cam moved.

                Nur sehr, sehr verspätet mit einer Verzögerung von gefühlten 10 Sekunden. Hat jemand eine Idee warum das so sein könnte, wo ich ansetzen kann zu suchen?

                LG, mxa

                1 Reply Last reply Reply Quote 0
                • P
                  pix last edited by

                  Hallo,

                  du solltest den node über die EInstellungen vom Javascript Adapter installieren:
                  Bildschirmfoto 2019-05-11 um 17.13.22.jpg

                  Gruß
                  Pix

                  lobomau 1 Reply Last reply Reply Quote 0
                  • metaxa
                    metaxa last edited by metaxa

                    Hallo Pix,
                    jetzt habe ich endlich verstanden, wofür man diese "zusätzlichen NPM-Module" im JS-Adapter benötigt, danke!

                    Den alten, mit sudo händisch installierten, Ordner habe ich unbenannt, sodaß das Script nicht mehr funktionierte. Ich wollte es sauber installieren lt. deinen Angaben.
                    Leider nein:

                    javascript.0	2019-05-12 10:24:40.700	error	Cannot install node-onvif: 254
                    javascript.0	2019-05-12 10:24:40.686	error	npm ERR! /home/iobroker/.npm/_logs/2019-05-12T08_24_40_586Z-debug.log
                    javascript.0	2019-05-12 10:24:40.686	error	npm ERR! A complete log of this run can be found in:
                    javascript.0	2019-05-12 10:24:40.685	error	
                    javascript.0	2019-05-12 10:24:40.580	error	npm ERR! enoent
                    javascript.0	2019-05-12 10:24:40.580	error	npm ERR! enoent This is related to npm not being able to find a file.
                    javascript.0	2019-05-12 10:24:40.580	error	ERR! enoent ENOENT: no such file or directory, access '/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-onvif'
                    javascript.0	2019-05-12 10:24:40.579	error	npm
                    javascript.0	2019-05-12 10:24:40.576	error	npm ERR! syscall access
                    javascript.0	2019-05-12 10:24:40.576	error	errno -2
                    javascript.0	2019-05-12 10:24:40.576	error	npm ERR!
                    javascript.0	2019-05-12 10:24:40.576	error	npm ERR! code ENOENT
                    javascript.0	2019-05-12 10:24:40.576	error	ERR! path /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-onvif
                    javascript.0	2019-05-12 10:24:40.574	error	npm
                    javascript.0	2019-05-12 10:24:39.419	error	WARN checkPermissions Missing write access to /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-onvif
                    javascript.0	2019-05-12 10:24:39.418	error	npm
                    javascript.0	2019-05-12 10:24:22.753	info	npm install node-onvif --production --prefix "/opt/iobroker/node_modules/iobroker.javascript" (System call)
                    

                    Hier noch der Auszug aus dem angesprochenen Log:

                    0 info it worked if it ends with ok
                    1 verbose cli [ '/usr/bin/node',
                    1 verbose cli   '/usr/bin/npm',
                    1 verbose cli   'install',
                    1 verbose cli   'node-onvif',
                    1 verbose cli   '--production',
                    1 verbose cli   '--prefix',
                    1 verbose cli   '/opt/iobroker/node_modules/iobroker.javascript' ]
                    2 info using npm@6.7.0
                    3 info using node@v8.15.0
                    4 verbose npm-session ca193bb86e340986
                    5 silly install loadCurrentTree
                    6 silly install readLocalPackageData
                    7 http fetch GET 200 https://registry.npmjs.org/node-onvif 48ms (from cache)
                    8 silly pacote range manifest for node-onvif@^0.1.7 fetched in 71ms
                    9 timing stage:loadCurrentTree Completed in 4292ms
                    10 silly install loadIdealTree
                    11 silly install cloneCurrentTreeToIdealTree
                    12 timing stage:loadIdealTree:cloneCurrentTree Completed in 30ms
                    13 silly install loadShrinkwrap
                    14 timing stage:loadIdealTree:loadShrinkwrap Completed in 2346ms
                    15 silly install loadAllDepsIntoIdealTree
                    16 silly resolveWithNewModule node-onvif@0.1.7 checking installable status
                    17 silly removeObsoleteDep removing node-onvif@0.1.7 from the tree as its been replaced by a newer version or is no longer required
                    18 silly removeObsoleteDep removing html@1.0.0 from the tree as its been replaced by a newer version or is no longer required
                    19 silly removeObsoleteDep removing xml2js@0.4.19 from the tree as its been replaced by a newer version or is no longer required
                    20 silly removeObsoleteDep removing sax@1.2.4 from the tree as its been replaced by a newer version or is no longer required
                    21 silly removeObsoleteDep removing xmlbuilder@9.0.7 from the tree as its been replaced by a newer version or is no longer required
                    22 http fetch GET 200 https://registry.npmjs.org/xml2js 22ms (from cache)
                    23 http fetch GET 200 https://registry.npmjs.org/html 21ms (from cache)
                    24 silly pacote range manifest for xml2js@>=0.4.17 fetched in 29ms
                    25 silly resolveWithNewModule xml2js@0.4.19 checking installable status
                    26 silly pacote range manifest for html@>=1.0.0 fetched in 30ms
                    27 silly resolveWithNewModule html@1.0.0 checking installable status
                    28 http fetch GET 200 https://registry.npmjs.org/sax 29ms (from cache)
                    29 http fetch GET 200 https://registry.npmjs.org/xmlbuilder 30ms (from cache)
                    30 silly pacote range manifest for sax@>=0.6.0 fetched in 39ms
                    31 silly resolveWithNewModule sax@1.2.4 checking installable status
                    32 silly pacote range manifest for xmlbuilder@~9.0.1 fetched in 41ms
                    33 silly resolveWithNewModule xmlbuilder@9.0.7 checking installable status
                    34 timing stage:loadIdealTree:loadAllDepsIntoIdealTree Completed in 3498ms
                    35 timing stage:loadIdealTree Completed in 6921ms
                    
                    38 silly install generateActionsToTake
                    39 silly diff-trees filtering actions: includeDev false includeProd true includeOpt true
                    40 warn checkPermissions Missing write access to /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-onvif
                    41 timing stage:rollbackFailedOptional Completed in 3ms
                    42 timing stage:runTopLevelLifecycles Completed in 11485ms
                    43 silly saveTree iobroker.javascript@4.1.12
                    
                    44 verbose stack Error: ENOENT: no such file or directory, access '/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-onvif'
                    45 verbose cwd /
                    46 verbose Linux 4.4.174-rockchip
                    47 verbose argv "/usr/bin/node" "/usr/bin/npm" "install" "node-onvif" "--production" "--prefix" "/opt/iobroker/node_modules/iobroker.javascript"
                    48 verbose node v8.15.0
                    49 verbose npm  v6.7.0
                    50 error path /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-onvif
                    51 error code ENOENT
                    52 error errno -2
                    53 error syscall access
                    54 error enoent ENOENT: no such file or directory, access '/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-onvif'
                    55 error enoent This is related to npm not being able to find a file.
                    56 verbose exit [ -2, true ]
                    

                    Sicherheitshalber habe ich - wie hier beschrieben - mt

                    sudo chown -R iobroker:iobroker /opt/iobroker/node_modules/iobroker.javascript
                    

                    die Rechte wieder zurecht gerückt.

                    Hast du eine Idee woran ich scheitere?

                    LG, mxa

                    1 Reply Last reply Reply Quote 0
                    • lobomau
                      lobomau @pix last edited by

                      Ich habe das Script nochmal ausprobiert (nach 1,5 Jahren) mit gleicher Kamera. Hat sofort funktioniert. Klasse. Ich kann es nicht mehr nachvollziehen woran es lag.

                      @pix welche widget nimmst du, um die Pfeile in VIS darzustellen?

                      1 Reply Last reply Reply Quote 0
                      • P
                        pix last edited by

                        Hallo,

                        ich nehme die set-value-Widgets. Also bei Druck wird ein Wert in einen Datenpunkt geschrieben.

                        Pix

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

                          Hi,
                          kennt jemand auch eine einfachere Möglichkeit der PTZ Steuerung wie über http get (z.B. http//user:pw/192.168.1.15/onvif/steuerung/nach_links). Ich stelle mir das sicher zu einfach vor. Aber das wäre doch schön.
                          Gruß
                          Sylvio

                          Glasfaser 1 Reply Last reply Reply Quote 0
                          • smartboart
                            smartboart last edited by smartboart

                            Hi , habe das Script am Laufen mit ner Foscam FI9938P. funktioniert soweit alles , ausser der Zoom in beide Richtungen... Hat jremand ne Idee?
                            Update: ist ein Firmware Fehler der Kamera...

                            1 Reply Last reply Reply Quote 0
                            • Glasfaser
                              Glasfaser @melodoi last edited by

                              @melodoi
                              Kenne deine Kamera nicht bzw. wurde nicht angegeben .

                              Bei meinen PTZ Hikvision habe ich es so, hier einige Beispiele:

                              links:
                              http://user:passwort@IPadresse/PTZ/channels/1/PTZControl?command=PAN_LEFT&speed=2&mode=start
                              rechts:
                              http://user:passwort@IPadresse//PTZ/channels/1/PTZControl?command=PAN_RIGHT&speed=2&mode=start
                              stop:
                              http://user:passwort@IPadresse//PTZ/channels/1/PTZControl?/PTZ/channels/1/PTZControl?command=PAN_RIGHT&speed=1&mode=stop

                              55555555555555555555555.JPG
                              hier ein Widget davon :

                              [{"tpl":"tplIconHttpGet","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"url":"http://user:passwort@IPadresse/PTZ/channels/1/PTZControl?command=PAN_RIGHT&speed=1&mode=stop","text":"","src":"/vis.0/Wohnen/audio_stop.png"},"style":{"left":"110px","top":"261px","width":"86px","height":"58px","z-index":"5"},"widgetSet":"jqui"}]
                              
                              

                              smartboart 1 Reply Last reply Reply Quote 0
                              • smartboart
                                smartboart @Glasfaser last edited by

                                Hat das Script schonmal jemand erweitert um ptz Bewegung obenlinks, obenrechts, untenlinks, untenrechts, und die Funktion zum autonmatischen Abfahren der voreingestelleten Presetpositionen?

                                smartboart 1 Reply Last reply Reply Quote 0
                                • smartboart
                                  smartboart @smartboart last edited by smartboart

                                  Das sollte gehen am Beispiel hoch rechts..

                                  das mit den verschiedenen presets abfahren wäre mittels skript auch kein problem..Die Kamera hat dies alerdings on board muesste also auch mittels onvif gehen oder..

                                  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
                                  • smartboart
                                    smartboart last edited by

                                    noch ne Frage ..habe noch Probleme mit dem profiletoken.
                                    habe davon 2 in der Kamera... prof0 und prof1.
                                    die scheinen immer abwechselnd aktiv zu sein...Wenn die Presetfahrt nicht funktioniert muss ich im script den profiletoken wieder ändern dann gehts wieder.
                                    Wenn es wieder nicht geht wieder zurück zum anderen...Jemand ne Idee wie ich das lösen kann?

                                               var ptz = device.services.ptz;
                                               if (ptz) {
                                                   var params = {
                                                       'ProfileToken': 'prof1',
                                                       'PresetToken' : presetNumber.toString(),
                                                       'Speed'       : {'x': 1, 'y': 1, 'z': 1}
                                                   };
                                    
                                    Glasfaser 1 Reply Last reply Reply Quote 0
                                    • Glasfaser
                                      Glasfaser @smartboart last edited by

                                      @smartboart

                                      Leider kann ich dir dazu nicht weiterhelfen ….
                                      Hatte es auch mal versucht es auf meine Hikvison PTZ Kameras umzustricken , aber bin mehr auf die Lösung zu den " http " Ansteuerungen umgeschwenkt . ( siehe oben )

                                      Es ist nur eine einmalige Sache gewesen die Buttons dazu zu belegen .
                                      Rechts - Links - Unten - Oben
                                      Oben links - oben rechts
                                      unten links - unten rechts
                                      Stop
                                      Zoom in - Zoom out
                                      4 x PTZ Anfahrten

                                      smartboart 1 Reply Last reply Reply Quote 0
                                      • smartboart
                                        smartboart @Glasfaser last edited by

                                        @Glasfaser danke, das funktioniert mit meiner cam leider nicht so...

                                        1 Reply Last reply Reply Quote 0
                                        • D
                                          dare last edited by

                                          Hi,
                                          Hat da bitte wer eine Ahnung wo ich bei erfolgreicher installation des ONVIF Adapter die Status bzw. Steuerobjekte für die PTZ Cam finde ?
                                          Bei den Objekten sehe ich ledglich den Ordner ONVIV 0 und den Unterordner mit der IP der CAM -> connection = true
                                          Die Cam ist eine H.VIEW HV-PTZ500. Mit dem Onfiv Device Manager kann ich die Cam steuern liveBild sehen usw...
                                          Was mache ich hier falsch bzw. braucht man zur Steuerung der Cam noch zusätzlich zu dem Onvif Adapter etwas

                                          BG dare

                                          1 Reply Last reply Reply Quote 0
                                          • A
                                            Alexxx2005 last edited by

                                            @pix

                                            ist es möglich die 5MP Dome Kamera von YoLuke einzubinden ?

                                            Habe es versucht mit deinem Skript , auch dem Port auf 80
                                            geändert aber er meldet mir :

                                            javascript.0
                                            2020-01-13 20:37:49.336
                                            info
                                            (9808) script.js.common.PTZ_Kamera: [ERROR] Failed to initialize the device: Error: 404 Not Found
                                            javascript.0
                                            2020-01-13 20:37:48.309
                                            info
                                            (9808) script.js.common.PTZ_Kamera: [ERROR] Failed to initialize the device: Error: 404 Not Found
                                            javascript.0
                                            2020-01-13 20:37:24.672
                                            info
                                            (9808) script.js.common.PTZ_Kamera: registered 15 subscriptions and 0 schedules 
                                            

                                            Beim Aufruf im Browser : http://192.168.86.34:80/onvif/device_service

                                            meldet er mir :

                                            Error 404: Not Found
                                            File not found
                                            
                                            

                                            Grüße Alex

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            848
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            27
                                            79
                                            23503
                                            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