Page 2 sur 4

Re: Domoticz vers ESP8266

Publié : 15 déc. 2022, 17:24
par fcBourgogne
Tu peux afficher le payload du moniteur serie IDE Arduino.

Les valeurs ne sont certainement pas entre crochets [].

A+

Re: Domoticz vers ESP8266

Publié : 15 déc. 2022, 18:00
par Doudy
fcBourgogne a écrit : 15 déc. 2022, 17:24 Tu peux afficher le payload du moniteur serie IDE Arduino.
Excuse mon ignorance, mais je pense que c'est ceci ! :oops:

Code : Tout sélectionner

17:55:44.872 -> ............
17:55:51.087 -> Connected to WiFi network with IP Address : 192.168.1.6
17:55:51.087 -> Timer set to 10 min. (timerDelay variable), it will take 10 min. before publishing the first reading.
17:56:04.314 -> HTTP Response code: 200
17:56:04.314 -> {
17:56:04.314 -> 	"ActTime" : 1671123364,
17:56:04.314 -> 	"AstrTwilightEnd" : "18:41",
17:56:04.314 -> 	"AstrTwilightStart" : "06:39",
17:56:04.314 -> 	"CivTwilightEnd" : "17:19",
17:56:04.314 -> 	"CivTwilightStart" : "08:01",
17:56:04.314 -> 	"DayLength" : "08:00",
17:56:04.314 -> 	"NautTwilightEnd" : "18:01",
17:56:04.314 -> 	"NautTwilightStart" : "07:19",
17:56:04.314 -> 	"ServerTime" : "2022-12-15 17:56:04",
17:56:04.347 -> 	"SunAtSouth" : "12:40",
17:56:04.347 -> 	"Sunrise" : "08:40",
17:56:04.347 -> 	"Sunset" : "16:40",
17:56:04.347 -> 	"app_version" : "2022.1",
17:56:04.347 -> 	"result" : 
17:56:04.347 -> 	[
17:56:04.347 -> 		{
17:56:04.347 -> 			"AddjMulti" : 1.0,
17:56:04.347 -> 			"AddjMulti2" : 1.0,
17:56:04.347 -> 			"AddjValue" : 0.0,
17:56:04.347 -> 			"AddjValue2" : 0.0,
17:56:04.347 -> 			"BatteryLevel" : 100,
17:56:04.347 -> 			"CustomImage" : 0,
17:56:04.347 -> 			"Data" : "11.3 C, 41 %",
17:56:04.347 -> 			"Description" : "",
17:56:04.347 -> 			"DewPoint" : "-1.49",
17:56:04.347 -> 			"Favorite" : 0,
17:56:04.347 -> 			"HardwareDisabled" : false,
17:56:04.347 -> 			"HardwareDisabled" : false,
17:56:04.380 -> 			"HardwareID" : 4,
17:56:04.380 -> 			"HardwareName" : "RFXCOM",
17:56:04.380 -> 			"HardwareType" : "RFXCOM - RFXtrx433 USB 433.92MHz Transceiver",
17:56:04.380 -> 			"HardwareTypeVal" : 1,
17:56:04.380 -> 			"HaveTimeout" : false,
17:56:04.380 -> 			"Humidity" : 41,
17:56:04.380 -> 			"HumidityStatus" : "Normal",
17:56:04.380 -> 			"ID" : "F401",
17:56:04.380 -> 			"LastUpdate" : "2022-12-15 17:55:40",
17:56:04.380 -> 			"Name" : "T-Garage",
17:56:04.380 -> 			"Notifications" : "false",
17:56:04.380 -> 			"PlanID" : "0",
17:56:04.380 -> 			"PlanIDs" : 
17:56:04.380 -> 			[
17:56:04.380 -> 				0
17:56:04.413 -> 			],
17:56:04.413 -> 			"Protected" : false,
17:56:04.413 -> 			"ShowNotifications" : true,
17:56:04.413 -> 			"SignalLevel" : 8,
17:56:04.413 -> 			"SubType" : "THGN122/123/132, THGR122/228/238/268",
17:56:04.413 -> 			"Temp" : 11.300000000000001,
17:56:04.413 -> 			"Timers" : "false",
17:56:04.413 -> 			"Type" : "Temp + Humidity",
17:56:04.413 -> 			"TypeImg" : "temperature",
17:56:04.413 -> 			"Unit" : 1,
17:56:04.413 -> 			"Used" : 1,
17:56:04.413 -> 			"XOffset" : "0",
17:56:04.413 -> 			"YOffset" : "0",
17:56:04.413 -> 			"idx" : "410",
17:56:04.413 -> 			"trend" : 2
17:56:04.413 -> 		}
17:56:04.413 -> 	],
17:56:04.413 -> 	"status" : "OK",
17:56:04.472 -> 	"title" : "Devices"
17:56:04.472 -> }
17:56:04.472 -> 
17:56:04.472 -> Data : 11.3 C, 41 %
17:56:04.472 -> Température Garage : 0.00
17:56:04.472 -> Humidité Garage : 0.00
17:56:24.475 -> HTTP Response code: 200

