REOLINK - Liste de commandes via API

Salut,

Je suis interessé par le PTZ Preset, est ce que quelqu’un a les commandes pour ça?
Merci

tu peux trouver ici
reolinkapi PTZ

1 « J'aime »

Bonjour,

Je viens de recevoir une E1Zoom compatible et je cherche à la positionner soit tête en l’air quand nous sommes présent, soit en position normale pour filmer la pièce quand nous sommes absent.
J’ai créé deux PTZ Preset (‹ plafond › et ‹ vision › ) dans l’application réolink.
Avec cette commande : http://xxxxxxxxxx/cgi-bin/api.cgi?cmd=GetPtzPreset&rs=abscde&user=xxxxxxxx&password=xxxxxxxxxxxx je récupère bien mes PTZ Preset : ce sont l’id1 et l’id2

[ { "cmd" : "GetPtzPreset", "code" : 0, "value" : { "PtzPreset" : [ { "channel" : 0, "enable" : 1, "id" : 1, "name" : "vision" }, { "channel" : 0, "enable" : 1, "id" : 2, "name" : "plafond" }, { "channel" : 0, "enable" : 0, "id" : 3, "name" : "pos3" }, { "channel" : 0, "enable" : 0, "id" : 4, "name" : "pos4" }, { "channel" : 0, "enable" : 0, "id" : 5, "name" : "pos5" }, { "channel" : 0, "enable" : 0, "id" : 6, "name" : "pos6" }, { "channel" : 0, "enable" : 0, "id" : 7, "name" : "pos7" }, { "channel" : 0, "enable" : 0, "id" : 8, "name" : "pos8" }, { "channel" : 0, "enable" : 0, "id" : 9, "name" : "pos9" }, { "channel" : 0, "enable" : 0, "id" : 10, "name" : "pos10" }, { "channel" : 0, "enable" : 0, "id" : 11, "name" : "pos11" }, { "channel" : 0, "enable" : 0, "id" : 12, "name" : "pos12" }, { "channel" : 0, "enable" : 0, "id" : 13, "name" : "pos13" }, { "channel" : 0, "enable" : 0, "id" : 14, "name" : "pos14" }, { "channel" : 0, "enable" : 0, "id" : 15, "name" : "pos15" }, { "channel" : 0, "enable" : 0, "id" : 16, "name" : "pos16" }, { "channel" : 0, "enable" : 0, "id" : 17, "name" : "pos17" }, { "channel" : 0, "enable" : 0, "id" : 18, "name" : "pos18" }, { "channel" : 0, "enable" : 0, "id" : 19, "name" : "pos19" }, { "channel" : 0, "enable" : 0, "id" : 20, "name" : "pos20" }, { "channel" : 0, "enable" : 0, "id" : 21, "name" : "pos21" }, { "channel" : 0, "enable" : 0, "id" : 22, "name" : "pos22" }, { "channel" : 0, "enable" : 0, "id" : 23, "name" : "pos23" }, { "channel" : 0, "enable" : 0, "id" : 24, "name" : "pos24" }, { "channel" : 0, "enable" : 0, "id" : 25, "name" : "pos25" }, { "channel" : 0, "enable" : 0, "id" : 26, "name" : "pos26" }, { "channel" : 0, "enable" : 0, "id" : 27, "name" : "pos27" }, { "channel" : 0, "enable" : 0, "id" : 28, "name" : "pos28" }, { "channel" : 0, "enable" : 0, "id" : 29, "name" : "pos29" }, { "channel" : 0, "enable" : 0, "id" : 30, "name" : "pos30" }, { "channel" : 0, "enable" : 0, "id" : 31, "name" : "pos31" }, { "channel" : 0, "enable" : 0, "id" : 32, "name" : "pos32" }, { "channel" : 0, "enable" : 0, "id" : 33, "name" : "pos33" }, { "channel" : 0, "enable" : 0, "id" : 34, "name" : "pos34" }, { "channel" : 0, "enable" : 0, "id" : 35, "name" : "pos35" }, { "channel" : 0, "enable" : 0, "id" : 36, "name" : "pos36" }, { "channel" : 0, "enable" : 0, "id" : 37, "name" : "pos37" }, { "channel" : 0, "enable" : 0, "id" : 38, "name" : "pos38" }, { "channel" : 0, "enable" : 0, "id" : 39, "name" : "pos39" }, { "channel" : 0, "enable" : 0, "id" : 40, "name" : "pos40" }, { "channel" : 0, "enable" : 0, "id" : 41, "name" : "pos41" }, { "channel" : 0, "enable" : 0, "id" : 42, "name" : "pos42" }, { "channel" : 0, "enable" : 0, "id" : 43, "name" : "pos43" }, { "channel" : 0, "enable" : 0, "id" : 44, "name" : "pos44" }, { "channel" : 0, "enable" : 0, "id" : 45, "name" : "pos45" }, { "channel" : 0, "enable" : 0, "id" : 46, "name" : "pos46" }, { "channel" : 0, "enable" : 0, "id" : 47, "name" : "pos47" }, { "channel" : 0, "enable" : 0, "id" : 48, "name" : "pos48" }, { "channel" : 0, "enable" : 0, "id" : 49, "name" : "pos49" }, { "channel" : 0, "enable" : 0, "id" : 50, "name" : "pos50" }, { "channel" : 0, "enable" : 0, "id" : 51, "name" : "pos51" }, { "channel" : 0, "enable" : 0, "id" : 52, "name" : "pos52" }, { "channel" : 0, "enable" : 0, "id" : 53, "name" : "pos53" }, { "channel" : 0, "enable" : 0, "id" : 54, "name" : "pos54" }, { "channel" : 0, "enable" : 0, "id" : 55, "name" : "pos55" }, { "channel" : 0, "enable" : 0, "id" : 56, "name" : "pos56" }, { "channel" : 0, "enable" : 0, "id" : 57, "name" : "pos57" }, { "channel" : 0, "enable" : 0, "id" : 58, "name" : "pos58" }, { "channel" : 0, "enable" : 0, "id" : 59, "name" : "pos59" }, { "channel" : 0, "enable" : 0, "id" : 60, "name" : "pos60" }, { "channel" : 0, "enable" : 0, "id" : 61, "name" : "pos61" }, { "channel" : 0, "enable" : 0, "id" : 62, "name" : "pos62" }, { "channel" : 0, "enable" : 0, "id" : 63, "name" : "pos63" }, { "channel" : 0, "enable" : 0, "id" : 64, "name" : "pos64" } ] } } ] 

