Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

[Tuto] Pilotage caméra ONVIF

Pour toute question concernant le plugin caméra
jlegall56
Timide
Messages : 3
Inscription : 09 sept. 2018, 10:32

Re: [Tuto] Pilotage caméra ONVIF

Message par jlegall56 » 09 sept. 2018, 10:42

Bonjour,

Pour ma part, j'ai reçu ma caméra sricam sp015 la semaine dernière et l'installation c'est déroulé avec succès.
Merci à tous pour vos conseils pour la récupération de l'url et les scripts pour les commandes.
Une astuce pour ne pas être obliger d'utiliser le 'use-strict' : mettre à jour node, c'est top !

Je rencontre toutefois un problème pour utiliser les presets, via le script décrit par @freddye

lors de l'execution, j'obtiens un 'socket hang up', j'ai tenter plusieurs fonctions de la classe javascript device.services.ptz, j'ai toujours le même résultat :

Code : Tout sélectionner

[console serveur]#node preset_test.js  2
myArgs:  [ '2' ]
Error: Network Error: socket hang up
    at ClientRequest.req.on (/[[i]Repertoirehome[/i]]/node_modules/node-onvif/lib/modules/soap.js:168:11)
    at ClientRequest.emit (events.js:182:13)
    at Socket.socketOnEnd (_http_client.js:425:9)
    at Socket.emit (events.js:187:15)
    at endReadableNT (_stream_readable.js:1092:12)
    at process._tickCallback (internal/process/next_tick.js:63:19)
Si vous avez une idée ?
Merci beaucoup.

PS : les presets fonctionnent via l'application sricam sur Android

Avatar de l’utilisateur
tom74
Actif
Messages : 1798
Inscription : 16 juil. 2014, 09:16
Localisation : Annecy (74)

Re: [Tuto] Pilotage caméra ONVIF

Message par tom74 » 09 sept. 2018, 10:53

chris4269 a écrit :
03 sept. 2018, 09:55
Bonjour
Est il prévu que tout cela soit intégrer dans le pluging camera
En effet de nombreuse camera fonctionnent avec le protocole ONVIF
Cordialement et encore merci pour le travail
+1

chris4269
Timide
Messages : 177
Inscription : 18 août 2017, 15:08

Re: [Tuto] Pilotage caméra ONVIF

Message par chris4269 » 11 sept. 2018, 20:32

je pense avoir bien installer le module node voir impression ecran Screenshot_1.jpg
j ai généré le getStatus.js dans home\pi modifier l ip de la camera Screenshot_2.jpg
J ai un message d erreur lors du lancement du nodegestatus.js Screenshot_4.jpg ( malgré plusieurs essai )
j arrive pourtant a visualiser ma camera avec jeedom Screenshot_3.jpg
Merci de votre aide
Pièces jointes
Screenshot_4.jpg
Screenshot_4.jpg (132.15 Kio) Consulté 2459 fois
Screenshot_2.jpg
Screenshot_2.jpg (40.86 Kio) Consulté 2459 fois
Screenshot_1.jpg
Screenshot_1.jpg (11.6 Kio) Consulté 2459 fois

jlegall56
Timide
Messages : 3
Inscription : 09 sept. 2018, 10:32

Re: [Tuto] Pilotage caméra ONVIF

Message par jlegall56 » 14 oct. 2018, 07:58

Bonjour,
Je n'ai toujours pas trouvé de solution à mon problème de "socket hang up"
Pas le seul visiblement, j'ai posté un ticket sur le Gitup du composant node-onvif :
https://github.com/futomi/node-onvif/issues/39

Si vous avez des idées en compléments ;-)

Bonne journée.
Julien.

diabolyk
Timide
Messages : 432
Inscription : 01 févr. 2018, 12:41

Re: [Tuto] Pilotage caméra ONVIF

Message par diabolyk » 07 déc. 2018, 13:43

Salut,

J'ai une (enfin 2) SRICAM SP013 que j'ai intégré via le plugin caméra avec un flux rtsp /onvif1.

ça fonctionne de manière aléatoire sur mon design.
Pour faire réapparaitre l'image je dois relancer les dépendances du plugin et ça fonctionne de manière aléatoire de quelques secondes, a quelques heures et de nouveau plus rien... bref ça me soule.

