Plugin Reolink (en beta)

Salut,
Je viens de faire la majeure mais j’ai cela sur les log du daemon

Etrange comme message d’erreur.
C’est le module par défaut de jeedom.
Va voir dans le répertoire :
/var/www/html/plugins/reolink/resources/demond/jeedom
As-tu bien le fichier jeedom.py ?

Yes

Je crois que j’ai ce message depuis le passage à la version 4.2 de Jeedom. Je suis en 4.2.14

Non ce n’est pas ça car je suis en 4.2
Essaie de supprimer complètement le plugin et le réinstaller.

Hello
J’ai désinstallé le plugin.
Reinstaller le plugin
Configurer la caméra
Relancer le daemon et idem

Relancer les dépendances et relancer le daemon et idem

Bonsoir Jezza, je me permet de réouvrir le sujet autour du NVR ?
j’ai eu par messagerie un échange avec mnpg sur le sujet qui me proposait de voir avec toi.

voici le besoin autour du sujet des NVR :
Quand tu utilises 6 caméras sur un NVR tu as une seule IP (celle du NVR) et une identification numérique simple des caméras : 01 pour la cam du parking, 02 c’est le jardin ect…

L’idée serai de nous permettre de rentrer l’IP du NVR et d’avoir un emplacement pour déclarer l’id des caméras. je verrais bien un produit par caméra ou à chaque fois je mets la même ip (celle du NVR) et je change mon id

puis-je t’aider sur le sujet ?
si c’est important, voici mon matériel :
NVR : RLN8-410
6 Caméras : RLC 520A

bonne soirée

Bonjour.

Exactement le même souci que @amelyfred.

0000|Error: importing module jeedom.jeedom
0001|Error: importing module jeedom.jeedom

Je suis sur NUC i5, buster, jeedom 4.2.14.

Faites un test @blablatus & @amelyfred avec la mise à jour qui est disponible
Ca ne résoudra pas le problème mais au moins le log sera plus précis sur ce qui fait planter le plugin

@T.Boon pour ce qui est d’intégrer les NVR j’avais regardé cette possibilité à l’époque, mais malheureusement je ne pense pas me pencher sur ce sujet dans l’immédiat.
Déjà je vais finaliser le plugin, le sortir en stable, et on verra pour faire une upgrade

1 « J'aime »

Mise à jour effectuée et relance du daemon :

0000|Traceback (most recent call last):
0001|File "/var/www/html/plugins/reolink/resources/demond/reolinkd.py", line 33, in 
0002|from jeedom.jeedom import *
0003|File "/var/www/html/plugins/reolink/resources/demond/jeedom/jeedom.py", line 23, in 
0004|import serial
0005|ModuleNotFoundError: No module named 'serial'

Voilà.

J’ai corrigé le défaut ça devrait fonctionner.

salut @Jezza34000,
J’ai constaté un problème sur la récupération des informations de mes cameras (commandes envoyés par le « Payload multiple GetSetting » via un Refresh). Quelques commandes, celles positionnés en fin du payload multiple, répondent avec l’erreur rspcode -16 et les données de ces commandes ne se mettent pas à jour.

exemple:

