NEWS
[Frage]Skript zur Steuerung ONVIF Kameras
-
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
-
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?
-
Hallo,
ich nehme die set-value-Widgets. Also bei Druck wird ein Wert in einen Datenpunkt geschrieben.
Pix
-
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 -
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... -
@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
hier ein Widget davon : -
Hat das Script schonmal jemand erweitert um ptz Bewegung obenlinks, obenrechts, untenlinks, untenrechts, und die Funktion zum autonmatischen Abfahren der voreingestelleten Presetpositionen?
-
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); } });
-
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} };
-
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 -
@Glasfaser danke, das funktioniert mit meiner cam leider nicht so...
-
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 etwasBG dare
-
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
-
Hast du ONVIF in der Kamera freigegeben !?
Hiermit kannst du es testen , ob ein ONVIF im Netzwerk vorhanden ist .
Die Ausgabe erfolgt im LOG . -
tolles Skript von dir , ja er meldet bei mir das er etwas findet allerdings unter 8080
Habe jetzt mal das WebInterface der Kamera geöffnet wenn ich dann die
Kamera im VIS bewege , bewegt sie sich auch im WebInterface , ich verstehe
nur nicht warum das Widget kein Bild anzeigt , als Quelle wird hier auf :{javascript.0.Xeoma.Kamera.1.IP} verwiesen , benötige ich ein weiteres Skript
zum Bild anzeigen ?Grüße Alex
-
Ich vermute das hat mit diesem hier noch zu tun :
hier meckert er noch das der Pfad auch nicht stimmt
-
Er hat doch Windows ... du nicht
Nimm das erstmal als Füller ... :const dest_path = '/opt/iobroker/iobroker-data/files/vis.0/snapsonvif.jpg';
@Alexxx2005 sagte in [Frage]Skript zur Steuerung ONVIF Kameras:
@Glasfaser
Habe jetzt mal das WebInterface der Kamera geöffnet wenn ich dann die
Kamera im VIS bewege , bewegt sie sich auch im WebInterface , ich verstehe
nur nicht warum das Widget kein Bild anzeigt , als Quelle wird hier auf :
{javascript.0.Xeoma.Kamera.1.IP} verwiesen , benötige ich ein weiteres Skript
zum Bild anzeigen ?Meinst du das :
Dort kannst du deine URL auch eingeben (Snapshot )http://user:passwort@.......
-
@Glasfaser said in [Frage]Skript zur Steuerung ONVIF Kameras:
snapsonvif.jpg';
Okay ja ich benötige einen Windows Pfad da iobroker bei mir auf einem
Nuc mit Windows läuft.Verstehe jetzt nur nicht ob die Klammern \ oder so / hin müssen normal ja :
C:\Program Files\iobroker\SmartHome\iobroker-data\files\vis.0\snap.jpg
Das nächste große Problem ist wie finde ich die Snapshot URL heraus
da es sich um eine Kamera handelt die nicht so gängig ist (5MP YoLuke
PTZ) , habe ich mit dem Programm Ispy64 hunderte URL`s ermittelt aber
die wo ich mal getestet haben gehen nicht :rtsp://admin:admin@192.168.86.34:554/1 rtsp://192.168.86.34/12: http://admin:admin@192.168.86.34/snap.jpg?JpegCam=0
Kennst du zufällig Möglichkeiten oder gibt es ein Skript sowas auszulesen ?
Danke, Grüße Alex
-
Mit dem Windows Pfad kann ich dir nicht helfen ….
Kennst du zufällig Möglichkeiten oder gibt es ein Skript sowas auszulesen ?
Von Jey Cee der Adapter onvif v0.1.x , ist sehr gut !
-
habe nun festgestellt das nach einem Iobroker neustart die URL
http://<IP>/web/tmpfs/snap.jpg http://Name:PW@<IP>/snap.jpg?JpegCam=1
funktioniert.
Was noch nicht funktioniert ist der PTZ Present ist es möglich diese
Steuerung im Skript anzupassen ?Nach Stundenlangen Googeln kam ich auf diesen Pfad was durch ändern
der Number=1 die verschiedenen Postionen anfährt.http://<IP>/cgi-bin/hi3510/param.cgi?cmd=preset&-act=goto&-status=1&-number=2
Grüße Alex