HIK - Connection Closed

Salut tout le monde,

Je viens d’installer le plugin HIKVision de @lunarok .
Les dépendances sont au vert, le démon s’active OK.

sur le http.error :

[Fri Nov 08 20:17:22.842601 2019] [:error] [pid 1086] 
[client 192.168.1.35:14174] PHP Fatal error:  Uncaught Error: Call to a member function getId() on boolean in /var/www/html/plugins/hikvision/core/class/hikvision.class.php:252\nStack trace:\n#0 
/var/www/html/core/ajax/object.ajax.php(171): hikvision->toHtml('dashboard')\n#1 
{main}\nthrown in /var/www/html/plugins/hikvision/core/class/hikvision.class.php on line 252, 
referer: http://192.168.1.101/index.php?v=d&p=dashboard

xx.35 étant mon NAS avec centre video
xx.101 étant le serveur Jeedom

le log de Hikvision_Nok annonce : Connection closed!

Merci par avance pour votre aide !

j’ai la même chose depuis la mise à jour !
tu as résolu le problème ?

Après la nouvelle mise à jour, le soucis Erreur 500 a disparu mais le plugin continu d’envoyer Connection closed

Perso j’ai activé l’envoi de l’evenement vers le centre de surveillance depuis le paramétrage de la cam.
J’ai mis dans Jeedom mon adresse h ttp://ip:80 … mais je ne vois pas remonter d’alarmes ? comment tester que cela part bien de la cam ou que c’est Jeedom qui recoive pas l’info ?

J’ai tenté de basculer sur le port 8000 d’écoute d’une caméra et 554 sur l’autre…
CapturePort
Comme je ne sais pas quel port prendre (pt à noter dans la doc @lunarok )

ce soir le Node me renvoi l’erreur suivante :

