Caméra Hikvision afficher les intrusions

Bonjour,
Je me permets de vous solliciter, afin de savoir si quelqu’un d’entre vous aurait déjà fait remonter sur jeedom les alarmes d un NVR Hikvision provenant de caméra.
Le plugin plugin-hikvisionevent N’étant plus suivi et plugin-hikvision Ne semblant pas être terrible, je ne sais pas trop vers quoi me tourner.
Avec plugin-camera J’arrive à remonter les flux direct, mais je ne sais pas comment faire remonter les détections des caméra via le nvr.
Auriez-vous des pistes car je ne trouve que de très vieux sujet.
Merci

Salut @Step20,

Malheureusement, je confirme : la version d’avant septembre 2022 avait de gros loupés sur la remontée des événements (plusieurs utilisateurs étaient touchés mais ça pouvait en partie se corriger en bidouillant un peu le code) mais la « nouvelle version » - censée utiliser le SDK officiel Hikvision - n’a carrément jamais fonctionné chez moi. Les quelques utilisateurs qui ont osé se plaindre des bugs de ce plugin se sont systématiquement pris une pluie de missiles de la part de son développeur donc bon…

Je n’ai jamais essayé l’autre plugin mentionné, mais l’auteur étant parti sur Home Assistant (comme pas mal d’autres, hélas)… on peut malheureusement le considérer comme abandonné.

A mon avis, la solution est à chercher « hors Jeedom » (perso, ça me dérange pas, bien au contraire: le passage à Debian 11 et 12 a mis en lumière les faiblesses de l’écosystème Jeedom avec un grand nombre de plugins non maintenus donc j’en ai profité pour faire un grand ménage de printemps en « externalisant » l’essentiel).

J’ai récemment testé pas mal d’options mais deux solutions, à base d’MQTT, ont particulièrement retenu mon attention (la seconde est en test depuis quelques jours):

Une fois ceci en place, aucun souci pour faire remonter ces événements jusqu’à Jeedom via les plugins MQTT manager ou jMQTT (mon préféré :heart:).

1 « J'aime »

Bonjour @kevinchalet
Je vous remercie pour toutes ces précisions, c’est bien ce que je pensais après avoir visualiser différentes échanges sur community beaucoup de monde se dirige vers le MQTT.
Me concernant par rapport à Mqtt , Je vois en quoi cela consiste car je m’étais déjà renseigné. Mais dès que je vois le mot « docker » la ça me fait peur ! lol je n’y connais absolument rien.
À tout hasard, auriez-vous un support qui me permettrait d’intégrer le github ?
Merci

Haha, pas de raison particulière d’avoir peur de Docker: ça peut être intimidant au début, mais il y a des options très simples pour démarrer tout en douceur:

Sinon, onvif-mqtt est un simple projet Node.js, donc il est possible de l’utiliser sans Docker: il suffit de copier les fichiers depuis le dépôt GitHub, d’installer les dépendances et de compiler en local. L’auteur a prévu un court guide pour cela: onvif-mqtt/CONTRIBUTING.md at main · ampretia/onvif-mqtt · GitHub (c’est marqué « contributing » mais on peut l’utiliser comme ça sans problème).

(bon après, le plus simple, ce serait que le plugin caméra supporte les événements ONVIF, mais ça n’a jamais été implémenté par l’équipe Jeedom malgré les demandes en ce sens… dommage)

A noter: certains nouveaux modèles supportent désormais le profil ONVIF « M » (pour « metadata »), lequel prévoit une compatibilité native MQTT optionnelle.

Chez Hikvision, ce sont - pour le moment - surtout des modèles très haut de gamme (type PTZ Ultra) qui sont concernés… mais j’imagine que ça finira par être généralisé d’ici quelques années.

Après une semaine d’essais concluants, j’ai définitivement adopté l’option onvif-mqtt, qui s’est montrée à la fois simple et robuste (non pas qu’hiksink ne l’était pas, mais il y a malheureusement un bug non résolu qui touche les modèles récents et cause des déconnexions/reconnexions répétées).

Au final, onvif-mqtt combiné avec le plugin caméra officiel + jMQTT offre une bien meilleure solution que le plugin Hikvision… mais faut accepter d’y passer un peu plus de temps pour configurer tout ça :man_shrugging:

1 « J'aime »

Bonsoir, je vous remercie pour toutes ces informations. Je termine un problème avec du bsb-lan et je tiendrai informé.
Merci et bonne soirée

Bonjour, je me suis attaqué à l’installation onvif-mqtt toute l après midi Mais du fait de mes faibles connaissances, ce guide ne met pas assez explicite pour une installation sur un rpbi4 . À tout hasard, connaîtriez-vous un tuto ou plusieurs qui puisse m’aiguiller sur les bonnes pistes.
Merci
j’ai l’impression qu’il n y a pas de script nommé build:

pisf@raspberrypi:~ $ npm install
npm run build
export NODE_CONFIG_TS_DIR=$(pwd)
export NODE_ENv=development

up to date, audited 5 packages in 2s

1 package is looking for funding
  run `npm fund` for details

found 0 vulnerabilities
npm error Missing script: "build"
npm error
npm error To see a list of scripts, run:
npm error   npm run
npm error A complete log of this run can be found in: /home/pisf/.npm/_logs/2025-03-17T06_43_31_653Z-debug-0.log
pisf@raspberrypi:~ $ npm run build
npm error Missing script: "build"
npm error
npm error To see a list of scripts, run:
npm error   npm run
npm error A complete log of this run can be found in: /home/pisf/.npm/_logs/2025-03-17T06_44_07_601Z-debug-0.log

Tu es sûr d’être dans le répertoire d’onvif-mqtt avant de lancer la commande ?

Je viens de tester de mon côté et RAS:

sudo apt install git --yes
git clone https://github.com/ampretia/onvif-mqtt
cd onvif-mqtt/
npm install
sudo npm run build
node lib/main.js
                    _ ____                            __  __
  ____  ____ _   __(_) __/           ____ ___  ____ _/ /_/ /_
 / __ \/ __ \ | / / / /_   ______   / __ `__ \/ __ `/ __/ __/
/ /_/ / / / / |/ / / __/  /_____/  / / / / / / /_/ / /_/ /_
\____/_/ /_/|___/_/_/             /_/ /_/ /_/\__, /\__/\__/
                                               /_/

[2025-03-17 13:33:45.149 +0100] INFO (2689): onvif-mqtt  v1.2.0

(au cas où, n’oublie pas d’activer l’intégration ONVIF et de créer un utilisateur avec les autorisations nécessaires via l’interface des caméras Hikvision et de créer le fichier de configuration production.json avec les bonnes infos dedans, sinon ça ne fonctionnera pas :grin:)

je suis MDR pour votre « au cas ou » ! je n’ai jamais essayé github , ni même un projet Node.js.
j’ai encore passer ma matinée a comprendre le fonctionnement de tous ca mais rien ! lol pas de tuto explicite ni de procédure trouvé.

effectivement vous aviez raison , je n’étais pas dans le répertoire d’onvif-mqtt car mainteant j’ai bien cette image :
image

coté activation d’ONVIF / cameras / nvr , je devrais trouver car j’ai deja vu des truc .

Par contre créer le fichier de configuration production.js avec les bonnes infos la je ne sais pas faire / créer et j’ai rien trouver de concret se matin . hormis ceci sur le github mais…MAIS lol

je ne trouve pas / ne comprends non plus quand intervienne les plugins camera et JMQTT

PFF ça fais beaucoup de chose…

Je me suis trompé sur le nom du fichier: si tu n’utilises pas onvif-mqtt via Docker, le nom du fichier par défaut est default.json, pas production.json :smile:

Tu peux facilement le créer/modifier via SSH avec un éditeur de texte type nano:

sudo apt install nano --yes
nano config/default.json

Quand tu as fini de le modifier, tu tapes CTRL+X pour quitter l’éditeur (tape ensuite Y ou O selon si c’est en anglais ou en français pour valider les changements).

Pour remplir le fichier (adresse IPv4/IPv6 de ton broker MQTT ou de tes caméras ou identifiants), là je ne pourrai pas t’aider davantage, c’est 100% propre à ton installation :smiley:

jMQTT intervient une fois onvif-mqtt correctement configuré: tu devras d’abord t’assurer avec un outil comme MQTT Explorer que les infos remontent bien jusqu’au broker MQTT.

