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

Parsing d'un JSON de ESPEASY pour les débutants
https://forum.eedomus.com/viewtopic.php?f=15&t=9302
Page 1 sur 1
Auteur:  Jackoncept [ 02 Fév 2020 21:59 ]
Sujet du message:  Parsing d'un JSON de ESPEASY pour les débutants

BOnjour,
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… :geek:

Merci pour votre aide !!
Auteur:  benj70b [ 02 Fév 2020 22:55 ]
Sujet du message:  Re: Parsing d'un JSON de ESPEASY pour les débutants

Le fichier transformer en XML n'est pas valide a cause de <Force_WiFi_B/G> le / ne passe pas !

Sinon avec ESPEsasy tu peux faire du push vers l'eedomus ex: de ma conf avec les sonoff

Dans controllers :
dans ip controller mettre l'ip de l'eedomus
et dans controller publish
Code : Tout sélectionner
api/set?ction=periph.value&periph_id=%id%&value=%value%&api_user=XXXXX&api_secret=YYYYYY&update_only=1



esp1.png
esp1.png (27.58 Kio) Consulté 956 fois


et dans device :
Mettre le code API de ton periph eedomus dans IDX
esp2.png
esp2.png (20.75 Kio) Consulté 956 fois
Auteur:  Jackoncept [ 02 Fév 2020 23:24 ]
Sujet du message:  Re: Parsing d'un JSON de ESPEASY pour les débutants

en 1 mot : GENIAL !!!!

Merci bcp :!: :!: :!: :!: :!:
Auteur:  Jackoncept [ 22 Mars 2020 11:11 ]
Sujet du message:  Re: Parsing d'un JSON de ESPEASY pour les débutants

Hello,
J'en profite de ta maitrise du lien eedomus <-> espeasy pour poser la question suivante :

J'aimerai faire l'inverse : récuperer une donnée d'un périphérique de l'eedomus dans un ESP flashé avec ESPEasy. j'ai beau avoir fouillé je ne sais pas si c'est possible ? :?:

Bon Dimanche à tous!
Auteur:  benj70b [ 25 Mars 2020 22:39 ]
Sujet du message:  Re: Parsing d'un JSON de ESPEASY pour les débutants

bonjour, par defaut on ne peut pas faire , il faut developper un plugin espeasy.
Page 1 sur 1 Le fuseau horaire est UTC+1 heure