Bonjour,
Après des heures de recherche j'ai trouvé l'erreur dans le code 17.06 en uxix3 qui remontait des informations fausses de consommation mqtt
Lignes 423-427 de envoimqtt.ino :
dans la dernière ligne on envoie "Energie_jour_Injectee" deux fois au lieu de Energie_jour_Soutiree, Energie-jour_Injectée
J'en ai profité pour nettoyer un peu le code pour qu'en uxix3 les bons sensors soient remontés dans un fonctionnement identique à uxix2 et que l'affichage dans les pages web soit bon.
A modifier :
dans sourceuxix3.ino à partir de ligne 90 : on remonte via 2 ajouts les bonnes valeurs de EnergieM (injectée et soutirée) grace au calcul de phdv61 et on supprime le calcul de la donnée (fausse) remontée par le jsy
dans envoimqtt.ino :
a partir de la ligne 241 on initialise seulement les bonnes variables :
en ligne 425 on n'envoie plus l'energie puisqu'elle est envoyée par défaut maintenant que energiejourM est ok :
avec ces modifs tout est ok
Je joins les 2 fichiers modifiés si plus facile !
Après des heures de recherche j'ai trouvé l'erreur dans le code 17.06 en uxix3 qui remontait des informations fausses de consommation mqtt
Lignes 423-427 de envoimqtt.ino :
Code :
if (Source == "UxIx3") { //Modif Piamp 8/12/2025
sprintf(value, "%s,\"Tension_M1\": %.1f, \"Intensite_M1\": %.1f,\"Tension_M2\": %.1f, \"Intensite_M2\": %.1f,\"Tension_M3\": %.1f, \"Intensite_M3\": %.1f, \"Frequence\":%.2f", value, Tension_M1, Intensite_M1, Tension_M2, Intensite_M2, Tension_M3, Intensite_M3, Frequence);
sprintf(value, "%s,\"PW_M1\": %.1f,\"PW_M2\": %.1f, \"PW_M3\": %.1f", value, PW_M1, PW_M2, PW_M3);
sprintf(value, "%s,\"Energie_jour_Soutiree\": %.1f,\"Energie_jour_Injectee\": %.1f", value, Energie_jour_Injectee, Energie_jour_Injectee);
}dans la dernière ligne on envoie "Energie_jour_Injectee" deux fois au lieu de Energie_jour_Soutiree, Energie-jour_Injectée