Ensuite, ca se complique pour moi…
Est ce que je dois créer deux scripts nommés « PTZPresetId1 » et « PTZPresetId2 » dans le plugin script? Et chaque script doit comporter une commande Action/Défaut dans laquelle je mets une commande curl? ou une url de même type que j’ai utilisé pour voir mes PTZPreset en l’adaptant?
Pour adapter la commande, j’ai trouvé ceci dans le lien donné @nechry mais ça ne me parle pas ppur la’adapter :frowning:

def go_to_preset(self, speed: float = 60, index: float = 1) -> Dict:
        """
        Move the camera to a preset location
        :return: response json
        """
        return self._send_operation('ToPos', speed=speed, index=index)

Merci de votre aide.

PS : si besoin de passer des comamndes pour récupérer des infos, j’ai aussi un Réoling RL-410W

pour ma part, j’ai un script « Reolink_API_PTZ_Commands.sh » pour le quel je peux lui passer une série d’args.

Reolink_API_PTZ_Commands.sh 192.168.0.37 PtzCtrl ToPos 16 4
  • IP de la caméra
  • Type de Commande
  • Commande
  • Param1 (speed)
  • Param2 (id position)

Reolink_API_PTZ_Commands.sh.txt (1,3 Ko)

1 « J'aime »

Merci @nechry pour cette réponse.
Comment fais tu pour le mettre en place dans jeedom?
Tu mets ce script dans html/plugins/script/data ?
Ensuite tu crées un nouveau script dans le plugin « script » ?
Et tu crées des commandes dans ce script? Si oui, comment fais tu?
J’ai essayé ceci mais cela ne marche pas :frowning:

