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):
- GitHub - CornerBit/HikSink: Converts Hikvision camera events to MQTT, qui utilise l’API HTTP Hikvision pour faire remonter les événements vers n’importe quel broker MQTT.
- GitHub - ampretia/onvif-mqtt: Bridges ONVIF events from IP Cameras to MQTT, qui utilise l’intégration ONVIF standard et fonctionne également pour les événements dits « intelligents » (intrusion ou franchissement de ligne, par exemple).
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é ).
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:
-
Le plugin Docker Management de Jeedom, simple et rapide à installer: https://doc.jeedom.com/fr_FR/plugins/programming/docker2/
-
Portainer, sans doute un poil plus compliqué à installer et à utiliser pour un novice mais beaucoup plus complet au final (top dès qu’on est prêt à aller plus loin): Portainer : LA solution pour les conteneurs Docker (gratuite) - Cachem
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
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 )
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 :
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
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
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
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
T’as réussi à t’en sortir ?
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,
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
OK merci, j’essai