Plugin Reolink (en beta)

Parfait si ça marche.
Le daemon ne fait pas de « Refresh », il écoute et attends que la caméra lui envoi les notifications de détection. C’est donc pratiquement instantanée.
Pour tous les autres paramètre : c’est un CRON qui refresh en faisant une demande à la caméra toutes les 15 minutes.

Comment tu fais pour dire à la caméra de t’envoyer les notifications de détection de mouvement ? En lisant l’API, il me semblait comprendre qu’il fallait l’interroger pour avoir la valeur en retour.

J’ai un scénario qui déclenche un éclairage sur la détection du mouvement : scénario provoqué justement par l’INFO « Mouvement détecté ». Depuis que j’ai fait la mise à jour pour avoir le hostname, j’ai l’impression que les détections ne remontent plus (j’ai redémarré le démon). Un idée ?

Exacte. Cela ne peux pas fonctionner avec un hostname, il faut que je modifie la fonction qui notifie, pour qu’elle prenne en compte les hostname.
Pour faire simple : je me connecte à la caméra via un service et je lui demande de me transférer toutes les remontées sur le webhook ouvert par le daemon.

hello @f4ctz
Tu peux me dire si ça fonctionne pour la modif que j’ai faite et si les notif depuis la caméra refonctionne correctement ?
Merci

Hello. Depuis la dernière beta, j’ai toutes les quelques minutes cette erreur qui apparait:

Format du payload POST n'est pas un JSON valide, envoi commande échoué

@BorisTS : Afin de pourvoir identifier la source du problème (je pense, première supposition, que c’est lié à la modif que j’ai fait parvenir à @Jezza34000 sur la correction des erreurs -16), actives le mode debug des journaux et fait nous suivre le log « Reolink » contenant cette erreur.

Merci

@mnpg @BorisTS Oui c’est la modification de l’envoi des commandes par bloc qui provoque cette erreur.
Cela ne gêne pas le fonctionnement.
Pas besoin des logs, merci
Je corrige ça dès que j’ai 2 mniutes…

1 « J'aime »

Je le savais (pas besoin de log) :wink: merci pour ce super boulot, je vois qu’il y a les retour des réglages maintenant. Au top ce plugin

@Jezza34000,
panni probleme… thanks

je te fais suivre le problème que j’ai depuis peu : le démon qui se mets en erreur et le redémarrage auto (activé) n’arrive pas à le relancer. seule une relance manuelle de ce dernier fonctionne. voila l’erreur:

NB: tu trouveras, en fin de log, la relance manuelle qui fonctionne (à partir de 15h34)

[2022-04-01 15:25:07][INFO] : Start demond
[2022-04-01 15:25:07][INFO] : Log level : debug
[2022-04-01 15:25:07][INFO] : Socket port : 44009
[2022-04-01 15:25:07][INFO] : Socket host : localhost
[2022-04-01 15:25:07][INFO] : PID file : /tmp/jeedom/reolink/deamon.pid
[2022-04-01 15:25:07][INFO] : Apikey : YbwbCweJ3qKWnPXaHNhwJJcY*****
[2022-04-01 15:25:07][INFO] : Device : auto
[2022-04-01 15:25:07][INFO] : Write creds file for camhook
Traceback (most recent call last):
File "/var/www/html/plugins/reolink/resources/demond/reolinkd.py", line 185, in <module>
with open('jeedomcreds', 'w') as f:
PermissionError: [Errno 13] Permission denied: 'jeedomcreds'
[2022-04-01 15:30:09][INFO] : Start demond
[2022-04-01 15:30:09][INFO] : Log level : debug
[2022-04-01 15:30:09][INFO] : Socket port : 44009
[2022-04-01 15:30:09][INFO] : Socket host : localhost
[2022-04-01 15:30:09][INFO] : PID file : /tmp/jeedom/reolink/deamon.pid
[2022-04-01 15:30:09][INFO] : Apikey : YbwbCweJ3qKWnPXaHNhwJJcY*****
[2022-04-01 15:30:09][INFO] : Device : auto
[2022-04-01 15:30:09][INFO] : Write creds file for camhook
Traceback (most recent call last):
File "/var/www/html/plugins/reolink/resources/demond/reolinkd.py", line 185, in <module>
with open('jeedomcreds', 'w') as f:
PermissionError: [Errno 13] Permission denied: 'jeedomcreds'
[2022-04-01 15:34:29][INFO] : Start demond
[2022-04-01 15:34:29][INFO] : Log level : debug
[2022-04-01 15:34:29][INFO] : Socket port : 44009
[2022-04-01 15:34:29][INFO] : Socket host : localhost
[2022-04-01 15:34:29][INFO] : PID file : /tmp/jeedom/reolink/deamon.pid
[2022-04-01 15:34:29][INFO] : Apikey : YbwbCweJ3qKWnPXaHNhwJJcY*****
[2022-04-01 15:34:29][INFO] : Device : auto
[2022-04-01 15:34:29][INFO] : Write creds file for camhook
[2022-04-01 15:34:29][DEBUG] : Writing PID 2226 to /tmp/jeedom/reolink/deamon.pid
[2022-04-01 15:34:29][INFO] : Starting webhook...
[2022-04-01 15:34:29][DEBUG] : Socket interface started
[2022-04-01 15:34:29][DEBUG] : LoopNetServer Thread started
[2022-04-01 15:34:29][DEBUG] : Listening on: [localhost:44009]
[2022-04-01 15:34:29][DEBUG] : Using selector: EpollSelector
[2022-04-01 15:34:30][DEBUG] : Init request module v2.21.0
INFO:     Started server process [2233]
[2022-04-01 15:34:30][INFO] : Started server process [2233]
INFO:     Waiting for application startup.
[2022-04-01 15:34:30][INFO] : Waiting for application startup.
INFO:     Application startup complete.
[2022-04-01 15:34:30][INFO] : Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:5555 (Press CTRL+C to quit)
[2022-04-01 15:34:30][INFO] : Uvicorn running on http://0.0.0.0:5555 (Press CTRL+C to quit)