Est-il possible de les intégrer via ce tuto de manière plus stable ?

Pour information, sur l'application android SRICAM ça fonctionne parfaitement.

J'envisage sinon de commander 2 autres caméra avec port micro SD pour enregistrement dessus à la manière des xiaomi dafang.

Merci de votre aide.

dj_janker
Timide
Messages : 461
Inscription : 03 févr. 2015, 09:27

Re: [Tuto] Pilotage caméra ONVIF

Message par dj_janker » 11 janv. 2019, 09:04

diabolyk a écrit :
07 déc. 2018, 13:43
Salut,

J'ai une (enfin 2) SRICAM SP013 que j'ai intégré via le plugin caméra avec un flux rtsp /onvif1.

ça fonctionne de manière aléatoire sur mon design.
Pour faire réapparaitre l'image je dois relancer les dépendances du plugin et ça fonctionne de manière aléatoire de quelques secondes, a quelques heures et de nouveau plus rien... bref ça me soule.

Est-il possible de les intégrer via ce tuto de manière plus stable ?

Pour information, sur l'application android SRICAM ça fonctionne parfaitement.

J'envisage sinon de commander 2 autres caméra avec port micro SD pour enregistrement dessus à la manière des xiaomi dafang.

Merci de votre aide.
Une capture d'ercan de ton config, svp?

diabolyk
Timide
Messages : 432
Inscription : 01 févr. 2018, 12:41

Re: [Tuto] Pilotage caméra ONVIF

Message par diabolyk » 11 janv. 2019, 09:43

dj_janker a écrit :
11 janv. 2019, 09:04
diabolyk a écrit :
07 déc. 2018, 13:43
Salut,

J'ai une (enfin 2) SRICAM SP013 que j'ai intégré via le plugin caméra avec un flux rtsp /onvif1.

ça fonctionne de manière aléatoire sur mon design.
Pour faire réapparaitre l'image je dois relancer les dépendances du plugin et ça fonctionne de manière aléatoire de quelques secondes, a quelques heures et de nouveau plus rien... bref ça me soule.

Est-il possible de les intégrer via ce tuto de manière plus stable ?

Pour information, sur l'application android SRICAM ça fonctionne parfaitement.

J'envisage sinon de commander 2 autres caméra avec port micro SD pour enregistrement dessus à la manière des xiaomi dafang.

Merci de votre aide.
Une capture d'ercan de ton config, svp?
Voici :
Sans titre.png
Sans titre.png (79.81 Kio) Consulté 2205 fois

chatelar
Timide
Messages : 17
Inscription : 13 déc. 2018, 09:48

Re: [Tuto] Pilotage caméra ONVIF

Message par chatelar » 17 août 2019, 02:06

freddye a écrit :
12 avr. 2018, 11:19
Bonjour

Suite à l'achat d'une caméra chinoise PTZ sur Aliexpress, je me suis rapidement rendu compte que celle-ci allait être difficile à intègrer sous Jeedom.

En effet, étant inconnue, aucune URL pour le snapshot et encore moins pour le PTZ.

La seule donnée connue étant qu"elle est compatible (comme toutes les nouvelles caméra) ONVIF.

Etant tombé sur sur projet : https://github.com/futomi/node-onvif#On ... set-method , je me suis dis qu'il y avait une forte piste a suivre.

J'ai donc installé le module Node ONVIF avec la commande

Code : Tout sélectionner

npm install -s node-onvif


Puis réalisé le code suivant (getStatus.js) :

Code : Tout sélectionner

const onvif = require('node-onvif');

// Create an OnvifDevice object
let device = new onvif.OnvifDevice({
  xaddr: 'http://192.168.1.10:8899/onvif/device_service',
  user : 'xxx',
  pass : 'xxx'
});

// Initialize the OnvifDevice object
device.init().then(() => {

let profile = device.getCurrentProfile();
console.log(JSON.stringify(profile, null, '  '));


}).then(() => {
  console.log('Done!');
}).catch((error) => {
  console.error(error);
});


Et là, miracle :

Code : Tout sélectionner

