ESPEasy bouton + temperature

Capteurs et actionneurs HTTP

ESPEasy bouton + temperature

Messagepar Benji206 » 23 Août 2019 11:48

Bonjour j'ai installé espeasy sur un mini arduino, avec un bouton et un capteur de temperature.
J'aimerai récupéré l'état du bouton et la température sur eedomus mais je me perd dans la formule XPath.

Voila se que je récupère:

Code : Tout sélectionner
{"System":{
"Build":20103,
"Git Build":"mega-20190817",
"System Libraries":"ESP82xx Core 2_5_2, NONOS SDK 2.2.1(cfd48f3), LWIP: 2.1.2 PUYA support",
"Plugins":48,
"Plugin description":" [Normal]",
"Local Time":"1970-00-00 00:00:00",
"Unit Number":1,
"Unit Name":"Bouton_garage",
"Uptime":168,
"Last Boot Cause":"Manual reboot",
"Reset Reason":"External System",
"Load":12.90,
"Load LC":4254,
"CPU Eco Mode":"false",
"Heap Max Free Block":18656,
"Heap Fragmentation":11,
"Free RAM":20920
},
"WiFi":{
"Hostname":"Bouton-garage-1",
"IP Config":"DHCP",
"IP Address":"192.168.1.56",
"IP Subnet":"255.255.255.0",
"Gateway":"192.168.1.254",
"STA MAC":"3C:71:BF:28:D7:32",
"DNS 1":"192.168.1.254",
"DNS 1":"192.168.1.254",
"SSID":"Benjamin",
"BSSID":"F8:AB:05:08:1A:D0",
"Channel":1,
"Connected msec":10068963,
"Last Disconnect Reason":1,
"Last Disconnect Reason str":"(1) Unspecified",
"Number Reconnects":0,
"Force WiFi B/G":"false",
"Restart WiFi Lost Conn":"false",
"Force WiFi No Sleep":"false",
"Periodical send Gratuitous ARP":"false",
"Connection Failure Threshold":0,
"RSSI":-75
},
"Sensors":[
{
"TaskValues": [
{"ValueNumber":1,
"Name":"switch",
"NrDecimals":0,
"Value":1
}],
"DataAcquisition": [
{"Controller":1,
"IDX":0,
"Enabled":"true"
},
{"Controller":2,
"IDX":0,
"Enabled":"false"
},
{"Controller":3,
"IDX":0,
"Enabled":"false"
}],
"TaskInterval":0,
"Type":"Switch input - Switch",
"TaskName":"bouton_lumieres",
"TaskDeviceNumber":1,
"TaskEnabled":"true",
"TaskNumber":1
},
{
"TaskValues": [
{"ValueNumber":1,
"Name":"Temperature",
"NrDecimals":2,
"Value":25.00
}],
"DataAcquisition": [
{"Controller":1,
"IDX":0,
"Enabled":"true"
},
{"Controller":2,
"IDX":0,
"Enabled":"false"
},
{"Controller":3,
"IDX":0,
"Enabled":"false"
}],
"TaskInterval":60,
"Type":"Environment - DS18b20",
"TaskName":"Temp",
"TaskDeviceNumber":4,
"TaskEnabled":"true",
"TaskNumber":2
}
],
"TTL":60000
}


Se que je veux récupérer l'état du Sensors switch et le sensors température.
Sur mon Xpath pour la température pas exemple je met : //Sensors[2]/TaskValues/Value
Résulat ERREUR: Valeur lue vide

Je n'arrive pas a trouver la bonne formule...

Merci d'avance de l'aide
Benji206
 
Messages : 34
Inscription : 12 Juin 2019

Re: ESPEasy bouton + temperature

Messagepar xeos » 23 Août 2019 22:51

Salut

Ce que tu recupere est du Json il faut deja que tu le transforme en XML.

Le xpath doit être je pense /Sensors/Sensors[2]/TaskValues/Sensors/Value/ et /Sensors/Sensors[1]/TaskNumber/

et si tu veux avoir une valeur 0-100 tu multiplie (/Sensors/Sensors[1]/TaskNumber/) * 100
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: ESPEasy bouton + temperature

Messagepar Benji206 » 24 Août 2019 10:25

Oui j'ai mis le json mais je le transforme bien en xml.

