RESOLU Requete HTTP : réponse NON xml, on récupére comment ?

Capteurs et actionneurs HTTP

RESOLU Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar nslmanu » 07 Mars 2015 20:11

Hello ,

J'aimerais récupérer dans un status le retour d'une requette http simple qui me renvoie 2 mots à chaque fois sur une page web .... juste 2 mots.

C'est le retour de requete de mon alarme : elle me renvoie cela :

Armed Away

ou

Disarmed Home

Et bien je voudrais mettre ce résultat dans un device virtuel ... mais je ne trouve des infos que sur du XML ... et non du html basique , simple ... meme pas formatté ... brut de pomme !

Si vous avez une solution pour récuperer je suis preneur car j'ai tout essayer avec Xpath au cas où ...

En tous cas merci d'avance pour l'astuce :)

Manu
Dernière édition par nslmanu le 09 Mars 2015 20:24, édité 1 fois.
nslmanu
 
Messages : 124
Inscription : 23 Fév 2015

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar Tinto » 07 Mars 2015 21:13

Si tu as un serveur dispo, genre un NAS :-) tu fais un petit script qui justement te formate ces "mots" en XML que tu pourras lire avec eedomus.
Tinto
 
Messages : 534
Inscription : 10 Jan 2014

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar nslmanu » 08 Mars 2015 04:59

Ok merci :)

Donc rien de possible avec la box elle meme ?

A force de faire des trucs a l'exterieur de la eedomus, je finis par me demander si une autre box n'etait pas mieux :(

Bon n'ayant pas toutes les connaissances de developpement pour le faire en php directement, je peux le faire par script dans une crontab qui selon le résultat va faire appel à une url sur la eedomus et mettre à jour la valeur d'une device : c'est possible ça sur la eedomus de mettre à jour la valeur d'une device via une requete venant de l'extérieur ?

Merci
nslmanu
 
Messages : 124
Inscription : 23 Fév 2015

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar hugosc » 08 Mars 2015 08:53

Bonjour,
Lorsque tu appelles l'adresse HTTP depuis ton navigateur, as-tu vérifié en affichant le code source que la réponse est uniquement les 2 mots ?
Si le code source de la réponse est du HTML bien formaté par exemple <p>armed away</p>, c'est apparenté à du xml et tu pourras le traiter facilement avec eedomus.
Hugo
hugosc
 
Messages : 15
Inscription : 19 Sep 2012

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar Tinto » 08 Mars 2015 12:21

Oui si le HTML est bien formaté un xpath peut suffit. Après, on pourrait trouver normal qu'utiliser un truc externe pour intégrer un truc externe ne soit pas vraiment faute a la box :-)
Tinto
 
Messages : 534
Inscription : 10 Jan 2014

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar Nico33 » 08 Mars 2015 21:01

Je suis d'accord avec Tinto. ;)
De toute façon, aucune box n'est parfaite. Quel que soit son prix d'ailleurs.
Nico33
 
Messages : 1013
Inscription : 14 Juin 2013

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar nslmanu » 09 Mars 2015 13:21

Quand j'enregistre la page : j'ai ceci :

<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body>Disarmed Home</body></html>

Dommage que la eedomus ne gère pas un truc aussi simple :(
nslmanu
 
Messages : 124
Inscription : 23 Fév 2015

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar Floman321 » 09 Mars 2015 13:42

BOnjour,

si tu ajoute un péripherique http avec pour valeur "<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body>Disarmed Home</body></html>"

et tu créer un régle si compare cette valeur a une valeur connu

SI Peripherique1 = ValeurHtmlDisarmed ALORS
tu deverouille l'alarme
FIN
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar nslmanu » 09 Mars 2015 14:01

ça me semble bizarre, t'es sur de ton coup ?

:)
nslmanu
 
Messages : 124
Inscription : 23 Fév 2015

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar Floman321 » 09 Mars 2015 14:59

Je me suis peut etre avancé, les regles ne prenne que des valeurs numerique ?
Il faut essayer.

essaye en php avec un script ?
Je peux t'aider en php si tu veux.
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar Havok » 09 Mars 2015 16:17

nslmanu a écrit:Quand j'enregistre la page : j'ai ceci :

<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"></head><body>Disarmed Home</body></html>

Dommage que la eedomus ne gère pas un truc aussi simple :(


Normalement ca fonctionne avec //body

Sauf que le html n'est pas parfaitement formé, il suffirait juste d'un / en plus après charset=UTF-8

<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"/></head><body>Disarmed Home</body></html>

Bon ca ne résout pas ton soucis mais ca permet de comprendre :) C'est sur qu'avec un script php c'est réglé en 2s
Havok
 
Messages : 702
Inscription : 06 Fév 2015

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar nslmanu » 09 Mars 2015 16:40

J'ai essayé mais suis pas fan du php ... dans le sens pas très calé.

j'ai réussi à faire avec un script shell mais je n'aime pas cette solution : eedomus gère des scripts php, autant les utiliser ou en faire un indépendant ... car mon script n'est pas indépendant.

1 - Mon script récupère le resultat d'une wget et le met dans un fichier : le résultat du ficher est les 2 mots.
2 - ensuite il créé un autre fichier XML ligne par ligne du genre :
<?xml version........
<xml>
<test>les 2 mots</test>
</xml>

En php : je pense que c'est faisable et j'ai essayé ... mais je n'y suis pas arrivé : j'avais un soucis avec le httprequest machin chose ... du coup j'ai fait mon script shell ... mais je n'aime pas.

Je suis bien sur preneur d'un script php qui me fasse cela :) , celui qui pratique le php comme moi le shell , c'est faisable facilement ... et si en plus c'est hébergeable sur la eedomus :) c'est à dire avec les fonctions authorizées par la box, c'est le pied !

Le but d'une box, c'est de ne pas etre dépendant d'autre chose ... mon pt de vue. Homeseer était la perfection pour moi .... sauf d'être obligé d'avoir Windows de me........ à gérer et après plusieurs années, j'ai prix le risque de changer de système.

Merci encore si un "expert" php me file un coup de main sur le coup :)

