API d'une trendnet tv-ip762ic

eedomus avec vos caméras IP

API d'une trendnet tv-ip762ic

Messagepar kalthen » 18 Mars 2015 21:33

Hello tout le monde,

j'ai trouvé comment activer la detection de mouvement sur cette camera, mais pas comment passer le nom d'utilisateur et le mot de passe: http://user:pass@IP ne marche pas... Et je n'ai pas trouvé d'api ou de sdk pour cette cam.
Quelqu'un aurait la recette magique?

merci!
kalthen
 
Messages : 56
Inscription : 16 Jan 2014

Re: API d'une trendnet tv-ip762ic

Messagepar influman » 18 Mars 2015 22:50

T'as essaye en rajoutant dans l'URL a la fin
?user=username&password=pass
influman
 
Messages : 2324
Inscription : 30 Oct 2013

Re: API d'une trendnet tv-ip762ic

Messagepar kalthen » 01 Mai 2015 15:36

Après quelques envois/retours de mails avec le support trendnet, ils m'ont envoyé l'api complète.

J'ai donc trouvé les infos que je cherchais, à savoir: http://user:password@x.x.x.x/config/mot ... ?enable=no

Ca marche bien quand je l'essaye dans un butineur:
- il me prévient que je vais me connecter avec l'utilisateur user
- et fait bien l'action demandée
=> j'obtiens ce retour d'infos:
Code : Tout sélectionner
enable=yes
mbmask=0000000000FFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFE01FFFF0FFE00FFFF0FFE000FFF0FFE000FFF0FF8000FFF0FF0380FF10FF0380FF1FFF0380FF00000380FF00000000FF00000000FF00000000FF00000000FF000000003F000000000000000000000000000000000000000000000000000000000000000000000000000000
sensitivity=60
pir_sensitivity=0


mais avec l'eedomus :
- il execute l'action
Code : Tout sélectionner
Veuillez patienter pendant l'exécution de la requête par votre box eedomus

- et il me retourne
Code : Tout sélectionner
<html>
<body>
<h1>Unauthorized</h1>
Please enter correct account/password.
</body>
</html>


J'ai fait du copier/coller, donc aucune erreur de frappe.


Dans l'api, il y écrit:
Code : Tout sélectionner
To set values in the IP camera, you may use HTTP GET method, the syntax is
GET http://<camera name>/<CGI-URL>
?<parameter>=<value>[&<parameter>=<value>...] HTTP/1.1<CRLF>
Authorization: Basic <basic-cookie><CRLF>
Host: <camera ip-adress><CRLF>
<CRLF>


Le problème viendrait il du HTTP/1.1 qui n'est pas géré?
kalthen
 
Messages : 56
Inscription : 16 Jan 2014

Re: API d'une trendnet tv-ip762ic

Messagepar kalthen » 01 Mai 2015 16:08

influman a écrit:T'as essaye en rajoutant dans l'URL a la fin
?user=username&password=pass

J'ai oublié de répondre: l'api ne connait pas ces variables... Ca ne marche pas malheureusement :?
kalthen
 
Messages : 56
Inscription : 16 Jan 2014

Re: API d'une trendnet tv-ip762ic

Messagepar pascool » 20 Août 2015 23:10

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#p13584
Je 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 !
pascool
 
Messages : 28
Inscription : 13 Oct 2013

Re: API d'une trendnet tv-ip762ic

Messagepar amarna » 05 Jan 2016 15:35

le script ne s'installe pas sur l'eedomus et comme je suis une "chèvre" , je suis bien incapable de le modifier ou quoique ce soit. Alors selon vous existe-t-il une autre solution permettant d’envoyer un requête http afin de positionner la caméra dans des positions prédéfinies ??
la requete est : "http://ipCAM/cgi/ptdc.cgi?command=goto_preset_position&index=0"
cela marche depuis un navigateur mais pas depuis la box via un actionneur :|
Merci de votre aide
amarna
 
Messages : 85
Inscription : 18 Nov 2015


Retour vers Caméras

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 28 invité(s)