Code : Tout sélectionner
<?xml version="1.0" encoding="ISO-8859-1"?>
<root><System><Build>20103</Build>
<Git_Build>mega-20190817</Git_Build>
<System_Libraries>ESP82xx Core 2_5_2, NONOS SDK 2.2.1(cfd48f3), LWIP: 2.1.2 PUYA support</System_Libraries>
<Plugins>48</Plugins>
<Plugin_description> [Normal]</Plugin_description>
<Local_Time>1970-00-00 00:00:00</Local_Time>
<Unit_Number>1</Unit_Number>
<Unit_Name>Bouton_garage</Unit_Name>
<Uptime>2</Uptime>
<Last_Boot_Cause>Manual reboot</Last_Boot_Cause>
<Reset_Reason>External System</Reset_Reason>
<Load>11.9</Load>
<Load_LC>4428</Load_LC>
<CPU_Eco_Mode>false</CPU_Eco_Mode>
<Heap_Max_Free_Block>19528</Heap_Max_Free_Block>
<Heap_Fragmentation>7</Heap_Fragmentation>
<Free_RAM>20960</Free_RAM>
</System>
<WiFi><Hostname>Bouton-garage-1</Hostname>
<IP_Config>DHCP</IP_Config>
<IP_Address>192.168.1.56</IP_Address>
<IP_Subnet>255.255.255.0</IP_Subnet>
<Gateway>192.168.1.254</Gateway>
<STA_MAC>3C:71:BF:28:D7:32</STA_MAC>
<DNS_1>192.168.1.254</DNS_1>
<SSID>Benjamin</SSID>
<BSSID>F8:AB:05:08:1A:D0</BSSID>
<Channel>1</Channel>
<Connected_msec>130517</Connected_msec>
<Last_Disconnect_Reason>1</Last_Disconnect_Reason>
<Last_Disconnect_Reason_str>(1) Unspecified</Last_Disconnect_Reason_str>
<Number_Reconnects>0</Number_Reconnects>
<Force_WiFi_B/G>false</Force_WiFi_B/G>
<Restart_WiFi_Lost_Conn>false</Restart_WiFi_Lost_Conn>
<Force_WiFi_No_Sleep>false</Force_WiFi_No_Sleep>
<Periodical_send_Gratuitous_ARP>false</Periodical_send_Gratuitous_ARP>
<Connection_Failure_Threshold>0</Connection_Failure_Threshold>
<RSSI>-73</RSSI>
</WiFi>
<Sensors><Sensors><TaskValues><Sensors><ValueNumber>1</ValueNumber>
<Name>switch</Name>
<NrDecimals>0</NrDecimals>
<Value>1</Value>
</Sensors>
</TaskValues>
<DataAcquisition><Sensors><Controller>1</Controller>
<IDX>0</IDX>
<Enabled>true</Enabled>
</Sensors>
<Sensors><Controller>2</Controller>
<IDX>0</IDX>
<Enabled>false</Enabled>
</Sensors>
<Sensors><Controller>3</Controller>
<IDX>0</IDX>
<Enabled>false</Enabled>
</Sensors>
</DataAcquisition>
<TaskInterval>0</TaskInterval>
<Type>Switch input - Switch</Type>
<TaskName>bouton_lumieres</TaskName>
<TaskDeviceNumber>1</TaskDeviceNumber>
<TaskEnabled>true</TaskEnabled>
<TaskNumber>1</TaskNumber>
</Sensors>
<Sensors><TaskValues><Sensors><ValueNumber>1</ValueNumber>
<Name>Temperature</Name>
<NrDecimals>2</NrDecimals>
<Value>25</Value>
</Sensors>
</TaskValues>
<DataAcquisition><Sensors><Controller>1</Controller>
<IDX>0</IDX>
<Enabled>true</Enabled>
</Sensors>
<Sensors><Controller>2</Controller>
<IDX>0</IDX>
<Enabled>false</Enabled>
</Sensors>
<Sensors><Controller>3</Controller>
<IDX>0</IDX>
<Enabled>false</Enabled>
</Sensors>
</DataAcquisition>
<TaskInterval>60</TaskInterval>
<Type>Environment - DS18b20</Type>
<TaskName>Temp</TaskName>
<TaskDeviceNumber>4</TaskDeviceNumber>
<TaskEnabled>true</TaskEnabled>
<TaskNumber>2</TaskNumber>
</Sensors>
</Sensors>
<TTL>60000</TTL>
</root>


Avec /Sensors/Sensors[2]/TaskValues/Sensors/Value/ ca me met ERREUR: Expression xpath invalide
et avec /Sensors/Sensors[1]/TaskNumber/ ca me met ERREUR: Expression xpath invalide.

J'ai aussi essayé /Sensors/Sensors[2]/TaskValues/Sensors/Value et ca me met valeur vide.

J'ai vraiment du mal avec le xpath.
Merci de l'aide
Benji206
 
Messages : 34
Inscription : 12 Juin 2019

Re: ESPEasy bouton + temperature

Messagepar xeos » 24 Août 2019 11:33

Alors essaye /root/Sensors/Sensors[2]/TaskValues/Sensors/Value
Je suis Fou et insatiable
xeos
 
Messages : 836
Inscription : 02 Sep 2017
Localisation : Alsace

Re: ESPEasy bouton + temperature

Messagepar Benji206 » 24 Août 2019 11:36

xeos a écrit:Alors essaye /root/Sensors/Sensors[2]/TaskValues/Sensors/Value


Toujours pareil valeur lue vide
Benji206
 
Messages : 34
Inscription : 12 Juin 2019

Re: ESPEasy bouton + temperature

Messagepar Benji206 » 24 Août 2019 16:54

A force de bidouille j'ai réussi.
J'ai modiflé url de requête pour avoir un xml beaucoup plus petit et du coup un xpath plus simple.
Benji206
 
Messages : 34
Inscription : 12 Juin 2019

Re: ESPEasy bouton + temperature

Messagepar Michteedo » 02 Fév 2021 21:14

Bonjour, vous avez trouvé; j'aurais aimé un exemple, merci....
Michteedo
 
Messages : 107
Inscription : 24 Avr 2018


Retour vers Requêtes HTTP

Qui est en ligne ?

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