Bonjour à tous,
Merci André de nous proposer ce projet très efficace !
Je rencontre depuis longtemps quelques désagréments au niveau de MQTT que j'utilise avec HA.
Le routeur est un élément essentiel dans mes cartes et participe à plusieurs calculs et statistiques, j'utilise l'UxIx2 avec les 2 sondes.
Ca fonctionne, modulo ce délai < 5' suivant ou le cycle se trouve au moment du reboot.
J'ai tenté avec l'aide de l'IA de résoudre ces deux inconvénients.
Je vous partage le code si c'est bien la bonne approche, de mon côté mes essais sont concluants.
Premier fix :
Second fix :
Bon routage
Merci André de nous proposer ce projet très efficace !
Je rencontre depuis longtemps quelques désagréments au niveau de MQTT que j'utilise avec HA.
Le routeur est un élément essentiel dans mes cartes et participe à plusieurs calculs et statistiques, j'utilise l'UxIx2 avec les 2 sondes.
- Le premier est très léger, lorsque je relance HA, les infos du routeur remontent plus ou moins rapidement.
Ca fonctionne, modulo ce délai < 5' suivant ou le cycle se trouve au moment du reboot.
- Le second est plus agaçant. Peut-être est-il lié à mon usage (ou configuration F1AAB/HA) mais systématiquement au reboot du routeur, je me retrouve avec des données erronées dans HA qui faussent donc les statistiques.
J'ai tenté avec l'aide de l'IA de résoudre ces deux inconvénients.
Je vous partage le code si c'est bien la bonne approche, de mon côté mes essais sont concluants.
Premier fix :
Code :
Ajout du flag retain: true sur les messages MQTT discovery (EnvoiMQTT.ino:340).
Lignes 341/361/374/389/402
Exemple : clientMQTT.publish(DiscoveryTopic, value, true);Second fix :
Code :
a) Flag EnergieJourInitialisee (Solar_Router_V16_09.ino:379)
bool EnergieJourInitialisee = false;
Ce flag passe à true seulement après que EnergieQuotidienne() ait calculé les valeurs avec des données valides (ligne 1784) :
if (Energie_M_Soutiree > 0) {
EnergieJourInitialisee = true;
}
b) Blocage de l'envoi MQTT au démarrage (EnvoiMQTT.ino:132-134)
if (EnergieJourInitialisee) {
SendDataToHomeAssistant();
}Bon routage