Bonjour @lr3674, en réponse :

pour l’emplacement du fichier, c’est bien cet endroit.
par la suite

  • déposer le fichier de @nechry, sans l’extension .txt (juste le .sh) dans ce répertoire /var/www/html/plugins/script/data
  • en ssh (en compte root), aller dans le répertoire, changer les droits et donner l’appartenance du fichier à www-data.
chmod 775 Reolink_API_PTZ_Commands.sh
chown www-data:www-data Reolink_API_PTZ_Commands.sh

IMPORTANT : Avant de faire ces actions, il faut éditer le script Reolink_API_PTZ_Commands.sh et remplacer les valeurs des variables username et passwd pour celles que tu utilises pour interroger ta camera (lignes 7 et 8 du script) :

username="ton login"
passwd="ton mot de passe"

oui, tout à fait

créer autant de commandes script que d’action suivant ce modèle :

Nom : « nom de ta commande »
Type script : script
Type : action / Défaut
*Requête : /var/www/html/plugins/script/data/Reolink_API_PTZ_Commands.sh arg1 arg2 arg3 arg4 arg5
(remplacer les arguments arg1,arg2,… arg5 comme ceux indiqués dans le post de @nechry )

 arg1 :  IP de la caméra
 arg2 : Type de Commande (PtzCtrl)
 arg3 : Commande (ToPos)
 arg4 : Param1 (speed)
 arg5 : Param2 (id position)

Exemples de commandes :


NB : dans le 2eme exemple ,tu peux te servir d’une action/liste pour les differentes positions de ta camera et les utiliser avec la même commande.

  • liste à renseigner dans la zone paramètres de la commande : ici j’ai mis 1|Haut;2|Bas
  • argument #select# dans la commande
1 « J'aime »

voilà sinon autre façon sans passé en ssh est de créer directement via jeedom et simplement copier coller le contenue du script.

L’idée ici est d’avoir un script qui prend en charge tout les commandes que tu souhaites et pour autant de caméra que tu as. sous réserve d’avoir un login mot de passe identique entre les caméras.

2 « J'aime »

[EDIT] finalement, en créant un fichier directement dans jeexplorer, puis en copiant le contenu du script dedans, puis en changeant les droits avec chmod et chown via ssh, cela marche :slight_smile: :slight_smile:
Merci @mnpg et @nechry
Maintenant je vais augmenter tout ça avec des commandes de moyvement et la récupération des infos CPU, etc.

merci pour votre aide, mais pas encore opérationnelle :frowning:
J’ai cette erreur :

[2021-02-09 18:34:52][DEBUG] : Execution de : /var/www/html/plugins/script/data/Reolink_API_PTZ_Commands.sh 192.168.1.42 PtzCtrl ToPos 16 1 2>&1
[2021-02-09 18:34:52][ERROR] : Erreur exécution de la commande [Alarme][Camera Salon PTZPreset][PTZ] : Erreur sur /var/www/html/plugins/script/data/Reolink_API_PTZ_Commands.sh 192.168.1.42 PtzCtrl ToPos 16 1 2>&1 valeur retournée : 127. Détails : sh: 1: /var/www/html/plugins/script/data/Reolink_API_PTZ_Commands.sh: not found

J’ai mis le fichier sous le répertoire :


Ensuite j’ai modifié les droits en ssh , root sous jeedom :

Le fichier est celui ci : (j’ai juste mis des xxxxx à la place de mon mdp) mais faut il enlever les guillemets avant et après?

#!/bin/bash
## Script Reolink_API_PTZ_Commands.sh
## ./Reolink_API_PTZ_Commands.sh 'commande PTZ Reolink' 'parametre de la commande'  (respecter la casse)
## 'commande PTZ Reolink' : PtzCtrl
## 'parametre de la commande' possible : Left, Right, Up, Down, LeftUp, RightUp, LeftDown, RightDown, Stop
## Exemple : ./Reolink_API_PTZ_Commands.sh PtzCtrl Left
IP=$1
username="admin"
passwd="xxxxxxxxxx"