Et si ce script peut mettre à jour un device virtuel via 2 valeurs : genre ALARME ACTIVEE ou ALARME DESACTIVEE , c'est parfait :)

Manu
nslmanu
 
Messages : 124
Inscription : 23 Fév 2015

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar Havok » 09 Mars 2015 17:00

En gros il suffit d'interroger ta page avec la fonction (specifique à l'eedomus) :

httpQuery($url, $action = 'GET'/*GET,POST,PUT,DELETE*/, $post = NULL, $oauth_token = NULL, $headers = NULL, $use_cookies = false)

ensuite tu analyse la chaine avec les fonction php classiques et en fonction du résultat tu mets à jour la valeur de ton etat avec :

setValue($periph_id /*Code API*/, $value, $verify_value_list = false)

Tu peux aussi simplement reconstruire le xml et ainsi interroger le script dans la zone "Requete de mise à jour (optionnelle)" de ton etat virtuel

Pour en savoir plus : https://doc.eedomus.com/view/Scripts



Tu peux te lancer et si vraiment tu n'y arrives pas je t'aiderais :)
Havok
 
Messages : 702
Inscription : 06 Fév 2015

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar hugosc » 09 Mars 2015 18:24

Et un simple capteur HTTP avec pour XPath /html/body/text() ça ne suffit pas ?
hugosc
 
Messages : 15
Inscription : 19 Sep 2012

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar Havok » 09 Mars 2015 19:08

hugosc a écrit:Et un simple capteur HTTP avec pour XPath /html/body/text() ça ne suffit pas ?


Non car la balise <meta> est mal formée du point de vue xml (plus strict que le html)
Il faudrait qu'elle soit <meta></meta> ou <meta/>
Havok
 
Messages : 702
Inscription : 06 Fév 2015

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar nslmanu » 09 Mars 2015 19:17

Havok a écrit:Tu peux te lancer et si vraiment tu n'y arrives pas je t'aiderais :)


Au milieu de ma vie et une famille à m'occuper :) je vais essayer de me mettre à la découverte d'un langage de programmation ;)

Je vais déjà essayer de comprendre la requete d'eedomus ... ça sera déjà bien :lol:
nslmanu
 
Messages : 124
Inscription : 23 Fév 2015

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar nslmanu » 09 Mars 2015 19:30

Bon j'ai un résultat : page blanche ... sans erreur affichée mais sans résultat non plus ...

<?

$url = 'https://..............';

httpQuery($url, $action = 'GET', $post = NULL, $oauth_token = NULL, $headers = NULL, $use_cookies = false)

?>


ça devrait au moins me mettre quelque chose :( étonnant. Je continue de chercher ... j'ai un peu de temps là.
nslmanu
 
Messages : 124
Inscription : 23 Fév 2015

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar Floman321 » 09 Mars 2015 19:35

attends , je suis entrain de te le faire
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar nslmanu » 09 Mars 2015 19:37

correction :


$result = httpQuery($url,'GET') ;
echo $result;

ça marche mieux .... :)
en gros maintenant :

Et après : on fait une requete sur le device et mettre la value du result ... je vais essayer.
nslmanu
 
Messages : 124
Inscription : 23 Fév 2015

Re: Requete HTTP : réponse NON xml, on récupére comment ?

Messagepar nslmanu » 09 Mars 2015 19:51

Par contre je pêche pour mettre la variable sur le device ...

<?
$url = "........";
$result = httpQuery($url,'GET') ;

$envoie_result = setValue(123456,"prout",$verify_value_list = false);
echo $envoi_result;
?>

Résultat : vide ... :( mais je n'ai pas capté malgré avoir copié l'exemple fourni par eedomus :(
Et aucune valeur dans l'history du device ...

On y est presque :)
nslmanu
 
Messages : 124
Inscription : 23 Fév 2015

Suivant

Retour vers Requêtes HTTP

Qui est en ligne ?

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