Re: Domoticz vers ESP8266

Publié : 15 déc. 2022, 19:25
par fcBourgogne
C'est bien ça que je voulais voir, le payload.

Alors effectivement les valeurs ne sont pas entre crochets [].
Par contre le fichier "Humidity" existe au même titre que "Temp".

Code : Tout sélectionner

const char* Data = doc["result"][0]["Data"];
             double Data1 = doc["result"][0]["Temp"];    //Température
             double Data2 = doc["result"][0]["Humidity"];    //Humidité      
        Serial.print("Data : "); 
        Serial.println(Data); 
        Serial.print("Température Garage : "); 
        Serial.println(Data1); 
        Serial.print("Humidité Garage : "); 
        Serial.println(Data2); 
Ca devrait fonctionner avec le code ci-dessus.
A+

Re: Domoticz vers ESP8266

Publié : 16 déc. 2022, 07:55
par Doudy
Voici :

Code : Tout sélectionner

07:49:11.106 -> Data : 10.7 C, 41 %
07:49:11.106 -> Température Garage : 10.70
07:49:11.106 -> Humidité Garage : 41.00
Merci pour ton aide ;)

Re: Domoticz vers ESP8266

Publié : 16 déc. 2022, 12:03
par fcBourgogne
Bonjour,

Un élément intéressant dans Domoticz, que je viens de découvrir.
Domoticz peut afficher du texte avec un DUMMY et Type de capteur = Texte.
L'ESP8266 envoi les données à l'IDX du capteur. Il faut juste respecter une règle, n'envoyer que du texte brut, sans accent et symbole (%).
TEXTEdomo3.jpg
TEXTEdomo3.jpg (56.91 Kio) Consulté 1597 fois
TEXTEdomo2.jpg
TEXTEdomo2.jpg (31.65 Kio) Consulté 1597 fois
TEXTEdomo1.jpg
TEXTEdomo1.jpg (80.91 Kio) Consulté 1597 fois

Code : Tout sélectionner

	// Domoticz format /json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue="FERME",ConsigneFoyer,Analog  
	if (client.connect(domoticz_server, port)) {
    client.print("GET /json.htm?type=command&param=udevice&idx=");
    client.print("573");
    client.print("&nvalue=0&svalue=");
    client.print("FERME");client.print(",");client.print(ConsigneFoyer);client.print(",");client.print(Analog);
    client.print(";");
    client.println(" HTTP/1.1");
    client.print("Host: ");
    client.print(domoticz_server);
    client.print(":");
    client.println(port);
    client.println("User-Agent: Arduino-ethernet");
    client.println("Connection: close");
    client.println();
    client.stop();
  } 