Idem pour moi

INFO pour ceux qui possèdent une caméra avec Zoom :

Reolink ne nous aidant pas pour avoir de la cohérence dans le fonctionnement avec l’API,

Le paramétrage défini par défaut dans le plugin pour les valeurs max des commandes d’action de Zoom et de Focus est basé sur un modèle de caméra (ici la E1Zoom, zoom max : 32, focus max : 248).

Ces valeurs max ne sont pas identiques d’un modele de caméra à un autre.

Si vous souhaitez les ajuster pour correspondre à votre modèle, voici la commande curl qui vous permettra de récupérer cette information de valeur max (Zoom et Focus)

  • Sous Linux :
    curl -s -k -X POST -H "Content-Type : application/json" -d "[{\"cmd\":\"GetZoomFocus\",\"action\":1,\"param\":{\"channel\":#id#}}]" "https://#IP#/cgi-bin/api.cgi?user=#username#&password=#password#"
    Remplacer #IP#, #username# et #password# par vos propres valeurs; Pour la valeur #id# de l’argument channel, la mettre à 0 -si vous n’avez pas de NVR-

  • Sous Windows :
    curl.exe -s -k -X POST -H "Content-Type : application/json" -d "[{\"cmd\":\"GetZoomFocus\",\"action\":1,\"param\":{\"channel\":#id#}}]" "https://#IP#/cgi-bin/api.cgi?user=#username#&password=#password#"
    Remplacer #IP#, #username# et #password# par vos propres valeurs; Pour la valeur #id# de l’argument channel, la mettre à 0 -si vous n’avez pas de NVR-

Dans le résultat retourné par la commande, c’est dans la partie range que l’information se situe :

  • Pour le Zoom : range > ZoomFocus > zoom > pos > max
  • Pour le Focus : range > ZoomFocus > focus > pos > max

Exemple pour la E1-Outdoor (zoom max : 27, focus max : 156)

[
   {
      "cmd" : "GetZoomFocus",
      "code" : 0,
      "initial" : {
         "ZoomFocus" : {
            "channel" : 0,
            "focus" : {
               "pos" : 119
            },
            "zoom" : {
               "pos" : 27
            }
         }
      },
      "range" : {
         "ZoomFocus" : {
            "channel" : 0,
            "focus" : {
               "pos" : {
                  "max" : 156,
                  "min" : 0
               }
            },
            "zoom" : {
               "pos" : {
                  "max" : 27,
                  "min" : 0
               }
            }
         }
      },
      "value" : {
         "ZoomFocus" : {
            "channel" : 0,
            "focus" : {
               "pos" : 119
            },
            "zoom" : {
               "pos" : 27
            }
         }
      }
   }
]

Hello à tous,

Les erreurs :

Format du payload POST n'est pas un JSON valide, envoi commande échoué
PermissionError: [Errno 13] Permission denied: 'jeedomcreds'

Sont corrigées dans la dernière version présente sur le market.
Bon dimanche à tous

1 « J'aime »

:+1: :muscle:. Thanks @Jezza34000. A toi aussi, bon dimanche.

Salut,

Est-ce que tu as intégré dans la dernière version le hostname sur la fonction de notification ?

Merci

Oui tu peux tester et me dire si c’est ok pour toi? @f4ctz

Malheureusement non ça ne fonctionne pas.

J’ai fait la mise à jour, j’ai mis le hostname, sauvegardé, puis test de communication OK + recréation des commandes et redémarrage du démon. Les détections ne remontent pas.

Si je remet l’IP ensuite et simplement j’enregistre, les détections fonctionnent à nouveau.

Merci pour ton aide.

@f4ctz Peux tu mettre en débug et me donner les log du daemon?
Merci

Personne pour tester avec un NVR ?

Bonjour,
Je suppose que ce plugin fonctionne en version 4 de Jeedom vu que je ne le trouve pas sur mon market?
Les caméras Reolink ont l’air sympas, fonctionnent-elles avec le plugin camera en attendant de passer en version 4?

bonjour @AlainM,
le plugin est en version beta, il faut activer l’accès aux plugins beta depuis ton compte sur le market pour que tu puisses le voir dans jeedom.
Concernant les cameras Reolink, seules celles indiquées dans l’URL ci-dessous sont fonctionnelles avec le plugin Camera.

Edit: elles fonctionnent via le plugin camera sous jeedom 3.x et version 4.x
Cdt