J'en ai profité pour nettoyer un peu le code pour qu'en uxix3 les bons sensors soient remontés dans un fonctionnement identique à uxix2 et que l'affichage dans les pages web soit bon.
A modifier :
dans sourceuxix3.ino à partir de ligne 90 : on remonte via 2 ajouts les bonnes valeurs de EnergieM (injectée et soutirée) grace au calcul de phdv61 et on supprime le calcul de la donnée (fausse) remontée par le jsy
Code :
if (injection) {
PuissanceS_M_inst = 0;
PuissanceI_M_inst = float((Lecture333[21] << 24) + (Lecture333[22] << 16) + (Lecture333[23] << 8) + Lecture333[24]);
PVAS_M_inst = 0;
PVAI_M_inst = abs(PVA_M_inst1 + PVA_M_inst2 + PVA_M_inst3); // car la somme des puissances apparentes "signées" est négative puisqu'en "injection" au global
// PhDV61 : on considère que cette puissance active "globale" a duré "delta_temps", et on l'intègre donc pour obtenir une énergie en Wh
Energie_jour_Injectee += ((float)delta_temps / 1000.0) * (PuissanceI_M_inst / 3600.0);
Energie_M_Injectee = Energie_jour_Injectee; // ajout piamp
} else { // soutirage
PuissanceI_M_inst = 0;
PuissanceS_M_inst = float((Lecture333[21] << 24) + (Lecture333[22] << 16) + (Lecture333[23] << 8) + Lecture333[24]);
PVAI_M_inst = 0;
PVAS_M_inst = PVA_M_inst1 + PVA_M_inst2 + PVA_M_inst3;
// PhDV61 : on considère que cette puissance active "globale" a duré "delta_temps", et on l'intègre donc pour obtenir pour obtenir une énergie en Wh
Energie_jour_Soutiree += ((float)delta_temps / 1000.0) * (PuissanceS_M_inst / 3600.0);
Energie_M_Soutiree = Energie_jour_Soutiree; // ajout piamp
}
// supp piamp Energie_M_Soutiree = ((float)((float)(Lecture333[119] * 16777216) + (float)(Lecture333[120] * 65536) + (float)(Lecture333[121] * 256) + (float)Lecture333[122])) * 10;
// supp piamp Energie_M_Injectee = ((float)((float)(Lecture333[135] * 16777216) + (float)(Lecture333[136] * 65536) + (float)(Lecture333[137] * 256) + (float)Lecture333[138])) * 10;dans envoimqtt.ino :
a partir de la ligne 241 on initialise seulement les bonnes variables :
Code :
if (Source == "UxIx3") {
DeviceToDiscover("Tension_M1", "Tension p1", "V", "voltage", "2");
DeviceToDiscover("Intensite_M1", "Intensité p1", "A", "current", "2");
DeviceToDiscover("Tension_M2", "Tension p1", "V", "voltage", "2");
DeviceToDiscover("Intensite_M2", "Intensité p2", "A", "current", "2");
DeviceToDiscover("Tension_M3", "Tension p3", "V", "voltage", "2");
DeviceToDiscover("Intensite_M3", "Intensité p3", "A", "current", "2");
DeviceToDiscover("PW_M1", "Puissance M phase 1", "W", "power", "1");
DeviceToDiscover("PW_M2", "Puissance M phase 2", "W", "power", "1");
DeviceToDiscover("PW_M3", "Puissance M phase 3", "W", "power", "1");
//DeviceToDiscover("Energie_jour_M_Soutiree", "Energie jour M Soutirée", "Wh", "energy", "1");
//DeviceToDiscover("Energie_jour_M_Injectee", "Energie jour MInjectée", "Wh", "energy", "1");
}
else {
DeviceToDiscover("Tension_M", "Tension M", "V", "voltage", "2");
DeviceToDiscover("Intensite_M", "Intensité M", "A", "current", "2");
DeviceToDiscoverWithoutUnit("PowerFactor_M", "Facteur de Puissance M", "2");
}
DeviceToDiscover("PuissanceI_M", "Puissance M Injectée", "W", "power", "0");
DeviceToDiscover("PuissanceS_M", "Puissance M Soutirée", "W", "power", "0");
DeviceToDiscover("Energie_M_Soutiree", "Energie Totale M Soutirée", "Wh", "energy", "0");
DeviceToDiscover("Energie_M_Injectee", "Energie Totale M Injectée", "Wh", "energy", "0");
DeviceToDiscover("EnergieJour_M_Soutiree", "Energie Jour M Soutirée", "Wh", "energy", "0");
DeviceToDiscover("EnergieJour_M_Injectee", "Energie Jour M Injectée", "Wh", "energy", "0");en ligne 425 on n'envoie plus l'energie puisqu'elle est envoyée par défaut maintenant que energiejourM est ok :
Code :
if (Source == "UxIx3") { //Modif Piamp 8/12/2025
sprintf(value, "%s,\"Tension_M1\": %.1f, \"Intensite_M1\": %.1f,\"Tension_M2\": %.1f, \"Intensite_M2\": %.1f,\"Tension_M3\": %.1f, \"Intensite_M3\": %.1f, \"Frequence\":%.2f", value, Tension_M1, Intensite_M1, Tension_M2, Intensite_M2, Tension_M3, Intensite_M3, Frequence);
sprintf(value, "%s,\"PW_M1\": %.1f,\"PW_M2\": %.1f, \"PW_M3\": %.1f", value, PW_M1, PW_M2, PW_M3);
//sprintf(value, "%s,\"Energie_jour_Soutiree\": %.1f,\"Energie_jour_Injectee\": %.1f", value, Energie_jour_Soutiree, Energie_jour_Injectee);
}avec ces modifs tout est ok

Je joins les 2 fichiers modifiés si plus facile !