[2022-03-22 21:06:27][DEBUG] : Payload multiple GetSetting = {"cmd":"GetPush"},{"cmd":"GetRec","action":0,"param":{"channel":0}},{"cmd":"GetEmail","action":0},{"cmd":"GetHddInfo"},{"cmd":"GetFtp","action":0},{"cmd":"GetEnc","action":0,"param":{"channel":0}},{"cmd":"GetAutoMaint","action":0,"param":{"channel":0}},{"cmd":"GetPerformance","param":{"channel":0}},{"cmd":"GetIsp","action":0,"param":{"channel":0}},{"cmd":"GetMask","action":0,"param":{"channel":0}},{"cmd":"GetImage","action":0,"param":{"channel":0}},{"cmd":"GetOsd","action":0,"param":{"channel":0}}
[2022-03-22 21:06:27][DEBUG] : URL de requête => https://192.168.1.60:443/cgi-bin/api.cgi?user=admin&password=******
[2022-03-22 21:06:27][DEBUG] : Payload => [{"cmd":"GetPush"},{"cmd":"GetRec","action":0,"param":{"channel":0}},{"cmd":"GetEmail","action":0},{"cmd":"GetHddInfo"},{"cmd":"GetFtp","action":0},{"cmd":"GetEnc","action":0,"param":{"channel":0}},{"cmd":"GetAutoMaint","action":0,"param":{"channel":0}},{"cmd":"GetPerformance","param":{"channel":0}},{"cmd":"GetIsp","action":0,"param":{"channel":0}},{"cmd":"GetMask","action":0,"param":{"channel":0}},{"cmd":"GetImage","action":0,"param":{"channel":0}},{"cmd":"GetOsd","action":0,"param":{"channel":0}}]
[2022-03-22 21:06:27][DEBUG] : HTTP code 200 OK
[2022-03-22 21:06:27][DEBUG] : Réponse caméra >> [{"cmd":"GetPush","code":0,"value":{"Push":{"schedule":{"enable":1,"table":"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"}}}},{"cmd":"GetRec","code":0,"value":{"Rec":{"channel":0,"overwrite":1,"postRec":"15Seconds","preRec":1,"schedule":{"enable":0,"table":"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"}}}},{"cmd":"GetEmail","code":0,"value":{"Email":{"addr1":"","addr2":"","addr3":"","attachmentType":1,"interval":"5Minutes","nickName":"","password":"","schedule":{"enable":0,"table":"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"},"smtpPort":465,"smtpServer":"smtp.gmail.com","ssl":1,"supportTextType":1,"supportVideo":1,"textType":1,"userName":""}}},{"cmd":"GetHddInfo","code":0,"value":{"HddInfo":[]}},{"cmd":"GetFtp","code":0,"value":{"Ftp":{"anonymous":0,"interval":30,"maxSize":100,"mode":0,"password":"","port":21,"remoteDir":"","schedule":{"enable":0,"table":"111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"},"server":"","streamType":0,"userName":""}}},{"cmd":"GetEnc","code":0,"value":{"Enc":{"audio":0,"channel":0,"mainStream":{"bitRate":6144,"frameRate":30,"height":1920,"profile":"High","resolution":54,"size":"2560*1920","width":2560},"subStream":{"bitRate":160,"frameRate":7,"height":480,"profile":"High","resolution":28,"size":"640*480","width":640}}}},{"cmd":"GetAutoMaint","code":0,"value":{"AutoMaint":{"enable":1,"hour":2,"min":0,"sec":0,"weekDay":"Everyday"}}},{"cmd":"GetPerformance","code":0,"value":{"Performance":{"codecRate":2632,"cpuUsed":38,"netThroughput":144}}},{"cmd":"GetIsp","code":0,"value":{"Isp":{"antiFlicker":"Off","backLight":"Off","blc":128,"blueGain":128,"channel":0,"dayNight":"Auto","drc":128,"exposure":"Auto","gain":{"max":62,"min":1},"mirroring":0,"nr3d":1,"redGain":128,"rotation":0,"shutter":{"max":125,"min":0},"whiteBalance":"Auto"}}},{"cmd":"GetMask","code":0,"value":{"Mask":{"area":[{"block":{"height":453,"width":274,"x":529,"y":0},"screen":{"height":1920,"width":2560}},{"block":{"height":265,"width":1833,"x":727,"y":0},"screen":{"height":1920,"width":2560}},{"block":{"height":274,"width":589,"x":1971,"y":91},"screen":{"height":1920,"width":2560}},{"block":{"height":540,"width":87,"x":788,"y":0},"screen":{"height":1920,"width":2560}}],"channel":0,"enable":1}}},{"cmd":"GetImage","code":1,"error":{"detail":"sendfailed","rspCode":-16}},{"cmd":"GetOsd","code":1,"error":{"detail":"sendfailed","rspCode":-16}}]
[2022-03-22 21:06:28][DEBUG] : Lecture info > Array([cmd]=>GetPush[code]=>0[value]=>Array([Push]=>Array([schedule]=>Array([enable]=>1[table]=>111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111))))
....
[2022-03-22 21:06:28][DEBUG] : Lecture info > Array([cmd]=>GetIsp[code]=>0[value]=>Array([Isp]=>Array([antiFlicker]=>Off[backLight]=>Off[blc]=>128[blueGain]=>128[channel]=>0[dayNight]=>Auto[drc]=>128[exposure]=>Auto[gain]=>Array([max]=>62[min]=>1)[mirroring]=>0[nr3d]=>1[redGain]=>128[rotation]=>0[shutter]=>Array([max]=>125[min]=>0)[whiteBalance]=>Auto)))
[2022-03-22 21:06:28][DEBUG] : Lecture info > Array([cmd]=>GetMask[code]=>0[value]=>Array([Mask]=>Array([area]=>Array([0]=>Array([block]=>Array([height]=>453[width]=>274[x]=>529[y]=>0)[screen]=>Array([height]=>1920[width]=>2560))[1]=>Array([block]=>Array([height]=>265[width]=>1833[x]=>727[y]=>0)[screen]=>Array([height]=>1920[width]=>2560))[2]=>Array([block]=>Array([height]=>274[width]=>589[x]=>1971[y]=>91)[screen]=>Array([height]=>1920[width]=>2560))[3]=>Array([block]=>Array([height]=>540[width]=>87[x]=>788[y]=>0)[screen]=>Array([height]=>1920[width]=>2560)))[channel]=>0[enable]=>1)))
[2022-03-22 21:06:28][DEBUG] : Lecture info > Array([cmd]=>GetImage[code]=>1[error]=>Array([detail]=>sendfailed[rspCode]=>-16))
[2022-03-22 21:06:28][DEBUG] : Lecture info > Array([cmd]=>GetOsd[code]=>1[error]=>Array([detail]=>sendfailed[rspCode]=>-16))

