Bonjour,
Je bute sur un problème en apparence plutôt simple, mais je ne trouve pas la solution.
J’ai une requête http qui me permet d’activer ou désactiver certains paramètres de mon enregistreur Dahua.
-
Cette requête :
http://78.xxx.xxx.125/cgi-bin/configManager.cgi?action=setConfig&MotionDetect[3].Enable=false
Tapée dans un navigateur, ouvre une pop-up qui demande de taper user et mot de passe, et fonctionne -
Cette requête, en ajoutant l’user et le mot de passe avant l’IP :
http://admin:xxxxxxx@78.xxx.xxx.125/cgi-bin/configManager.cgi?action=setConfig&MotionDetect[3].Enable=false
Toujours tapée dans un navigateur, fonctionne très bien, sans m’ouvrir de pop-up d’authentification.
Je souhaite automatiser l’exécution de cette requête via jeedom.
J’ai essayé plusieurs méthodes après avoir lu des tas de messages sur la communauté et de documentations :
Méthode 1 : via plugin script
J’ai testé une commande script type http :
Ca fonctionne pas (quand je teste, ça m’indique que « Action exécutée avec succès » mais le paramètre ne se met pas à jour)
Méthode 2 : via un code dans un scénario
Voilà le code essayé :
$req = 'curl -i -XPOST "http://admin:xxxxxxxx@78.xxx.xxx.125/cgi-bin/configManager.cgi?action=setConfig&MotionDetect[3].Enable=false" ';
$scenario->setLog('DEBUG REQUETTE : '.$req);
$output0 = shell_exec($req);
$scenario->setLog('DEBUG RETOUR : '.$output0);
Le scénario se lance bien mais le paramètre ne change pas. Voilà le log :
[2021-09-06 11:32:29][SCENARIO] Start : Scenario lance manuellement.
[2021-09-06 11:32:29][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-09-06 11:32:29][SCENARIO] Exécution d'un bloc code
[2021-09-06 11:32:29][SCENARIO] DEBUG REQUETTE : curl -i -XPOST "http://admin:xxxxxxxx@78.xxx.xxx.125/cgi-bin/configManager.cgi?action=setConfig&MotionDetect[3].Enable=false"
[2021-09-06 11:32:29][SCENARIO] DEBUG RETOUR : HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="Login to 3F0xxxxxxxx3BC", qop="auth", nonce="9xxxxx493", opaque="343f83a7xxxxxxadd51756882f221dabe"
Connection: close
Set-Cookie:secure; HttpOnly
CONTENT-LENGTH: 0
[2021-09-06 11:32:29][SCENARIO] Fin correcte du scénario
Méthode 3 : via une commande info dans un virtuel
Voilà, rien de tout ça ne fonctionne (même chose avec l’IP interne)
Une idée?
Merci
Quentin