Esp8266 requete vers eedomus

Capteurs et actionneurs HTTP

Esp8266 requete vers eedomus

Messagepar gillesm57 » 27 Août 2020 17:54

Salut Tout le monde,

J'ai acheter un capteur de debit à impulsion de type YF-B1 que je connecte à un ESP8266 et je voudrais voir ma consommation d'eau journalière et instantanée dans eedomus via un capteur virtuel, mais je n'y arrive pas n'étant pas un grand spécialiste du langage arduino...

J'ai réussi a faire un bout de code (avec de nombreuses recherches google...) qui m'envoie ces donnée vers un site intermédiaire: "https://thingspeak.com/" et de la je récupère via eedomus un capteur les valeurs, mais je voudrais récupérer les valeur dans eedomus directement depuis l'arduino (le Esp8266), mais la je me perd dans les bouts de code que je trouve y a t il quelqu'un pour me guider un peu, merci... :)
j'ai ça qui me transmet les bonnes valeurs sur thingspeak comment transformer pour l'envoyer sur eedomus?

Code : Tout sélectionner
if (client.connect("api.thingspeak.com",80)) // "184.106.153.149" or api.thingspeak.com
  {
    String postStr = apiKey;
      postStr += "&field1=";
      postStr += String(float(flowRate));
      postStr += "&field2=";
      postStr += String(totalLitres);
      postStr += "\r\n\r\n";

/
    client.print("POST /update HTTP/1.1\n");
    client.print("Host: api.thingspeak.com\n");
    client.print("Connection: close\n");
    client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
    client.print("Content-Type: application/x-www-form-urlencoded\n");
    client.print("Content-Length: ");
    client.print(postStr.length());
    client.print("\n\n");
    client.print(postStr);
   
  }
    client.stop();
}


Et dans l'Eedomus j'ai ce capteur virtuel:
Capture d’écran 2020-08-27 à 18.50.53.png
Capture d’écran 2020-08-27 à 18.50.53.png (111.43 Kio) Consulté 5652 fois
1x Eedomus
1x SF812/2x cons+photov Cartelec XBEEPRO2/1x prise AN157-6/1x capt t° ST814/1x détect EZmotion/4x prises+conso AN158-6/2x commut dbl FGS-211/9x commut volets FGR-221/1x module varia FGD-211/1x detect SP814/1x capt DSB05/1x Karotz
gillesm57
 
Messages : 49
Inscription : 21 Nov 2012
Localisation : St Avold

Re: Esp8266 requete vers eedomus

Messagepar benj70b » 27 Août 2020 22:54

bonsoir,

y'a plusieurs façons, la plus simple l'api eedomus

https://IP_OF_YOUR_BOX/api/set?action=periph.value....

voici le lien vers la doc: https://doc.eedomus.com/view/API_eedomus

Dans ton code, il faudra que tu remplace ton POST par un GET
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 : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: Esp8266 requete vers eedomus

Messagepar gillesm57 » 28 Août 2020 18:02

Bonjour,

Merci pour la réponse, mais justement je suis aller voir sur la doc api eedomus, mais je ne comprends pas trop comment adapter la forme de l'adresse https://IP_OF_YOUR_BOX/api/set?action=periph.value.... à une forme pour l'arduino ou l'esp8266 du genre:
Code : Tout sélectionner
client.print("POST /update HTTP/1.1\n");
    client.print("Host: api.thingspeak.com\n");
    client.print("Connection: close\n");
    client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
    client.print("Content-Type: application/x-www-form-urlencoded\n");
    client.print("Content-Length: ");
    client.print(postStr.length());
    client.print("\n\n");
    client.print(postStr)


il me faudrais un exemple sous cette forme avec l'api eedomus si c'est possible?? :?

merci
1x Eedomus
1x SF812/2x cons+photov Cartelec XBEEPRO2/1x prise AN157-6/1x capt t° ST814/1x détect EZmotion/4x prises+conso AN158-6/2x commut dbl FGS-211/9x commut volets FGR-221/1x module varia FGD-211/1x detect SP814/1x capt DSB05/1x Karotz
gillesm57
 