Une fois que ce sera fait, tu pourras créer des équipements jMQTT pour faire remonter les infos. Par exemple, pour la détection d’intrusion et de franchissement de ligne (perso, j’ai choisi onvif comme topic_root dans onvif-mqtt):

Pour un fonctionnement correct, tu devras aussi configurer « Répéter les valeurs identiques » à « oui » pour chaque événement via la roue crantée puis onglet « Configuration ».

A noter: le plugin caméra n’intervient pas du tout dans la remontée d’événements. Perso, je l’utilise juste pour avoir les captures « temps réel » sur le dashboard.

C’est clairement une solution avancée, mais c’est ça ou des plugins Jeedom qui marchent sur 3 pattes :laughing:

ok cool …
concernant config/default.json puis-je utiliser : en modifiant d’après mon installation se qui est en rouge ?

{
  "mqtt": {
    "broker_host": "tcp://192.x.x.x:1885",
    "topic_root": "camera",
    "username": "cam",
    "password": "xxxxr"
  },
  "cameras": {
    "door": {
      "hostname": "192.xx.x.x",
      "onvif_port": "8000",
      "username": "xxx",
      "password": "xxx",
      "connect": {
        "retries": 5,
        "delay": 5000
      }
    },
    "garage": {
      "hostname": "192.x.x.x",
      "onvif_port": "x",
      "username": "xxxx",
      "password": "xxxx",
      "connect": {
        "retries": 5,
        "delay": 5000
      }
    }
  }
}

merci

Oui. Si tu as plus de 2 caméras, tu peux rajouter autant de nœuds que nécessaire. Par ex:

{
  "mqtt": {
    "broker_host": "tcp://192.x.x.x:1885",
    "topic_root": "camera",
    "username": "cam",
    "password": "xxxxr"
  },
  "cameras": {
    "Caméra 1": {
      "hostname": "192.xx.x.x",
      "onvif_port": "8000",
      "username": "xxx",
      "password": "xxx",
      "connect": {
        "retries": 5,
        "delay": 5000
      }
    },
    "Caméra 2": {
      "hostname": "192.x.x.x",
      "onvif_port": "x",
      "username": "xxxx",
      "password": "xxxx",
      "connect": {
        "retries": 5,
        "delay": 5000
      }
    },
    "Caméra 3": {
      "hostname": "192.x.x.x",
      "onvif_port": "x",
      "username": "xxxx",
      "password": "xxxx",
      "connect": {
        "retries": 5,
        "delay": 5000
      }
    },
    "Caméra 4": {
      "hostname": "192.x.x.x",
      "onvif_port": "x",
      "username": "xxxx",
      "password": "xxxx",
      "connect": {
        "retries": 5,
        "delay": 5000
      }
    }
  }
}

Perso, j’ai dû changer onvif_port pour pointer vers le port 80 (il me semble que c’est le port HTTP par défaut pour ONVIF sur la plupart des modèles Hikvision).

Merci beaucoup, allez go je vais chercher tout ça

2 « J'aime »

T’as réussi à t’en sortir ? :smiley:

Tiens, j’ai fait une petite pause et je me remets la semaine qui arrive. Bon week-end à vous.

bonjour,
attention me re-voici ! lol des la première ligne ça coince ! …
la partie brocker-host c’est bien le paramétrage mqtt manager ? et pourquoi l’exemple commence par TCP … ça me perturbe même apres 4 heures de recherche…
merci

Salut,

:joy:

Oui.

Pour éviter les ambiguïtés : historiquement, MQTT était systématiquement utilisé avec TCP (le mode de transport si tu veux faire simple), mais on a vu apparaitre des protocoles dérivés qui utilisent une couche de transport différente (comme MQTT-SN, basé sur UDP) ou des implémentations spécifiques (comme le broker EMQX, qui propose du MQTT sur QUIC, lui-même basé sur UDP).

TL;DR: utilise tcp://, il y a peu de chances que ton broker utilise autre chose :grin:

OK merci, j’essai

bon bin je ne vois rien concernant onvif-mqtt sur MQTT Explorer.
sachant que coté ONVIF (camera relié sur un nvr ) cela fonctionne sous ODM.
voici ou cas ou le config default.json :

je seche !!!
auriez vous des piste svp ?
merci