Page 1 sur 1

API Domoticz et ESP8266

Publié : 16 juil. 2023, 23:00
par kelfoun
Bonjour à tous,

Je suis tout nouveau sur arduino, en fait je n'ai jamais programmé sur un arduino original ( Atmel/Microchip AVR ), je commence avec un ESP8266.
L'idée est de créer mes propres capteurs et d'utiliser l'API domoticz pour envoyer les données.

Pour cela j'ai suivi cette video : https://www.youtube.com/watch?v=Tx1G_40WfQs
avec ce code :
https://github.com/DomoticDIY/API-ModuleTemp_DS18B20

J'ai d'abord essayé avec un ESP8266 auquel j'envoie des commandes AT depuis un terminal du PC mais ça ne fonctionne pas.
J'ai donc chargé le code ci dessus directement dans un ESP8266 mais ça ne fonctionne pas non plus.
Dans les deux cas j'ai bien les messages qui sont formés correctement et envoyés à Domoticz mais Domoticz ne met pas à jours le capteur de température.

Pourtant si je rentre cette commande directement dans mon navigateur, domoticz met a jour immédiatement le capteur :

Code : Tout sélectionner

http://192.168.2.200:8080/json.htm?type=command&param=udevice&idx=1&nvalue=0&svalue=32
J'ai bien sur changé le code pour y mettre mes infos réseau. D'ailleurs en faisant n'importe quoi ( comme modifier la syntaxe de la commande dans le cas du code Arduino ), je peux même voir des erreurs apparaitre dans le log domoticz donc ça arrive bien jusque la.
Seulement quand je laisse les commandes d'origine, rien ne se passe, ni erreur dans le log Domoticz ou dans la console arduino, mais ni mise a jour des capteurs.

Est ce que quelqu'un voit d'ou cela pourrait venir ?

Merci pour votre aide :)

Re: API Domoticz et ESP8266

Publié : 17 juil. 2023, 12:20
par Keros
Bonjour kelfoun et bienvenu sur le forum :)

Je viens de déplacé ton sujet dans la section dédiée au DIY.

Re: API Domoticz et ESP8266

Publié : 17 juil. 2023, 14:41
par mike913
Bonjour,
Une chose me choque dans ton script c'est qu'il n'attend pas la réponse du serveur.
Pour ma station météo j'utilise des ESP8266 (NodeMCU 1.0 (ESP-12E Module) et voici le script que j'utilise pour envoyer les données sur mon serveur web

Code : Tout sélectionner

//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// Envoie des données
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void Send(String URL) {
  WiFiClient client;
  HTTPClient http;
  int httpCode = 0;
  int i = 1;
  do {
    if (!http.begin(client, URL)) {
      i++;
      if (i > 5) {
        ESP.restart();
      }
    } else {
      httpCode = http.GET();
      String payload = http.getString();
      Serial.println(payload);
    }
    http.end();
  } while (httpCode != 200);
}
il suffit que tu donnes à url la valeur

Code : Tout sélectionner

url = "http://"+ipDomoticz+":"+portDomoticz+"/json.htm?type=command&param=udevice&idx=" + String(idxDevice) + "&nvalue=0&svalue=" + String(valTemp);
sans oublier de rajouter les lignes:

Code : Tout sélectionner

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>

Re: API Domoticz et ESP8266

Publié : 21 juil. 2023, 20:06
par kelfoun
Bonjour,

J'ai réussi à mettre à jour la valeur du capteur de température.
J'ai juste ajouté un réseau de confiance en indiquant l'IP de l'ESP8266 dans domoticz et maintenant c'est ok :D

Il faudrait que j'arrive pour la science a authentifier proprement l'ESP8266 auprès de domoticz mais au moins je sais que tout ça fonctionne.

Merci pour ton aide :)