Bonjour,
J’essaie d’écrire pour un widget, pour afficher et régler la sensibilité de detection des mouvements par une caméra.
http://IPcamera:port/get_params.cgi fonctionne bien en direct mais fournit une TRES longue chaine de caractères au sein de laquelle se trouve ce que je cherche : « alarm_motion_sensitivity=9 »;
J’ai créé cette même commande « info » avec le sous-type « autre » sur le plugin de cette caméra .Mais je suis incapable d’en connaitre le retour.
Un grand merci à qui pourra m’aider à récupérer dans jeedom la valeur de cette sensibilité.
Il m’aura aussi certainement fait progresser
Bonjour,
il te faut passer ta requette par un bloc code de scenario
le message de réponse semble être en json
tu devra donc utiliser une instruction php json_decode
qui transformera la réponse en un tableau (array)
pour en fin accéder a l’index de l’élément qui t’intéresse.
je vais regarder ce qu’est json…
en attendant voici un extrait des 198 que je reçois à chaque requete envoyée en http par la camera ( voir dernière ligne). Json ne devait pas exister à l’époque où cette vielle Foscam est sortie.
Merci,
var alarm_motion_armed=1;
var alarm_motion_sensitivity=9;
var alarm_motion_compensation=1;
var alarm_input_armed=1;
var alarm_ioin_level=1;
var alarm_sounddetect_armed=0;
var alarm_sounddetect_sensitivity=0;
var alarm_iolinkage=0;
var alarm_preset=0;
var alarm_ioout_level=1;
var alarm_mail=1;
var alarm_upload_interval=0;
var alarm_http=1;
var alarm_msn=0;
var alarm_http_url=‹ http://#IPJEEDOM/core/api/jeeApi.php?apikey=DyqEs4MbASeXNs7UQtix7ubvY7r9e6gw&type=camera&id=1101&value=1&next_url ›;
d’où l’intérêt de savoir extraire une ligne et surtout la valeur numérique associée.
Le coté rassurant est qu’il n’y a aucun problème pour renvoyer ensuite des ordres à la caméra
bon il va te falloir mettre un peut les main dans le code:)
1 on récupere tout dans une variable voir la ligne avec curl dans le lien donné.
vue la tête des données
on commence par supprimer tout ce qui est var alarm_ par rien avec un (str_replace en php)
ensuite on split ( explode en php) les données dans un tableau en se servant des ;
on balaye le tableau avec un foreach sur chaque éléments
pour chaque ligne on slpit en utilisant le = cette fois-ci
pour obtenir le nom et la valeur
Bonsoir,
Je suppose que tu veux dire que je supprime tout sauf ce qui n’est PAS var alarm_ par.
Je vais m’y mettre doucement en commençant par la doc du plugin Script et en allant voir ton lien… et les docs php pour débutant (à moins que tu connaisses un tuto).
…tu peux donc espérer que je ne t’ennuie pas pour les fêtes.
@manerbras j’ai corrigé le;
prend l’habitude de mettre tes morceaux de code avec l’outil </>
quant tu tape http://192.168.0.11:9090/get_params.cgi
dans un navigateur ça répond quoi ?
J’ai aussi changé la condition de départ pour être certain qu’elle soit vérifiée :
#[Sécurité][camera_Jardin][Get_params]# != ‹ 1 ›
Voici ce que j’obtiens dans le log
[2021-12-14 22:14:37][SCENARIO] Start : Scenario lance manuellement.
[2021-12-14 22:14:37][SCENARIO] Exécution du sous-élément de type [condition] : if
[2021-12-14 22:14:37][SCENARIO] Evaluation de la condition : ["" != ‹ 1 › ] = Vrai
[2021-12-14 22:14:37][SCENARIO] Exécution du sous-élément de type [action] : then
[2021-12-14 22:14:37][SCENARIO] Exécution d’un bloc élément : 11
[2021-12-14 22:14:37][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-12-14 22:14:37][SCENARIO] Exécution d’un bloc code
[2021-12-14 22:14:37][SCENARIO] Call to a member function setLog() on null
[2021-12-14 22:14:37][SCENARIO] Fin correcte du scénario
Je vais bien entendu essayer la forme de login que tu proposes
Trouvé l’erreur ( évidemment idiote)
sur la 3eme ligne de code, j’avais mi le nom du scenario et nom $scenario.
J’ai bien le fichier et je vais continuer
Merci
Bonjour,
Peux tu me dire ce que tu appelles "l’outil </> " . j’ai juste rajouté ce signe devant les lignes de code sur ce message.
Ce matin , j’ai pu « spliter » les données dans tableau avec les « ; » puis chaque ligne avec « = » .
Je ne sais visiblement pas comment mettre les « array » dans le log.
Après le 1er explode, j’ai donc demandé le 1er élément . C’est bon et je suppose que la suite est OK.
Après la boucle « foreach » qui extrait chaque ligne du tableau précédent et y réalise un explode sur « = », J’ai moins de succès