Citation events.js:187
throw er; // Unhandled ‹ error › event
^
Error: read ECONNRESET
at TCP.onStreamRead (internal/stream_base_commons.js:201:27)
Emitted ‹ error › event on CameraEventHandler instance at:
at CameraEventHandler.handleError (/var/www/html/plugins/hikvision/resources/node_modules/cameraeventhandler/dist/cameraEventHandler.js:182:14)
at Socket. (/var/www/html/plugins/hikvision/resources/node_modules/cameraeventhandler/dist/cameraEventHandler.js:49:42)
at Socket.emit (events.js:210:5)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:80:21) {
errno: ‹ ECONNRESET ›,
code: ‹ ECONNRESET ›,
syscall: ‹ read ›

@lunarok des idées ?

Bonjour,

Dans mon cas, le port 80 est fonctionnel sur une des deux machines et l’était précédemment sur l’autre.
Où est-ce que tu vois le contenu du node ?

N’achetez pas ce plugin…
La documentation est trop sommaire.
Lunarok ne semble pas etre en mesure de vous aider quand cela ne marche pas.
Aucune réponse de sa part. Bien limité comme implication pour un plugin payant.

1 « J'aime »

Bonjour,

J’ai le même problème de connection closed (j’ai acheté car j’ai plusieurs plugins de @lunarok et tous fonctionnent très bien).
Ma caméra fonctionne dans le module caméra de Jeedom.
Les évènements sont bien détectés car la caméra m’envoie un email et met les photos / videos sur le NAS.
En revanche les évènements n’arrivent pas dans le plugin hikvision sur Jeedom. Dans les logs, je ne trouve qu’une seule ligne qui se répète : Connection Closed!
Pourtant j’ai bien donné les droits à l’utilisateur, j’ai coché la case notifier.
J’utilise une DS-2CD2045FWD-I sans NVR (elle envoie sur le NAS en direct).
Y a t il d’autres choses à configurer ? J’ai mis le port 80 dans le plugin. Est-ce le bon ?

Merci de votre aide !

Connexion closed = API non active
Tout ce que je peux mettre dnas la doc c’est de vérifier la conf de la camera car suivant les modèles ca change. C’est pas parcequ’elle envoie des mails que la communication vers un centre de surveillance est active (certains modèles surtout les hauts de gamme font la différence)

Les deux derniers retours connexion closed que j’ai eu (contrairement a ce que certains assistés plus haut sous entendent, je fais le support, mais je donne pas le biberon) :

  • user non autorisé pour l’usage de l’API
  • notification vers un centre de surveillance non active (alors que email était elle active)

Je te remercie.
Malheureusement j’avais bien vérifié ces deux points. J’ajoute des copies d’écran au cas où j’aurais oublié des évidences à force d’avoir la tête dedans !
Dans Network / Advanced Services / Network Service, j’ai tout coché pour être sûr. Dans http listening, je n’ai rien mis, il n’y a que la ligne à 0.0.0.0. Faut il y mettre des paramètres ? (je n’ai pas compris cet onglet de configuration, et je n’ai rien trouvé sur internet de compréhensible).

Ports

Droits

Tu disais dans un autre message que tu t’appuies sur une lib externe. Peux tu stp me donner le nom et m’indiquer quelle erreur te fait renvoyer Connection closed pour que je cherche sur leurs forums également ?

Je te remercie.

Je me réponds à moi-même : j’ai trouvé :dancer:. Mon problème était que j’avais activé l’authentification digest/basic pour ONVIF mais pas pour tout le système (voir le screenshot).
Security

Alors pour la postérité (et la documentation @lunarok ?), ce que j’ai compris (pour le plugin camera et le plugin hikvision):

  1. Activer la securité digest/basic dans System/Security comme l’image ci-dessus
  2. Activer Onvif dans Network / Advanced Settings / Advanced Protocol
  3. au meme endroit selectionner l’authentification digest/basic
  4. au meme endroit ajouter un utilisateur ONVIF (je l’ai mis operateur)
  5. Dans System / User Management, ajouter un utilisateur (=> comme je ne suis pas sûr de quel API utilise quel utilisateur, j’ai mis le meme login et mdp que celui d’onvif. C’est moins sécurisé mais ca marche)
  6. Cet utilisateur DOIT AVOIR LES droits Remote : Notify Surveillance Center. S’il ne les a pas lui donner
  7. Pour chaque évènement, dans linkage method cocher la case notify surveillance center

Bref, HikVision super caméras, on voit que c’est du matériel de pro… il faut accepter de passer un peu de temps en set-up.

PS: et j’ai lu que ONVIF ne supportait pas H265 ni H264+. Par défaut j’étais en H264 anyway donc pas essayé.
Et l’URL de snapshot que j’utilise est /Streaming/channels/1/picture

Bonjour Alexkidd,

et bien je me permets de rebondir sur ton message, car j’ai suivi ta dic et celle de lunarok et …
connection cloded!
Damned
J’ai pourtant bien la même conf que toi, je cale .
Dans Jeedom je suis en port 80 avec le compte qui possède les bons droits.
une idée ?
Merci

Bonjour,

Pour moi toute la config se fait cote Hikvision.
Je te propose de nous mettre des copies d’ecran des différents points mentionnés au dessus pour qu’on regarde. En plus ca a changé recemment.
il faut les users bien autorisés, les digest/basic bien configurés, et les évènements qui envoient vers le NVR. Et bien sur utiliser le bon user dans Jeedom !

Bonjour,
J’ai une caméra Hikvision DS-2CD2686G2-IZS et depuis la mise à jour du firmware de la caméra avec sa dernière version, je ne reçois plus les évènements dans le plugin hikvision jeedom de @Lunarok alors qu’avant tout fonctionnait sans souci ! En mettant à jour le firmware, j’ai bien corrigé mon problème initial ; à savoir un bug d’envoi de mails qui refusait d’envoyer les pj de mails mais j’ai généré ce souci alors que je n’ai absolument rien changé au niveau config (bien sûr, j’ai vérifié tous les points de AlexKidd avec le digest, le user autorisé…). Pour preuve, en remettant l’ancien firmware, bingo, ca remarche, je reçois les évènements mais hélas plus les mails avec pj. Bref, j’en déduis que quelque chose a été modifié du côté du protocole de la caméra. Voici, l’erreur que j’obtiens dans le log hikvision_dep côté jeedom :

Connection error: Error: read ETIMEDOUT
events.js:291
throw er; // Unhandled ‹ error › event
^
Error: read ETIMEDOUT
at TCP.onStreamRead (internal/stream_base_commons.js:209:20)
Emitted ‹ error › event on CameraEventHandler instance at:
at CameraEventHandler.handleError (/var/www/html/plugins/hikvision/resources/node_modules/cameraeventhandler/dist/cameraEventHandler.js:186:14)
at Socket. (/var/www/html/plugins/hikvision/resources/node_modules/cameraeventhandler/dist/cameraEventHandler.js:49:42)
at Socket.emit (events.js:314:20)
at emitErrorNT (internal/streams/destroy.js:92:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
errno: ‹ ETIMEDOUT ›,
code: ‹ ETIMEDOUT ›,
syscall: ‹ read ›
}
Je précise que la commande snapshot (http://jeedom:[pwd]@192.168.1.64:8007/ISAPI/Streaming/channels/101/picture) marche bien avec la dernière version du firmware (j’accède donc bien à la caméra)

Là, je sèche vraiment. @Lunarok, AlexKidd ou tout autre bonne âme, une idée ? je suis en port 80 sur jeedom et en 8007 sur ma caméra.
en pj : ma config complète avec les ports socket notamment.

Merci d’avance
Eiffel

config camera DS-2CD2686G2-IZS pour support @Lunarok.pdf (183,3 Ko)

Désolé là je sèche. Si tu es convaincu que ca vient du firmware, essaie d’autres version peut-être ?
En tout cas sur la base de ton expérience je ne vais pas faire de mise à jour !

Merci AlexKidd,
Je confirme bien que cela provient du firmware. Je vais essayer de me rapprocher du support Ubitech où j’ai acheté ma caméra mais ce n’est pas franchement pas gagné vu que les événements arrivent très bien côté hik-connect !

@lunarok : une piste ? puis-je débugger ton plugin ? Merci.