Parsing d'un JSON de ESPEASY pour les débutants

Capteurs et actionneurs HTTP

Parsing d'un JSON de ESPEASY pour les débutants

Messagepar Jackoncept » 02 Fév 2020 21:59

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 !!
Jackoncept
 
Messages : 31
Inscription : 06 Sep 2017
Localisation : Suisse

Re: Parsing d'un JSON de ESPEASY pour les débutants

Messagepar benj70b » 02 Fév 2020 22:55

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é 2137 fois


et dans device :
Mettre le code API de ton periph eedomus dans IDX
esp2.png
esp2.png (20.75 Kio) Consulté 2137 fois
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 290
Inscription : 20 Jan 2014
Localisation : 89

Re: Parsing d'un JSON de ESPEASY pour les débutants

Messagepar Jackoncept » 02 Fév 2020 23:24

en 1 mot : GENIAL !!!!

Merci bcp :!: :!: :!: :!: :!:
Jackoncept
 
Messages : 31
Inscription : 06 Sep 2017
Localisation : Suisse

Re: Parsing d'un JSON de ESPEASY pour les débutants

Messagepar Jackoncept » 22 Mars 2020 11:11

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!
Jackoncept
 
Messages : 31
Inscription : 06 Sep 2017
Localisation : Suisse

Re: Parsing d'un JSON de ESPEASY pour les débutants

Messagepar benj70b » 25 Mars 2020 22:39

bonjour, par defaut on ne peut pas faire , il faut developper un plugin espeasy.
Eedomus + | Domoticz | Mosquitto | Node Red | deCONZ | EspEasy | Conbee II | Rfxcom | Esp32 | Esp8266 | Alexa | Harmony

[Store] : deCONZ - Actionneurs & Capteurs / Domoticz Events / MiLight v4 & v6 / Sonoff Mini / Etats de batteries
benj70b
 
Messages : 290
Inscription : 20 Jan 2014
Localisation : 89

Re: Parsing d'un JSON de ESPEASY pour les débutants

Messagepar donDams » 05 Nov 2020 16:33

benj70b a écrit:Mettre le code API de ton periph eedomus dans IDX


Bonjour,
Quel type de périphérique créer dans eedomus et comment le paramétrer?
Merci
donDams
 
Messages : 114
Inscription : 25 Fév 2017

Re: Parsing d'un JSON de ESPEASY pour les débutants

Messagepar donDams » 06 Nov 2020 18:44

Mon problème est le suivant:
J'ai connecté un capteur de présence à un wemos D1 mini que j'ai flasher avec Espeasy Mega.
J'arrive à récupérer l'info, et je veux la transmettre à ma box Eedomus.
Mais ça ne fonctionne pas. J'ai essayé avec un capteur HTTP et j'arrive bien à récupérer l'état en écrivant un requête json mais impossible de faire lire cet état à la box.
De plus je suis intéressé par la fonction "push" du wemos mais je n'arrive pas à la mettre en œuvre.
si quelqu'un à des idées je suis preneur.

merci

Damien
donDams
 
Messages : 114
Inscription : 25 Fév 2017

Re: Parsing d'un JSON de ESPEASY pour les débutants

Messagepar Goupil54 » 19 Avr 2021 18:03

Bonjour, je vois que vous êtes des pro eedomus <-> ESP easy, j'ai plusieurs sonoff basic qui fonctionne très bien. Je viens d'acheter un sonoff POW R2 que je me suis empressé de flasher avec ESP Easy. Comme les sonoff basic pas de souci pour activer le relais depuis la box ou le bouton. Maintenant je voudrais récupérer les infos de puissance, tension, intensité mais je pense que je n'ai pas le bon firmware... j'ai une puce CSE 7759B sur mon sonoff mais dans mon ESP Easy, je n'ai rien qui correspond à cette puce, donc aucune info ne remonte... Si quelqu'un a un firmware qui fonctionne bien pour le sonoff POW R2 est-ce que vous pourriez me mettre un lien pour que je le charge et enfin exploiter ce module avec ma box? Merci d'avance
Goupil54
 
Messages : 66
Inscription : 10 Juil 2015
Localisation : Lorraine

Re: Parsing d'un JSON de ESPEASY pour les débutants

Messagepar Michteedo » 20 Avr 2021 04:59

Bonjour,
j'ai fait se que vous dites; mais après? on li le fichier Xml?
et l'adresse d Eedomus, c est celle de secours?
et le code API, ou le trouve t on?
MI
Michteedo
 
Messages : 76
Inscription : 24 Avr 2018

Re: Parsing d'un JSON de ESPEASY pour les débutants

Messagepar merguez07 » 20 Avr 2021 07:51

Bonjour Michteedo,

Michteedo a écrit:j'ai fait se que vous dites


tu parles de la config espeasy proposée par benj70b ?

si oui :
Michteedo a écrit:et l'adresse d Eedomus, c est celle de secours?

oui c'est l'adresse IP de ta box Eedomus

Michteedo a écrit:mais après? on li le fichier Xml?

Non, la valeur est directement implantée dans le capteur http désigné

Michteedo a écrit:et le code API, ou le trouve t on?


tu parles de quel code API ?
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2093
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche


Retour vers Requêtes HTTP

Qui est en ligne ?

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