Messages : 49
Inscription : 21 Nov 2012
Localisation : St Avold

Re: Esp8266 requete vers eedomus

Messagepar gillesm57 » 06 Sep 2020 19:58

Bon je crois qu'avec cette box eedomus cela ne marche pas, j'ai trouver avec Jeedom cela fonctionne mais eedomus rien ne marche il y a une fonction sendtojeedom et rien pour l'api eedomus personne ne s'est?
1x Eedomus
1x SF812/2x cons+photov Cartelec XBEEPRO2/1x prise AN157-6/1x capt t° ST814/1x détect EZmotion/4x prises+conso AN158-6/2x commut dbl FGS-211/9x commut volets FGR-221/1x module varia FGD-211/1x detect SP814/1x capt DSB05/1x Karotz
gillesm57
 
Messages : 49
Inscription : 21 Nov 2012
Localisation : St Avold

Re: Esp8266 requete vers eedomus

Messagepar benj70b » 06 Sep 2020 23:58

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 : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: Esp8266 requete vers eedomus

Messagepar gillesm57 » 12 Sep 2020 16:34

Merci je suis aller faire un tour, mais je n'est rien trouver pour eedomus, pour domoticz tout y est.

en fait si je suis la même méthode que pour domoticz l'url domoticz doit être:
http://#IP_SERVER#/json.htm?type=command&param=udevice&idx=111&nvalue=0&svalue=26

mais le lorsque je creer un capteur sur l'eedomus le capteur virtuel me demande l'url de la requette et xpath mais pas domoticz je doit mettre quoi dans ces 2 champs? ou il faut creer un actioneur sur eedomus et non pas un capteur?
1x Eedomus
1x SF812/2x cons+photov Cartelec XBEEPRO2/1x prise AN157-6/1x capt t° ST814/1x détect EZmotion/4x prises+conso AN158-6/2x commut dbl FGS-211/9x commut volets FGR-221/1x module varia FGD-211/1x detect SP814/1x capt DSB05/1x Karotz
gillesm57
 
Messages : 49
Inscription : 21 Nov 2012
Localisation : St Avold

Re: Esp8266 requete vers eedomus

Messagepar benj70b » 14 Sep 2020 08:48

Bonjour,

Comme indiqué dans ton post, tu souhaites envoyé des données de ton esp8266 vers l'eedomus (se sera donc un capteur pour l'eedomus).