command=$2
parameter=$3

#Variable vitesse de déplacement -ici à 32-
speed=$4
id=$5

case $parameter in
  Left|Right|Up|Down|ZoomInc|ZoomDec|FocusInc|FocusDec) 
        payload="[{\"cmd\":\""${command}"\",\"action\":0,\"param\":{\"channel\":0,\"op\":\""${parameter}"\",\"speed\":${speed}}}]";;
  Stop)
        payload="[{\"cmd\":\""${command}"\",\"action\":0,\"param\":{\"channel\":0,\"op\":\""${parameter}"\"}}]";;
  ZoomPos)
        payload="[{\"cmd\":\""${command}"\",\"action\":0,\"param\":{\"ZoomFocus\":{\"channel\":0,\"op\":\""${parameter}"\",\"pos\":${speed}}}}]";;      
  ToPos)
        payload="[{\"cmd\":\""${command}"\",\"action\":0,\"param\":{\"channel\":0,\"id\":${id},\"op\":\""${parameter}"\",\"speed\":${speed}}}]";;
esac

curl -k -X POST -H "Content-Type: application/json" -d "${payload}" "http://${IP}/cgi-bin/api.cgi?cmd=${command}&user=${username}&password=${passwd}"

J’ai fait ces deux commandes dans un équipement du plugin script :


J’ai l’impression d’avoirtout fait, mais j’ai du mal faire un truc pour que cela ne marche pas lol

merci

j’ai fais un post que pour récupérer les valeurs cpuUsed, codecRate et netThroughput et comment créer les commandes adhoc toujours en script:

Salut @mnpg
Je l’avais vu plus haut, et mis en place, c’est top. ! merci encore
Est ce qu’il y aurait des choses que vous voudriez faire sur la E1Zoom et sur la RLC-410W car j’ai ces deux caméras. Je peux faire le commis :wink:

!! INFORMATION IMPORTANTE !! :
Adobe Flash étant abandonné le 31 décembre 2020 et plus fonctionnel depuis 12 janvier 2021, Reolink a développé des nouveaux firmwares pour les caméras.
L’interface web utilise maintenant du HTML5.

Caméras concernées : Celles ayant une interface web avec du Flash.

Recommandation dans le choix du Firmware :

  • Sélectionner le firmware qui correspond A LA FOIS à votre modèle de votre caméra (normal!) et SURTOUT que le numéro de hardware soit celui de votre caméra.

EN EXEMPLE : Pour mon cas, ayant une caméra RLC-520, il y a 2 firmwares récents pour le même modèle MAIS :

  • l’un basé sur le numéro de hardware IPC_515B16M5M
  • l’autre basé sur le numéro de hardware IPC_51516M5M → celui de ma caméra
    RLC-520_FirmwareVersion_avantMAJ-10.02.2021_MOD

Où trouvé le numéro de Hardware (Hardware No / Hw No) ?

N’oubliez pas de sauvegarder votre configuration avant toute opération de mise à jour!

1 « J'aime »

Bonjour,

J’ai une reolink rlc-410. J’ai téléchargé le firmware (j’en ai trouvé d’ailleurs deux versions différentes sur le site reolink !) mais rien à faire la mise à jour plante à chaque fois.

J’espère ne pas avoir de problème si la mise à jour n’est pas faite.

A+
Bernard

P-S : Peut-être faut-il une carte sd installée dans la camera ?

bonjour @Bercolly,
tu as quelle version de hardware pour ta caméra?
il y a plusieurs modèles rlc-410 (RLC-410, RLC-410-5MP, RLC-410S, RLC-410W, RLC-410W-5MP et RLC-410WS), quel est ton modèle?
tu trouveras cette information toujours sur la même page web ou tu peux trouver la version de firmware ainsi que le numéro de hardware. (cf mon post précédent)

pour la SDCard, cela n’est pas nécessaire. Pour ma part, j’ai pu upgradé la cam sans.

