#!/bin/bash ## Script Reolink_API_PTZ_Commands.sh ## ./Reolink_API_PTZ_Commands.sh 'commande PTZ Reolink' 'parametre de la commande' (respecter la casse) ## 'commandes PTZ Reolink' : PtzCtrl, GetPtzPatrol, SetPtzPatrol ## 'parametre de la commande' possible : Left, Right, Up, Down, LeftUp, RightUp, LeftDown, RightDown, ZoomInc, ZoomDec, FocusInc, FocusDec, ZoomPos, ToPos, StartPatrol, StopPatrol, Stop ## Exemple : ./Reolink_API_PTZ_Commands.sh PtzCtrl Left IP=$1 username="cameraUser" passwd="" command=$2 parameter=$3 #Variable vitesse de déplacement -ici à 32- speed=$4 id=$5 case $command in GetPtzPatrol) payload="[{\"cmd\":\""${command}"\",\"action\":0,\"param\":{\"channel\":0}}]";; SetPtzPatrol) payload="[{\"cmd\":\""${command}"\",\"action\":0,\"param\":{\"PtzPatrol\":"${parameter}"}}]";; PtzCtrl) case $parameter in Left|Right|Up|Down|LeftUp|RightUp|LeftDown|RightDown|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}}}]";; StartPatrol|StopPatrol) id=${speed} payload="[{\"cmd\":\""${command}"\",\"action\":0,\"param\":{\"channel\":0,\"id\":${id},\"op\":\""${parameter}"\"}}]";; esac;; esac curl -s -k -X POST -H "Content-Type: application/json" -d "${payload}" "http://${IP}/cgi-bin/api.cgi?cmd=${command}&user=${username}&password=${passwd}"