Je m'en sers pour finaliser et vérifier des réglages, ainsi dans le capteur Texte je peux voir plusieurs variables de l'ESP8266.
Voilà, si ça intéresse...
A+

Re: Domoticz vers ESP8266

Publié : 16 déc. 2022, 14:21
par Doudy
fcBourgogne a écrit : 15 déc. 2022, 14:46 Si tu le veux tu peux également afficher le taux d'humidité.

Code : Tout sélectionner

double Data1 = doc["result"][0]["Temp"][0];    //Température
double Data2 = doc["result"][0]["Temp"][1];    //Humidité
A essayer.
pour revenir à un message précédent et pour ma "culture personnelle", comment faire pour extraire les data séparément de

Code : Tout sélectionner

"Data" : "10.8 C, 41 %"
Le code ci-dessous renvoie "0"

Code : Tout sélectionner

   const char* Data = doc["result"][0]["Data"];
             double Data1 = doc["result"][0]["Data"][0];    //Température
             double Data2 = doc["result"][0]["Data"][1];    //Humidité      

Code : Tout sélectionner

14:20:28.163 -> Data : 10.9 C, 41 %
14:20:28.199 -> Température Garage : 0.00
14:20:28.199 -> Humidité Garage : 0.00
Une idée ?
;)

Re: Domoticz vers ESP8266

Publié : 16 déc. 2022, 15:35
par fcBourgogne
Bonjour Doudy,

Pour répondre à ta question.
Il faut alors user de la fonction "substring" qui extrait des caractères d'une phrase.

Code : Tout sélectionner

const char* Data = doc["result"][0]["Data"];
       String Data1 = doc["result"][0]["Data"];
       Serial.print("Data: "); 
       Serial.println(Data1); 
       String Data2 = Data1.substring(0, 4); // avec substring
       Serial.print("Data2: "); 
       Serial.println(Data2); 
        String Data3 = Data1.substring(8, 10); // avec substring
       Serial.print("Data3: "); 
       Serial.println(Data3); 
Résultat:

Code : Tout sélectionner

15:33:26.889 -> Data: 18.8 C, 37 %
15:33:26.889 -> Data2: 18.8
15:33:26.889 -> Data3: 37
Entre les parenthèses de substring, le premier chiffre pointe le début et le deuxième pointe la fin de la récupération des caractères.
Voilà, amuse toi bien!
A+

Re: Domoticz vers ESP8266

Publié : 16 déc. 2022, 17:27
par Doudy
Merci beaucoup
👍 👍 👍 👍

Re: Domoticz vers ESP8266

Publié : 22 janv. 2023, 13:15
par pascal_du_59
Bonjour je viens de m'inscrit a votre forum...
j'utilise des esp-01 pour mes sonde ou autre sur Domoticz version PC.
Merci pour la quantité d'information disponible et en particulier sur la réception d'info entre Arduino et Domoticz.

Deja merci pour le code fournis maissss et oui ya toujours un mais ma question et la suivante

la ligne Json en envoyer a Domoticz pour récupérer certain info fonction mais si il y a un mot de passe et nom d'utilisateur cela mais impossible me renvois un message d'erreur.

erreur : 401 Unauthorized

ma question comment introduire le mot de passe et nom d'utilisateur dans votre exemple.

certains disent qui faut le coder en 64bit mais ou et comment les indroduire correctement

d'avance merci et super forum continuer comme ça

Re: Domoticz vers ESP8266

Publié : 22 janv. 2023, 13:38
par Keros
Bonjour pascal et bienvenu sur le forum :)

As-tu essayé d'autoriser ton ESP à ce connecter à DomoticZ sans mot de passe ? Il faut autoriser l'IP dans les paramètres de DomoticZ.

Concernant les mots de passe, DomoticZ en train d'en changer la sécurité. Ce serait dommage que tu mettes un truc en place et qu'il ne soit plus fonctionnel à la prochaine mise à jour. Plus d'infos.