[2023.1] envois via API json ne fonctionne plus
Publié : 27 févr. 2023, 15:40
Bonjour,
J'ai fait la mise a jours vers la dernière version. je pense avoir bien lu la documentation. j'ai créé mon user avec le mot de passe et j'ai coché le paramètre "autoriser l'authentification Basic-Auth sur du pur HTTP (API seulement)" qui est sensé permetre l'envoi de données via l'API sans authentification.
Si je passe une commande sur mon mac via safari (http://ipdemondomoticz:8080/json.....) ça fonctionne très bien.
Par contre j'ai des arduino et des ESP qui m'envoient des données via l'API JSON et la, ça ne fonctionne pas.
si je regarde dans le moniteur série Arduino je vois des réponses "HTTP/1.1 401 Unauthorized" sur mes requêtes GET
Quelqu'un a t'il rencontré le même problème ou a une idée de la solution?
Merci d'avance
ci-dessous la procédure d'envoie sur un ESP (la variable url contient la commande JSON)
J'ai fait la mise a jours vers la dernière version. je pense avoir bien lu la documentation. j'ai créé mon user avec le mot de passe et j'ai coché le paramètre "autoriser l'authentification Basic-Auth sur du pur HTTP (API seulement)" qui est sensé permetre l'envoi de données via l'API sans authentification.
Si je passe une commande sur mon mac via safari (http://ipdemondomoticz:8080/json.....) ça fonctionne très bien.
Par contre j'ai des arduino et des ESP qui m'envoient des données via l'API JSON et la, ça ne fonctionne pas.
si je regarde dans le moniteur série Arduino je vois des réponses "HTTP/1.1 401 Unauthorized" sur mes requêtes GET
Quelqu'un a t'il rencontré le même problème ou a une idée de la solution?
Merci d'avance
ci-dessous la procédure d'envoie sur un ESP (la variable url contient la commande JSON)
Code : Tout sélectionner
void envoi_domoticz(String url)
{
Serial.print(F("connection à "));
Serial.println(host_domoticz);
WiFiClient client;
const int httpPort_domoticz = 8080;
if (!client.connect(host_domoticz, httpPort_domoticz)) {
Serial.println(F("Echec connection"));
return;
}
Serial.print(F("Requete URL: "));
Serial.println(url);
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host_domoticz + "\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(F(">>> Client Timeout !"));
client.stop();
return;
}
}
env_dht = millis();
// Lecture réponse serveur;
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println(F("Fermeture connexion"));
}