JSON depuis NodemcuV1.0 en language C (IDE Arduino)
Publié : 05 nov. 2017, 12:19
Bonjour à tous,
j'ai développé depuis plus d'un an mon Domoticz (sur PC au départ) pour piloter mes chauffages (ELV MAX!), ma station météo (WS2300) et tous les capteurs/relais de l'appartement et de la cave (ESP8266 avec EasyEsp). Le tout tourne sur la Raspeberry 3 depuis Février.
Aujourd'hui je fabrique une télécommande murale WIFI avec base/chargeur, il s'agit d'une Nodemcuv1.0 avec un affichage st7735 1.8" et deux boutons poussoirs (j'attends les encodeurs). Une batterie d'hélico RC 3.7V 500mAh + module charge li-ion usb + module step-up 5V pour une autonomie de 24-30h.
J'ai bataillé pour trouver comment envoyer les requete ELV MAX!, sur la raspberry en Bash ou LUA je passais par NetCat:
sur la Nodemcu:
La galère est venue du fait quil faut ajouter "/r/n" en fin de commande en C...... 
Maintenant, je voudrais envoyer non plus en direct au Cube ELV MAX!, mais passer par Domoticz afin d'avoir mes "Switchs" ECO/BOOST etc mis à jour pour permettrent aux scripts de continuer à gerer les chauffages dans le temps.
La même commande (même chauffage) en JSON via un navigateur:
qui fonctionne parfaitement,
mais en C, avec les classes HTTPClient ou ESP8266, je n'arrive à rien, dans le log je ne reçoit m^me pas la connexion de la NOdemcu, pas d'authentification (réseau local), pas de sécurité sur les switchs.....
mon dernier essai avec une détection de la Nodemcu dans le log de domoticz mais sans action sur le switch:
j'ai essayyé cette version avec /r/n en fin de commande, j'ai tenté aussi en passant directement par le client.print... sans résultat.
Je pense que ce n'est qu'un problème de syntaxe, peut etre a cause des ? ou & présents dans les String, j'ai l'habitude du C# mais pas trop du C sous Arduino IDE.
Auriez vous une idée ?????
j'ai développé depuis plus d'un an mon Domoticz (sur PC au départ) pour piloter mes chauffages (ELV MAX!), ma station météo (WS2300) et tous les capteurs/relais de l'appartement et de la cave (ESP8266 avec EasyEsp). Le tout tourne sur la Raspeberry 3 depuis Février.
Aujourd'hui je fabrique une télécommande murale WIFI avec base/chargeur, il s'agit d'une Nodemcuv1.0 avec un affichage st7735 1.8" et deux boutons poussoirs (j'attends les encodeurs). Une batterie d'hélico RC 3.7V 500mAh + module charge li-ion usb + module step-up 5V pour une autonomie de 24-30h.
J'ai bataillé pour trouver comment envoyer les requete ELV MAX!, sur la raspberry en Bash ou LUA je passais par NetCat:
Code : Tout sélectionner
os.execute('sudo echo s:AARAAAAAFqaCAiI= | netcat -C 192.168.2.xxx xxxxx &') Code : Tout sélectionner
void sendReq(int o)
{
WiFiClient client;
client.connect("192.168.2.xxx", xxxxx);
delay(2000);
if (o == 1)
{
client.print("s:AARAAAAAFqaDAcA=\r\n"); /// Bosst Salon
}
//// etc etc
delay(500);
client.stop();
}
Maintenant, je voudrais envoyer non plus en direct au Cube ELV MAX!, mais passer par Domoticz afin d'avoir mes "Switchs" ECO/BOOST etc mis à jour pour permettrent aux scripts de continuer à gerer les chauffages dans le temps.
La même commande (même chauffage) en JSON via un navigateur:
Code : Tout sélectionner
http://192.168.2.xxx:xxxx/json.htm?type=command¶m=switchlight&idx=1&switchcmd=Onmais en C, avec les classes HTTPClient ou ESP8266, je n'arrive à rien, dans le log je ne reçoit m^me pas la connexion de la NOdemcu, pas d'authentification (réseau local), pas de sécurité sur les switchs.....
mon dernier essai avec une détection de la Nodemcu dans le log de domoticz mais sans action sur le switch:
Code : Tout sélectionner
HTTPClient http;
if (o == 1)
{
http.begin("http://192.168.2.xxx:xxxx/json.htm?type=command¶m=switchlight&idx=1&switchcmd=On"); // Boost Salon
}
if (o == 2)
{
http.begin("http://192.168.2.xxx:xxxx/json.htm?type=command¶m=switchlight&idx=4&switchcmd=Toggle"); // ECO Salle de bain
}
if (o == 3)
{
http.begin("http://192.168.2.xxx:xxxx/json.htm?type=command¶m=switchlight&idx=2&switchcmd=On"); // Boost Salle de bain
}
if (o == 4)
{
http.begin("http://192.168.2.xxx:xxxx/json.htm?type=command¶m=switchlight&idx=3&switchcmd=Toggle"); // ECO Salon
}
http.end();Je pense que ce n'est qu'un problème de syntaxe, peut etre a cause des ? ou & présents dans les String, j'ai l'habitude du C# mais pas trop du C sous Arduino IDE.
Auriez vous une idée ?????