UPDATE :
c’est comme si la camera ne pouvait répondre à un certain nombre de commandes simultanées, envoyées dans un même payload, mais pas plus

Oui je sais, j’ai déjà constaté cette problématique, mais malheureusement je n’ai pas de réponses ni de solution…
Je dirais encore une enième bizzarerie exotique du firmware des caméras de cette marque.

Sur la mienne, sur l’interface web j’ai constaté que la partie réseau plante, je suis obligé de faire 4/5 refresh pour obtenir la page. Et ce n’est pas ma caméra, car elle est déjà repartie en échange et j’ai le même problème avec la nouvelle ! bref… Plus j’avance dans ce projet et plus je me dis que Reolink c’est compliqué niveau firmware et stabilité!

Hello, je sais pas si c’est lié au plugin ou pas mais tous mes curseurs luminosité, contraste, saturation, teinte, focus, zoom, vitesse, netteté restent sur une valeur de 1.

J’ai pourtant bloqué le focus à une valeur fixe dans mes camera E1 Zoom mais cette valeur n’apparais jamais dans le plugin.

Lorsque je fixe la valeur de focus dans le plugin, après quelques jours ou pour une raison que j’ignore (update du plugin), elle revient à 1

Une idée de ce qui se passe ? Peut-on « bloquer » le focus (en supprimant la commande ?) pour s’assurer que le plugin n’interfère pas ?

Merci. Je confirme que la daemon démarre maintenant correctement.

Petite question : il y a ceci dans la log du daemon


0050|[2022-03-24 16:20:02]DEBUG : Request subscription_manager to set webhook on camera = 192.168.1.30:8000
0051|[2022-03-24 16:20:02]DEBUG : SMAN : Reolink host 192.168.1.30 (Subscription) request
0052|[2022-03-24 16:20:02]DEBUG : SMAN : Reolink host 192.168.1.30 (Subscription) got response status: 200.
0053|
0054|http://192.168.47.167:8000/onvif/Notification?Idx=00_02022-03-24T15:00:06Z2022-03-24T15:15:06Z
0055|
0056|http://192.168.47.167:8000/onvif/Notification?Idx=00_12022-03-24T15:10:04Z2022-03-24T15:25:04Z
0057|
0058|http://192.168.47.167:8000/onvif/Notification?Idx=00_02022-03-24T15:20:03Z2022-03-24T15:35:03Z
0059|[2022-03-24 16:20:02]DEBUG : SMAN : Local time: 2022-03-24 15:20, camera time: 2022-03-24 15:20 (difference: 0.1577448844909668), termination time: 2022-03-24 15:35
0060|[2022-03-24 16:20:02]DEBUG : Starting local hook on : http://192.168.1.62:5555/inbound_events
0061|[2022-03-24 16:20:02]DEBUG : Subscribe OK

A quoi correspond l’IP 192.168.47.167 ?
Merci.

Aucune idée.
C’est la caméra qui répond ça et je ne sais pas à quoi ca correspond, c’est une IP local mais elle est inexistante sur le réseau et ne répond pas. Sûrement un bug

Bonsoir,

Merci pour ce plugin car ça fait plusieurs semaines que je m’acharne à essayer de déclencher des scénarios sur la détection de ma RLC410-5MP et que je ne m’en sortais pas du tout avec le plugin CAMERA ou avec les scripts. Avec votre plugin, ça fonctionne à merveille !

J’aurai 2 requêtes (désolé si elles ont déjà été formulées mais le fil est trop long pour que je lise tout) :

  • possibilité de donner le hostname plutôt qu’une adresse IP (j’ai un serveur DNS sur mon réseau local et ça simplifie beaucoup la gestion) : je n’ai pas réussi à le faire en l’état.
  • affichage du flux dans le widget sur le dashboard permettrait de totalement se passer du pluggin CAMERA.

Je peux aider pour des tests si besoin.

Merci beaucoup pour votre travail !

Hello @f4ctz
Merci pour ton message et super si tout fonctionne :blush:
Concernant tes 2 points :

  • Je vais investiguer ce qui bloque sur la partie hostname…
  • Pour le flux vidéo, le but de mon plugin est une complémentarité de ce qui est déjà existant, donc vu que le plugin caméra le fait très bien je ne vais pas ré-écrire cette partie là :slight_smile:

Hello,

Pour le sujet des NVR @T.Boon j’ai tenté de sortir le champ « Channel » je ne garantie pas le fonctionnement, mais ton test et ceux qui aurait des Reolink via NVR m’intéresse…

Pour le sujet des Erreurs 16, j’ai mise en ligne le PR de @mnpg

@f4ctz j’ai modifié le code normalement les nom d’hôtes passent…

à voir ce que ces 3 sujets donnent…

Salut,

Ca semble marcher pour le hostname, merci !

OK pour le flux video.

A quelle fréquence le daemon (je suppose que c’est lui qui s’en occupe mais je peux me tromper) envoie les requêtes HTTP pour récupérer les états, notamment pour la détection de mouvement ?