je bricole plein de module avec ESPEasy et le dernier en date me permet de mesurer la production, la tension et l'intensité d'un appareil éléctrique.
En allant sur l'IP de l'appareil et en ajoutant /Json à l'url j'obtiens ce fichier :
- Code : Tout sélectionner
{"System":{
"Build":20104,
"Git Build":"",
"System Libraries":"ESP82xx Core bc204a9b, NONOS SDK 2.2.2-dev(38a443e), LWIP: 2.1.2 PUYA support",
"Plugins":48,
"Plugin description":" [Normal]",
"Local Time":"1970-00-00 00:00:00",
"Unit Number":0,
"Unit Name":"ESP_Easy",
"Uptime":199,
"Last Boot Cause":"Cold boot",
"Reset Reason":"External System",
"Load":11.60,
"Load LC":3025,
"CPU Eco Mode":"false",
"Heap Max Free Block":17384,
"Heap Fragmentation":10,
"Free RAM":19264
},
"WiFi":{
"Hostname":"ESP-Easy-0",
"IP Config":"Static",
"IP Address":"10.0.1.114",
"IP Subnet":"255.255.255.0",
"Gateway":"10.0.1.1",
"STA MAC":"BC:DD:C2:B6:75:37",
"DNS 1":"10.0.1.1",
"DNS 2":"(IP unset)",
"SSID":"LJ007",
"BSSID":"58:90:43:A5:7A:54",
"Channel":1,
"Connected msec":11922986,
"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":-77
},
"Sensors":[
{
"TaskValues": [
{"ValueNumber":1,
"Name":"Voltage_(V)",
"NrDecimals":2,
"Value":238.20
},
{"ValueNumber":2,
"Name":"Current_(A)",
"NrDecimals":2,
"Value":0.12
},
{"ValueNumber":3,
"Name":"Power_(W)",
"NrDecimals":2,
"Value":1.10
},
{"ValueNumber":4,
"Name":"Energy_(WH)",
"NrDecimals":2,
"Value":0.04
}],
"DataAcquisition": [
{"Controller":1,
"IDX":0,
"Enabled":"false"
},
{"Controller":2,
"IDX":0,
"Enabled":"false"
},
{"Controller":3,
"IDX":0,
"Enabled":"false"
}],
"TaskInterval":2,
"Type":"PZEM-004Tv30-Multiple",
"TaskName":"PZEM",
"TaskDeviceNumber":251,
"TaskEnabled":"true",
"TaskNumber":1
}
],
"TTL":2000
}
A partir de là j'ai su créer un retour d'état HTTP dans eedomus, cliquer sur l'option convertir JSON en XML mais après je suis bloqué :
Comment récupérer la valeur des 4 paramètres qui m'intéresse (Power_W / Current_(A) / Energy_Wh.
Value de ValueNumber 1, 2, 3, 4 ?
La seule valeur que je sais récuperer en mettant /Value c'est la tension. Soit le premier ValueNumber.
J'ai tenté de mettre les valeurs suivantes dans Xpath :
//TaskValues[2]/Value
//Value[2]
J'ai fait des dizaines de recherches sur comment "Parser" un fichier XML mais je ne m'en sors pas…
Merci pour votre aide !!