23-04-2025, 04:30 PM
(23-04-2025, 09:53 AM)michy a écrit : Bonjour,Merci pour ton retour,
C’est bien là,
1) On commence par déclarer des constantes pour lire facilement le code et une variable globale qui sera maintenu à jour à chaque lecture d’une trame Linky
Dans Solar_Router_Vxxxx.ino
Code :String LTARF = ""; // Option tarifaire RTE
#define FERME 0 // Ajout pour remonter contact sec Linky
#define OUVERT 1 // Ajout pour remonter contact sec Linky
byte contactC1C2 = OUVERT; // Ajout pour remonter contact sec Linky
String STGE = ""; // Status Tempo uniquement RTE
String NGTF = ""; // Calendrier tarifaire
2) On actualise la variable a chaque lecture
Dans Source_Linky.ino
Code :STGE = val; //Status
STGE.trim();
contactC1C2 = (strtoul(STGE.c_str(),NULL,16)) & 0b1; // Ajout pour remonter contact sec Linky // avant que STGE ne soit raccourci pour ne prendre que les couleurs tempo
STGE = STGE.substring(1, 2); //Tempo lendemain et jour sur 1 octet
3) On prepare MQTT [A confirmer lors d'essais]
Dans MQTT.ino
Code :DeviceToDiscover("EASF10", "EASF10", "Wh", "energy", "0");
DeviceBin2Discover("contactC1C2 ", "Status contact C1-C2"); // Ajout pour remonter contact sec Linky
}
4) On envoi [A confirmer lors d'essais]
Dans MQTT.ino
Code :if (Source == "Linky") {
sprintf(value, "%s,\"NGTF\":\"%s\"", value, NGTF.c_str());
sprintf(value, "%s,\"EASF01\":%d, \"EASF02\":%d, \"EASF03\":%d, \"EASF04\":%d, \"EASF05\":%d, \"EASF06\":%d,\"EASF07\":%d, \"EASF08\":%d, \"EASF09\":%d, \"EASF10\":%d", value, EASF01, EASF02, EASF03, EASF04, EASF05, EASF06, EASF07, EASF08, EASF09, EASF10);
sprintf(value, "%s,\"contactC1C2\":\"%d\"", value, contactC1C2); // Ajout pour remonter contact sec Linky
}
sous réserve d'essai
J'ai rajouté (j'espère sans erreur) les lignes que tu suggères),
Apparemment les données contactC1C2 ne remonte pas malgré reboot de MQTT et HA,
Qu'est-ce que je tester d'autre ?
