Bonjour kalthen,
J'ai connu le même souci avec une IP672WI. La requête ne peut plus être faite en direct.
J'avais d'ailleurs interrogé le forum à ce sujet :
http://forum.eedomus.com/viewtopic.php?f=25&t=1731&p=13584#p13584Je savais qu'il fallait passer par un script mais sans trop savoir comment m'y prendre.
Je m'y suis remis récemment et voici ce que j'ai réussi à faire en reprenant différents bouts de code trouvés ici et là pour s'adapter à l’authentification. C'est hébergé sur mon NAS mais je pense que cela peut être aussi sur l'eedomus.
Pour un capteur, un script permet d'interroger n'importe quel cgi. Il suffit de l'appeler depuis l'eedomus en indiquant l'URL complète du CGI à consulter. Comme ceci par exemple :
- Code : Tout sélectionner
http://ipNAS/IP672WI_get.php?url=http://ipCAM/fr/liveView.cgi
Contenu de IP672WI_get.phpà modifier pour indiquer le user et password de la cam (lignes 7 et 8)
- Code : Tout sélectionner
<?php
error_reporting(E_ALL);
ini_set( 'display_errors','1');
$url = $_GET["url"];
$username = "username";
$password = "password";
$post_data = array(
'fieldname1' => 'value1',
'fieldname2' => 'value2'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_SSL_VERIFYPEER => false, // for https
CURLOPT_USERPWD => $username . ":" . $password,
CURLOPT_HTTPAUTH => CURLAUTH_DIGEST,
CURLOPT_HTTPGET => true,
);
$ch = curl_init();
curl_setopt_array( $ch, $options );
try {
$raw_response = curl_exec( $ch );
// validate CURL status
if(curl_errno($ch))
throw new Exception(curl_error($ch), 500);
// validate HTTP status code (user/password credential issues)
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status_code != 200)
throw new Exception("Response with Status Code [" . $status_code . "].", 500);
} catch(Exception $ex) {
if ($ch != null) curl_close($ch);
throw new Exception($ex);
}
if ($ch != null) curl_close($ch);
echo $raw_response;
?>
Le XPATH par exemple pour savoir si l'éclairage infrarouge est allumé est : /root/config/ir/irMode
Pour l'actionneur, j'ai créé un fichier PHP pour chaque action car je n'ai pas réussi à les appeler en paramètre d'un script générique (il y a déjà un paramètre dans l'URL qu'envoie le script vers la caméra).
Il s'agit du même script que précédemment mais en changeant l'URL en ligne 6 selon chaque action
Un exemple pour éteindre l'éclairage infrarouge :
- Code : Tout sélectionner
$url = "http://ipCAM/fr/admin/adv_audiovideo.cgi?&irMode=2";
Pour la remettre à la position initiale :
- Code : Tout sélectionner
$url = "http://ipCAM/cgi/ptdc.cgi?command=goto_preset_position&index=0";
Pour arrêter l'upload de snapshot :
- Code : Tout sélectionner
$url = "http://ipCAM/fr/admin/adv_snapshot.cgi?&enable=0";
Et tant d'autres actions à faire en explorant les pages de la webcam et en utilisant le mode débug d'un navigateur.
J'ai ensuite créé des règles pour allumer l'infrarouge selon la luminosité ambiante (indiquée par un module Fibaro), pour avoir un réel mode intimité (arrêt des snapshots vers eedomus, arrêt des clips vidéos vers le NAS et orientation de la caméra vers le plafond).
Voilà j'espère que ça pourra servir !