- active le mode expert sur l'eedomus : https://doc.eedomus.com/view/Mode_Expert
- obtient également tes identifiants API (c'est sur la meme page)
- crée un capture virtuel de type "Etat" dans l'eedomus
- choisi ensuite son usage (ex : Autre Indicateur - Capteur) et le type de données (ex : nombre décimal) = [USER] et [SECRET]
- note ensuite son code API dans les paramètres expert = [API]

ensuite, l'url a appeler dans ton esp8266 sera du type :

http://[IP EEDOMUS]/api/set?action=periph.value&periph_id=[API]&value=[VALEUR]&&api_user=[USER]&api_secret=[SECRET]

[VALEUR] = la valeur à envoyer

voila avec ça tu devrais t'en sortir
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 : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: Esp8266 requete vers eedomus

Messagepar gillesm57 » 14 Sep 2020 17:37

Bonjour,

Merci benj70b,
Je ne sais pas si c'est moi mais cela ne fonctionne pas j'ai essayer avec une seule valeur "5902" sans variables pour l'instant, mais rien ne s'affiche, dans l'esp8266 j'ai mis ça:
Code : Tout sélectionner
.client.print("http://192.168.0.10/api/set?action=periph.value&periph_id=xxxxxxxx&value=5902&&api_user=xxxxxxxx&api_secret=xxxxxxxxxxxxxxx");


les xxxx je les ai remplacés par les valeurs correspondantes, l'API du périphérique virtuel nouvellement créé, les secret et api user je les avaient je les ai a nouveau générés.
-Mode expert ok il etait activé OK
-mes identifiants API je les avaient OK.
-je viens de creer un capteur virtuel "etat" viens de le faire OK.
- Usage j'ai mis compteur d'eau "capteur" et type de données nombre décimal

je ne vois pas ou j'ai fais l'erreur :shock: je dois être lourd je pense... :?:
1x Eedomus
1x SF812/2x cons+photov Cartelec XBEEPRO2/1x prise AN157-6/1x capt t° ST814/1x détect EZmotion/4x prises+conso AN158-6/2x commut dbl FGS-211/9x commut volets FGR-221/1x module varia FGD-211/1x detect SP814/1x capt DSB05/1x Karotz
gillesm57
 
Messages : 49
Inscription : 21 Nov 2012
Localisation : St Avold

Re: Esp8266 requete vers eedomus

Messagepar benj70b » 14 Sep 2020 20:06

p'etre un truc comme ca ;) :

Code : Tout sélectionner
 
if (client.connect("192.168.0.10",80))
 {
....
client.print("GET /api/set?action=periph.value&periph_id=xxxxxxxx&value=5902&&api_user=xxxxxxxx&api_secret=xxxxxxxxxxxxxxx HTTP/1.1\n");
 client.print("Host: 192.168.0.10\n");
 client.print("Connection: close\n");

...
}


sinon le plus simple c'est que tu m'envoie ton code en MP (sans ton user et mot de passe API), j'ai te faire un exemple avec les librairies que tu utilises.
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 : 294
Inscription : 20 Jan 2014
Localisation : 89

Re: Esp8266 requete vers eedomus

Messagepar gillesm57 » 14 Sep 2020 20:59

:P

Je viens de trouver un truc qui fonctionne merci benj70b.

j'ai mis ça dans l'esp:
Code : Tout sélectionner
.const char* host = "api.eedomus.com";
String url = "/set?action=periph.value&periph_id=";
url += periph_id1;
url += "&value=";
url += totalLitres;
url += "&&api_user=";
url += apiUser;
url += "&api_secret=";
url += apiKey;
// envoie requête eedomus
    client.print(String("SET ") + url + " HTTP/1.1\r\n" +
                  "Host: " + host + "\r\n" +
                  "Connection: close\r\n\r\n");


Et avec ça je reçois bien ma variable totalLitres dans l'eedomus enfin, après plusieurs semaines de recherche :D et aussi l'erreur que je faisais c'était le périphérique virtuel je faisais toujours un périphérique virtuel qui me demandais xpath et adresse et la je ne savais pas quoi mettre et Benj70b tu ma aider merci quand tu as écrit de creer un périphérique virtuel d'etat, moi je faisais toujours un capteur http :?

Bon maintenant la suite :oops:
de cette façon comment je peux faire pour envoyer 2 url 's sur 2 périphériques virtuels j'ai essayer en nommant url et pour le 2e url1 mais ça ne fonctionne pas une idée?

Merci
1x Eedomus
1x SF812/2x cons+photov Cartelec XBEEPRO2/1x prise AN157-6/1x capt t° ST814/1x détect EZmotion/4x prises+conso AN158-6/2x commut dbl FGS-211/9x commut volets FGR-221/1x module varia FGD-211/1x detect SP814/1x capt DSB05/1x Karotz
gillesm57
 
Messages : 49
Inscription : 21 Nov 2012
Localisation : St Avold

Re: Esp8266 requete vers eedomus

Messagepar benj70b » 14 Sep 2020 23:40

pour simplifier ton bout de code regarde du cote de la classe HTTPClient, ca sera plus simple :)

https://techtutorialsx.com/2016/07/17/e ... -requests/

je te conseille de suivre quelques cours de programmation pour l'esp8266 (en ligne par exemple) liée au protocole HTTP et au C, je pense que cela pourrait être utile :mrgreen:
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 : 294
Inscription : 20 Jan 2014
Localisation : 89


Retour vers Requêtes HTTP

Qui est en ligne ?

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