Re,

J’ai une rlc-410-5MP. J’ai vérifié le n° de firmware. Tout est OK, mais la mise à jour se plante à chaque fois.
Sans aucun message explicatif.
De plus j’ai trouvé deux mises à jour du même frimware sur le site Reolink. Aucune ne fonctionne sur ma camera.
Je fais la mise à jour depuis un client reolink PC.

Voici les refs du firmlware téléchargé : IPC_51516M5M.136_20121100.RLC-410-5MP.OV05A10.5MP.REOLINK.pak
Voici les infos de ma camera :
rlc-410-infos

Re,

Bon finalement, j’ai trouvé le bon firmware.

Reolink a mis une belle pagaille en donnant plusieurs liens erronés pour les mises à jour de firmware.

Pour la RLC-410 IPC_51516M5M , voici le lien qui fonctionne :
https://reolink-storage.s3.amazonaws.com/website/firmware/20210106+firmware/RLC-410-5MP_v300136_20121100.zip

A+
Bernard

Si tu vas sur leur site ici : Download Center – Reolink et que tu choisis le menu « PoE IP Cameras & NVRs », tu retrouves la RLC-410 et tu choisis firmware.
Ensuite dans la page qui s’ouvre, tu as un menu déroulant « Firmware Version » avec 3 choix de firmware et même si chacun possède le même numéro, tu vois que chacun est destiné à un hardware différent, pour ta caméra IPC_51516M5M c’est le premier de la liste. Le second est pour les IPC-515B16M5M et le troisième est pour IPC-51316M

Salut @nechry @mnpg

J’ai recherché ce week-end comment activer et désactiver la détection de mouvement, mais rien trouvé. Je pensais que c’était grâce à cette commande Motion Dectector Status URL (Etat de la detection de mouvement) : GetMdState mais je pense qu’elle sert à connaitre si il y a détection de mouvement ou pas en temps réel.
De mon côté, je voudrez désactiver la détection quand je suis présent et la réactiver quand je suis absent, vous auriez une idée?

Bonjour a tous, je me permets de m’insérer dans la discussion,

tout d’abord un grand merci pour toutes les infirmations, et aussi a Laurent.

il y a 1 petite chose que je n’arrive pas a faire:
sur ma E1 Zoom j’aimerai créer des commandes Gauche Droite Haut Bas, mais si je tape la commande

/var/www/html/plugins/script/data/Reolink_API_PTZ_Commands.sh 192.168.1.XX PtzCtrl Left 16

la camera va se déplacer sur la gauche sans s’arreter!!
et faudrai donc créer une deuxième commande

/var/www/html/plugins/script/data/Reolink_API_PTZ_Commands.sh 192.168.1.XX PtzCtrl Stop 16

Serait il possible donc de mettre ces deux commandes a la suite? dans le script de jeedom pour quelles s’execute les deux a la suite avec une tempo de 1 secondes (par exemple)??

merci de votre aide

le mieux serait de créer un commande de script stop afin d’arrêter le mouvement de la caméra plutôt que de l’insérer dans la commande précédente.
lorsque tu balayes vers la droite, ou vers la gauche, on ne peux pas définir quand est-ce que la caméra s’arrêtera automatiquement. Il est préférable que tu le fasses manuellement via une autre commande.
N’ayant pas de caméra avec PTZ, je te donnes juste mon avis.

Alors j’ai réussi, c’est même bizarre…

Si je crée 1 seul script avec 1 commande par ligne (donc 4 lignes gauche droite haut bas), lorsque je clic pour déplacer la caméra a droite, elle tourne sans s’arrêter…

MAIS

Si je crée 4 scripts avec a chaque fois 1 commandes pas script et bien la ça fonctionne. C’est a dire que la caméra se déplace en fonction du temps que je clic sur le bouton…

J’ai aussi reussi à inclure le Zoom + et zoom -.

Maintenant je cherche pour une RLC410W a faire un zoom sur un endroit précis de l’image. Comme la fonction « Clip » de l’application Realink

1 « J'aime »