Forum eedomus http://forum.eedomus.fr/ |
|
[Résolu] Capteur HTTP http://forum.eedomus.fr/viewtopic.php?f=14&t=11337 |
Page 1 sur 1 |
Auteur: | Onehebergeur [ 22 Avr 2022 15:06 ] |
Sujet du message: | [Résolu] Capteur HTTP |
Bonjour à tous, auriez vous une solution pour pouvoir créer 2 capteurs HTTP identique mais avec un chemin Xpath différent et récupérer la valeur "power" : - de la voiture 1 (Id 37959) donc 12.589 - de la voiture 2 (Id 37958) donc 12.52 en sachant que la mise en forme du XML est celle-ci : <?xml version="1.0" encoding="ISO-8859-1"?> <root><entry><id>37959</id> <attributes><priority>0</priority> <sat>0</sat> <event>0</event> <ignition>0</ignition> <motion>0</motion> <rssi>4</rssi> <io200>0</io200> <io69>2</io69> <pdop>0</pdop> <hdop>0</hdop> <power>12.589</power> <battery>4.052</battery> <io68>0</io68> <operator>20815</operator> <odometer>393800</odometer> <distance>0</distance> <totalDistance>34234355.87</totalDistance> <hours>23726890</hours> </attributes> <deviceId>2</deviceId> <type>0</type> <protocol>teltonika</protocol> <serverTime>2022-04-22T13:32:16.044+00:00</serverTime> <deviceTime>2022-04-22T13:31:10.000+00:00</deviceTime> <fixTime>2022-04-22T13:31:10.000+00:00</fixTime> <outdated>0</outdated> <valid>0</valid> <latitude>50.3515849</latitude> <longitude>3.524095</longitude> <altitude>0</altitude> <speed>0</speed> <course>0</course> <address>0</address> <accuracy>0</accuracy> <network>0</network> </entry> <entry><id>37958</id> <attributes><priority>0</priority> <sat>13</sat> <event>0</event> <ignition>0</ignition> <motion>0</motion> <rssi>5</rssi> <io200>0</io200> <io69>1</io69> <pdop>1.3</pdop> <hdop>0.8</hdop> <power>12.52</power> <battery>4.071</battery> <io68>0</io68> <operator>20801</operator> <odometer>86905</odometer> <distance>0</distance> <totalDistance>133968.85</totalDistance> <hours>8205990</hours> </attributes> <deviceId>4</deviceId> <type>0</type> <protocol>teltonika</protocol> <serverTime>2022-04-22T13:25:01.029+00:00</serverTime> <deviceTime>2022-04-22T13:24:17.000+00:00</deviceTime> <fixTime>2022-04-22T13:24:17.000+00:00</fixTime> <outdated>0</outdated> <valid>1</valid> <latitude>50.3498116</latitude> <longitude>3.5437</longitude> <altitude>47</altitude> <speed>0</speed> <course>154</course> <address>1 1 Place Gabriel Péri, Marly, FR</address> <accuracy>0</accuracy> <network>0</network> </entry> </root> et 2ieme questions ... Est-il possible de créer un capteur ou autre périphérique qui ira interroger régulièrement latitude et longitude pour voir la position sur une carte + historisation ? Merci d'avance pour vos retours ! |
Auteur: | JuanMarco [ 22 Avr 2022 16:56 ] |
Sujet du message: | Re: Capteur HTTP |
Bonjour, Je pense qu'avec une équation de ce type dans le Xpath, pour l'un : //entry[id='37959']/attributes/power et pour l'autre : //entry[id='37958']/attributes/power tu devrais récupérer la valeur pour chaque capteur HTTP Même principe pour la latitude et longitude, mais la visualisation de la position sur une carte dans eeDomus ne me semble pas possible. Peut-être que quelqu'un d'autre aura une solution ? A+ |
Auteur: | opa95 [ 22 Avr 2022 17:59 ] |
Sujet du message: | Re: Capteur HTTP |
Bonjour Tu peux aussi l'écrire comme cela //entry[id='37959']//power D'une manière générale, depuis le panneau du plugin, tu cliques sur tester et tu essayes diverses formules dans le XPATH. Si tu as déjà le XML et que tu dois faire des essais, tu peux recopier le XML dans la grande zone et cliquer sur la case "Utiliser le résultat XML :" avant de relancer le test. ![]() |
Auteur: | Onehebergeur [ 23 Avr 2022 10:42 ] |
Sujet du message: | Re: Capteur HTTP |
Merci à tous pour votre aide !!! Cela fonctionne par contre pour la position GPS je ne pense pas que cela sois possible mais auriez vous une "formule Xpath" pour avoir via 1 seul capteur la latitude et longitude ? Avoir les 2 séries de chiffres sur la même capteur ? Merci encore à tous et bon WE. |
Auteur: | opa95 [ 23 Avr 2022 10:58 ] |
Sujet du message: | Re: Capteur HTTP |
Bonjour Tu utilises la fonction concat() concat(//latitude,' ',//longitude) avec espace entre ' ' tu obtiens 50.3515849 3.524095 (ou le symbole que tu veux) concat(//latitude,' / ',//longitude) 50.3515849 / 3.524095 ![]() |
Auteur: | Onehebergeur [ 23 Avr 2022 13:23 ] |
Sujet du message: | Re: Capteur HTTP |
Merci je vais tester cela, par contre j'ai encore un dernier souci dsl ...l'ID concernant ma demande initial change donc ... sa déconne ... Voici ce que j'ai maintenant : <?xml version="1.0" encoding="ISO-8859-1"?> <root><entry><id>38354</id> <attributes><priority>0</priority> <sat>14</sat> <event>0</event> <ignition>0</ignition> <motion>0</motion> <rssi>3</rssi> <io200>0</io200> <io69>1</io69> <pdop>0.9</pdop> <hdop>0.7</hdop> <power>12.563</power> <battery>4.047</battery> <io68>0</io68> <operator>20815</operator> <odometer>405078</odometer> <distance>0</distance> <totalDistance>34245302.22</totalDistance> <hours>24641890</hours> </attributes> <deviceId>2</deviceId> <type>0</type> <protocol>teltonika</protocol> <serverTime>2022-04-23T11:18:33.425+00:00</serverTime> <deviceTime>2022-04-23T11:17:01.000+00:00</deviceTime> <fixTime>2022-04-23T11:17:01.000+00:00</fixTime> <outdated>0</outdated> <valid>1</valid> <latitude>50.33951</latitude> <longitude>3.6429416</longitude> <altitude>73</altitude> <speed>0</speed> <course>174</course> <address>10 10 Rue de Remonval, Sebourg, FR</address> <accuracy>0</accuracy> <network>0</network> </entry> <entry><id>38353</id> <attributes><priority>0</priority> <sat>10</sat> <event>0</event> <ignition>0</ignition> <motion>0</motion> <rssi>4</rssi> <io200>0</io200> <io69>1</io69> <pdop>1.6</pdop> <hdop>1</hdop> <power>12.465</power> <battery>4.048</battery> <io68>0</io68> <operator>20801</operator> <odometer>95266</odometer> <distance>0</distance> <totalDistance>142311.66</totalDistance> <hours>8983990</hours> </attributes> <deviceId>4</deviceId> <type>0</type> <protocol>teltonika</protocol> <serverTime>2022-04-23T11:15:20.498+00:00</serverTime> <deviceTime>2022-04-23T11:14:58.000+00:00</deviceTime> <fixTime>2022-04-23T11:14:58.000+00:00</fixTime> <outdated>0</outdated> <valid>1</valid> <latitude>50.3393816</latitude> <longitude>3.6428716</longitude> <altitude>48</altitude> <speed>0</speed> <course>313</course> <address>10 10 Rue de Remonval, Sebourg, FR</address> <accuracy>0</accuracy> <network>0</network> </entry> </root> Concernant ma demande initial pour la balise "power" avez vous une autre solution ? Par exemple demander le 1er "power" et pour l'autre le second ? Ce qui ne change jamais : deviceId>2</deviceId> je sais pas si cela peut aider ? Pour les "address" jai réussi en faisant : //entry[deviceId='2']/address //entry[deviceId='4']/address Et enfin pour la position GPS j'essai cela mais cela ne fonctionne pas : //entry[deviceId='2'] /concat(//latitude,' ',//longitude) //entry[deviceId='4'] /concat(//latitude,' ',//longitude) |
Auteur: | opa95 [ 23 Avr 2022 15:12 ] |
Sujet du message: | Re: Capteur HTTP |
Bonjour Si tu es sur que le 'deviceId' est stable, tu peux mettre
ou
sinon, s'il n'y a que 2 entry, on peut mettre
et
Pour la latitude et la longitude, tu utilises mal la fonction concat() concat('Bonjour',' ','Onehebergeur' donnera 'Bonjour Onehebergeur' donc il faut
c'est la valeur de la latitude : //entry[deviceId='2']/latitude et la valeur de la longitude : //entry[deviceId='2']/longitude qu'il faut concaténer avec un espace entre les 2. et
![]() |
Auteur: | Onehebergeur [ 23 Avr 2022 16:09 ] |
Sujet du message: | Re: Capteur HTTP |
Que dire ... Mille merci ! Tout fonctionne !!! Mais j'avoue que c'est quand même dommage, ayant un capteur http avec des postions GPS, ne pas avoir un script ou autre qui mettre d'avoir une carte, une historisation sur une carte ... voir même le tracé journalier ... Je l'avais avant avec mon module Xee mais je ne l'ai plus. |
Auteur: | Onehebergeur [ 20 Avr 2023 10:29 ] |
Sujet du message: | Re: Capteur HTTP |
Bonjour à tous, depuis qq tps cela ne fonctionne plus, voici le retour que j'ai : XML error: HTTP 401 Unauthorized - WebApplicationException (SecurityRequestFilter:125 < ...) URL de la requête : http://[VAR1]:[VAR2]@192.168.1.100:18082/api/positions Fonctionne bien via un navigateur en remplaçant VAR1 par le login et VAR2 par le MDP. Avez-vous une idée ? |
Auteur: | opa95 [ 20 Avr 2023 10:49 ] |
Sujet du message: | Re: Capteur HTTP |
Bonjour Onehebergeur
Normalement la box remplace [VAR1] (et VAR2) par le contenu de VAR1 (et de VAR2). Envoie la copie d'écran du panneau de ton capteur HTTP. Depuis ce panneau, appuie sur tester et vérifie la requête utilisée. Si elle est correcte, appuie sur tester dans le panneau de test pour vérifier qu'elle marche. A défaut de comprendre pourquoi, remplace directement dans l'URL de la requête du panneau du capteur HTTP [VAR1] par le texte du login et [VAR2] par le texte du mp ![]() |
Auteur: | Onehebergeur [ 20 Avr 2023 11:12 ] |
Sujet du message: | Re: Capteur HTTP |
J'ai déja fait tout cela, remplacer VAR 1 et 2 ... J'ai ce message : XML error: HTTP 401 Unauthorized - WebApplicationException (SecurityRequestFilter:125 < ...) ![]() http://onehebergeur.com/1.jpg Quand je copie / colle l'url dans un navigateur, cela fonctionne ... |
Auteur: | opa95 [ 20 Avr 2023 13:13 ] |
Sujet du message: | Re: Capteur HTTP |
Bonjour Onehebergeur
D'après la copie d'écran, ton login est eedomus et mp aussi? ![]() |
Auteur: | Onehebergeur [ 24 Avr 2023 12:47 ] |
Sujet du message: | Re: Capteur HTTP |
Merci encore à @opa95 qui m'a réglé mon souci en MP et m'a créer mon script !!! |
Auteur: | opa95 [ 24 Avr 2023 14:09 ] |
Sujet du message: | Re: Capteur HTTP |
Bonjour Onehebergeur
Merci pour ton commentaire. Pour ceux que ça intéresse, le problème venait d'un changement de comportement du serveur qui demandait une autorisation du genre "Basic Authorization" qui est faite par défaut sur les navigateurs récents mais n'a pas été mis à jour dans eedomus. Il faut donc adapter le "header" en lui envoyant le code d'autorisation ($auth) avant la lecture http :
Si la demande est faite directement depuis un navigateur, on peut récupérer le code généré, sinon j'ai utilisé un code javascript (je ne sais pas le faire directement depuis la box en php ![]() ![]() |
Auteur: | thrymartin [ 29 Avr 2023 05:00 ] |
Sujet du message: | Re: [Résolu] Capteur HTTP |
Une page peut bloquer à cause du User Agent aussi, pour ne pas répondre aux requêtes php par exemple, la solution est aussi dans le Header |
Auteur: | opa95 [ 29 Avr 2023 09:24 ] |
Sujet du message: | Re: [Résolu] Capteur HTTP |
Bonjour thrymartin
Dans certains cas, le problème vient effectivement du User Agent, mais pas ici comme précisé dans le message précédent. Il est dommage que la box n'envoie pas automatiquement "Authorization: Basic " comme le font les navigateurs (du moins ceux que j'utilise), ce qui permettrait d'envoyer la requête directement sans faire de script supplémentaire. ![]() |
Auteur: | thrymartin [ 30 Avr 2023 04:28 ] |
Sujet du message: | Re: [Résolu] Capteur HTTP |
Au cas ou, la liste... https://en.wikipedia.org/wiki/List_of_H ... der_fields on y retrouvera "authorization" qui permet à l'user agent de donner login/pass et user-agent qui permet à l'user agent de s'identifier |
Page 1 sur 1 | Le fuseau horaire est UTC+1 heure |
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/ |