Messages : 6
Sujets : 2
Inscription : Jul 2025
Bonjour André,
Merci pour cette version pour ESP32-S3.
Je suis en beta 15.
Je rencontre un problème pour faire fonctionner l'actionneur de type SSR en GPIO externe.
je renseigne l'HOST, PORT, je sélection la méthode de GET à POST et je complète Ordre ON et Ordre OFF.
Je sauvegarde le logigramme et j'ouvre à nouveau l'actionneur. La méthode est revenue à GET.
J'ai refait l'opération plusieurs fois avec reset de l'ESP32-S3... rien n'y fait.
J'ai ouvert le code dans VSCODE et corrigé le code pour faire du POST avec GET. J'ai aussi corrigé le HTTP.addHeader
if (getPost == false) {
// Requête GET
//httpCode = http.GET();
// Requête POST
http.addHeader("Content-Length", "0");
httpCode = http.POST("");
} else {
// Requête POST
//http.addHeader("Content-Type", "application/x-www-form-urlencoded");
http.addHeader("Content-Length", "0");
// POST vide
httpCode = http.POST("");
}
et cette fois j'arrive à contrôler mon relais en GPIO externe.
Bug ou mauvaise méthode pour faire la sélection et la sauvegarde dans le logigramme?
David
Messages : 1,039
Sujets : 13
Inscription : Jun 2024
Bonjour,
Je pense qu'il y a un soucis avec les single quotes à la ligne 214 de JS_paraBloc.js :
LesPara += `<div class='tcR'><select id='methodSelect' onclick='UpdatePara('GetPost',event,this,${bl});' onchange='UpdatePara('GetPost',event,this,${bl});'>`;
Le onclick et onchange contiennent des single quotes, il faudrait donc qu'ils soient encadré par des double quotes :
LesPara += `<div class='tcR'><select id='methodSelect' onclick="UpdatePara('GetPost',event,this,${bl});" onchange="UpdatePara('GetPost',event,this,${bl});">`;
C'est ce qui est fait pour les autres paramètres d'ailleurs.
Étant en déplacement, je ne peux pas tester de mon coté. Si vous le faites, il faut bien penser à supprimer le hack que vous avez rajouté dans Bloc_Action::CallExterne.
Messages : 1,744
Sujets : 59
Inscription : May 2024
(Hier, 01:01 PM)Mike a écrit : Bonjour,
Je pense qu'il y a un soucis avec les single quotes à la ligne 214 de JS_paraBloc.js :
LesPara += `<div class='tcR'><select id='methodSelect' onclick='UpdatePara('GetPost',event,this,${bl});' onchange='UpdatePara('GetPost',event,this,${bl});'>`;
Le onclick et onchange contiennent des single quotes, il faudrait donc qu'ils soient encadré par des double quotes :
LesPara += `<div class='tcR'><select id='methodSelect' onclick="UpdatePara('GetPost',event,this,${bl});" onchange="UpdatePara('GetPost',event,this,${bl});">`;
C'est ce qui est fait pour les autres paramètres d'ailleurs.
Étant en déplacement, je ne peux pas tester de mon coté. Si vous le faites, il faut bien penser à supprimer le hack que vous avez rajouté dans Bloc_Action::CallExterne.
Bien vu Mike. Je corrige.
André dans la version beta.16
Messages : 6
Sujets : 2
Inscription : Jul 2025
(Hier, 01:01 PM)Mike a écrit : Bonjour,
Je pense qu'il y a un soucis avec les single quotes à la ligne 214 de JS_paraBloc.js :
LesPara += `<div class='tcR'><select id='methodSelect' onclick='UpdatePara('GetPost',event,this,${bl});' onchange='UpdatePara('GetPost',event,this,${bl});'>`;
Le onclick et onchange contiennent des single quotes, il faudrait donc qu'ils soient encadré par des double quotes :
LesPara += `<div class='tcR'><select id='methodSelect' onclick="UpdatePara('GetPost',event,this,${bl});" onchange="UpdatePara('GetPost',event,this,${bl});">`;
C'est ce qui est fait pour les autres paramètres d'ailleurs.
Étant en déplacement, je ne peux pas tester de mon coté. Si vous le faites, il faut bien penser à supprimer le hack que vous avez rajouté dans Bloc_Action::CallExterne.
Bonjour Mike,
Merci pour ce correctif.
Je suis reparti de la source originale et j'ai fait les correctifs suivant:
/src/BlockActions.cpp ligne 174
remplacer : http.addHeader("Content-Type", "application/x-www-form-urlencoded");
par : http.addHeader("Content-Length", "0");
et dans /Web/JS_Actions/JS_paraBloc.js ligne 214
remplacer : LesPara += `<div class='tcR'><select id='methodSelect' onclick='UpdatePara('GetPost',event,this,${bl});' on change='UpdatePara('GetPost',event,this,${bl});'>`;
par : LesPara += `<div class='tcR'><select id='methodSelect' onclick="UpdatePara('GetPost',event,this,${bl});" onchange="UpdatePara('GetPost',event,this,${bl});">`;
Cette fois j'arrive à sélectionner la méthode POST puis je sauvegarde le logigramme.
Le relais externe fonctionne mais quand j'ouvre à nouveau l'actionneur, c'est GET qui est affiché et non POST. Le fonctionnel reste comme si j'avais un POST de sélectionné.
On y est presque!
David
David
Messages : 1,039
Sujets : 13
Inscription : Jun 2024
Est ce vraiment nécessaire de changer le header ?
Concernant le problème de selection, je pense que ça vient cette fois de la ligne 217 de JS_paraBloc.js :
let selected = (value == bloc[bl].Para.GetPost) ? "selected" : "";
On ne veut pas comparer avec value mais plutôt avec i :
let selected = (i == bloc[bl].Para.GetPost) ? "selected" : "";
Messages : 1,744
Sujets : 59
Inscription : May 2024
(Hier, 03:40 PM)Mike a écrit : Est ce vraiment nécessaire de changer le header ?
Concernant le problème de selection, je pense que ça vient cette fois de la ligne 217 de JS_paraBloc.js :
let selected = (value == bloc[bl].Para.GetPost) ? "selected" : "";
On ne veut pas comparer avec value mais plutôt avec i :
let selected = (i == bloc[bl].Para.GetPost) ? "selected" : "";
Oui, j'ai vu cela et corrigé en beta.16
Mes tests en local avec un POST sont bons.
André
Messages : 6
Sujets : 2
Inscription : Jul 2025
Bonjour,
Merci pour votre réactivité et votre travail.
J'ai testé la version béta.16
Elle est bien fonctionnelle pour la partie saisie du mode POST/GET mais pour commander mon relais wifi Sonoff MINIR4 reprogrammé sous ESPHome (en version 7.3) je dois avoir le header modifié . Sur quel type de relais faite vous vos tests ? Je voudrai savoir sur quel matériel je dois me diriger pour revenir dans le standard du routeur.
David
Messages : 1,744
Sujets : 59
Inscription : May 2024
(Il y a 1 heure)D4v1d a écrit : Bonjour,
Merci pour votre réactivité et votre travail.
J'ai testé la version béta.16
Elle est bien fonctionnelle pour la partie saisie du mode POST/GET mais pour commander mon relais wifi Sonoff MINIR4 reprogrammé sous ESPHome (en version 7.3) je dois avoir le header modifié . Sur quel type de relais faite vous vos tests ? Je voudrai savoir sur quel matériel je dois me diriger pour revenir dans le standard du routeur.
David
Je l'ai testé hier en envoyant une commande à un relais sous ESPHOME qui attend la commande:
Code : POST http://192.168.1.50/button/mon_bouton/press
J'ai rempli le Host avec 192.168.1.50 adresse IP à adapter
Ordre On: /button/mon_bouton/press
et cela a bien fonctionné
|