Forum eedomus
https://forum.eedomus.com/

ESPEasy bouton + temperature
https://forum.eedomus.com/viewtopic.php?f=15&t=8806
Page 1 sur 1
Auteur:  Benji206 [ 23 Août 2019 11:48 ]
Sujet du message:  ESPEasy bouton + temperature

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
Auteur:  xeos [ 23 Août 2019 22:51 ]
Sujet du message:  Re: ESPEasy bouton + temperature

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
Auteur:  Benji206 [ 24 Août 2019 10:25 ]
Sujet du message:  Re: ESPEasy bouton + temperature

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
Auteur:  xeos [ 24 Août 2019 11:33 ]
Sujet du message:  Re: ESPEasy bouton + temperature

Alors essaye /root/Sensors/Sensors[2]/TaskValues/Sensors/Value
Auteur:  Benji206 [ 24 Août 2019 11:36 ]
Sujet du message:  Re: ESPEasy bouton + temperature

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


Toujours pareil valeur lue vide
Auteur:  Benji206 [ 24 Août 2019 16:54 ]
Sujet du message:  Re: ESPEasy bouton + temperature

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.
Auteur:  Michteedo [ 02 Fév 2021 21:14 ]
Sujet du message:  Re: ESPEasy bouton + temperature

Bonjour, vous avez trouvé; j'aurais aimé un exemple, merci....
Page 1 sur 1 Le fuseau horaire est UTC+1 heure