root@jeedom:~# node getStatus.js
{
  "token": "000",
  "name": "Profile_000",
  "snapshot": "http://192.168.1.10/webcapture.jpg?command=snap&channel=1",
  "stream": {
    "udp": "rtsp://192.168.1.10:554/user=xx_password=xx_channel=1_stream=0.sdp?real_stream",
    "http": "rtsp://192.168.1.10:554/user=xx_password=xx_channel=1_stream=0.sdp?real_stream",
    "rtsp": "rtsp://192.168.1.10:554/user=xx_password=xx_channel=1_stream=0.sdp?real_stream"
  },
  "video": {
    "source": {
      "token": "000",
      "name": "VideoS_000",
      "bounds": {
        "width": 1280,
        "height": 960,
        "x": 0,
        "y": 0
      }
    },
    "encoder": {
      "token": "000",
      "name": "VideoE_000",
      "resolution": {
        "width": 1280,
        "height": 960
      },
      "quality": 4,
      "framerate": 25,
      "bitrate": 3072,
      "encoding": "H264"
    }
  },
  "audio": {
    "source": {
      "token": "000",
      "name": "Audio_000"
    },
    "encoder": {
      "token": "000",
      "name": "AudioE_000",
      "bitrate": 64,
      "samplerate": 8,
      "encoding": "G711"
    }
  },
  "ptz": {
    "range": {
      "x": {
        "min": -1,
        "max": 1
      },
      "y": {
        "min": -1,
        "max": 1
      },
      "z": {
        "min": -1,
        "max": 1
      }
    }
  }
}
Done!
Plein d'info, dont la précieuse URL http://192.168.1.10/webcapture.jpg?comm ... &channel=1 qui me permet donc de créer ma caméra dans le plugin caméra (plus besoin de passer par le plugin RTSP)

Bon, c'est bien beau, mais maintenant, il serait bien de pouvoir la piloter :

Création du script ptz.js :

Code : Tout sélectionner


const onvif = require('node-onvif');
 var myArgs = process.argv.slice(2);
 console.log('myArgs: ', myArgs);



// Create an OnvifDevice object
let device = new onvif.OnvifDevice({
  xaddr: 'http://192.168.1.10:8899/onvif/device_service',
  user : 'xx',
  pass : 'xx'
});

// Initialize the OnvifDevice object
device.init().then(() => {

let params = {
  'ProfileToken': '000',
  'PresetToken' : myArgs[0],
  'Speed'       : {'x': 1, 'y': 1, 'z': 1}
};

device.services.ptz.gotoPreset(params).then((result) => {
  console.log(JSON.stringify(result['data'], null, '  '));
}).catch((error) => {
  console.error(error);
});

});
Puis via le plugin script :
Créer un fichier OnvifPtz.sh :

Code : Tout sélectionner

#!/bin/bash -l

node /home/pi/ptz.js $1
et ajouter autant d'action que de preset voulu avec appel à OnvifPtz et le num du preset en paramètre :
Capture.PNG

Le plugin camera ne permettant pas de créer des commandes avec appel de script, j'ai donc créé un virtuel permettant d'appeler les scripts.

Je me retrouve donc avec une caméra parfaitement intégrée dans Jeedom.

Certe, le temps de réponse est assez long (3 secondes entre l'appuis sur le virtuel et la réponse de la caméra), mais c'est déjà pas mal.

La doc sur le module node-onvif est assez détaillée, libre à vous de rajouter d'autres commandes telles que déplacement, zoom ...

Capture2.PNG
Un très grand merci car j'ai suivi ton tuto pour ma Wansview Q3S c'est ce qui m'a permis de trouver les URL !!

Code : Tout sélectionner

$ node getStatus.js
{
  "token": "Profile_token1",
  "name": "Profile1",
  "snapshot": "http://YYYY:80/api/v1/snap.cgi?chn=0",
  "stream": {
    "udp": "rtsp://YYYY:1554/live/ch0?token=XXXX",
    "http": "rtsp://YYYY:1554/live/ch0?token=XXXX",
    "rtsp": "rtsp://YYYY:1554/live/ch0?token=XXXX"
  },
  ...

Répondre

Revenir vers « [Plugin officiel] Caméra »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 5 invités