Reflexion autour de l'API MQTT

Salut @pierre-gilles,

Désolé pour le temps de REX, j’ai pas mal été pris les 2 dernières semaines.
Je vois que tu n’as pas insérer la réponse que tu m’avais faite sur Slack, je me permet donc de te citer pour te répondre :

1 & 2: Top !
3 : Ah, ça m’est arrivé moi aussi, c’est un bug, je pense qu’il peut y avoir des situations ou ton instance Gladys se connecte plusieurs fois à Gladys Plus et du coup reçoit plusieurs fois les messages… J’ai créé une issue => https://github.com/GladysAssistant/Gladys/issues/744. Tu as plus d’informations sur ton setup ? C’était en développement local, ou sur ton Raspberry Pi de production? Tu avais redémarré Gladys fréquemment, ou au contraire jamais? J’aimerais savoir les circonstances du bug
4. Ah! Mince, c’est chaud qu’à ce niveau là ta DB soit à ce point là vérolée… Garde bien un backup pour qu’on puisse analyser ce qui ne va pas dans ta DB. C’est pas normal en vrai, normalement SQLite ça supporte jusqu’à des Tera en BDD… tu peux essayer de faire un docker restart gladys pour voir si ça résout le pb?
5. Ce qu’il est possible de faire, c’est un DELETE FROM t_device_feature_state; cela va supprimer toutes les entrées dans la table t_device_feature_state . Limite avant, fait un SELECT COUNT(id) FROMt_device_feature_state; pour qu’on sache combien il y a de row dans ta table
Pierre-GillesPierre-Gilles
#744 Gladys sometimes connect multiple time to the Gladys Gateway and receive multiple time new messages
Gladys 4 RC
https://github.com/GladysAssistant/Gladys|GladysAssistant/GladysGladysAssistant/Gladys | 15 avr. | Ajouté(e) par GitHub

  1. C’était par l’intermédiaire de mon Gladys Prod sur Raspberry 4. Non je ne redémarre jamais Gladys. Mais suite à cela j’ai tenté de le faire et ça n’a rien changé. Bon du coup j’ai modifié le prog Arduino pour faire une pause de 500ms après un passage d’ordre et ça ne pose plus de soucis.

  2. Oui je me doute que le problème vient d’ailleurs et heureusement ^^ Pour info je tourne sur une carte SD Sandisk 64Go en V30, donc je ne pense pas que ça vienne de la non plus. J’ai fais le test de reboot, ça ne résout pas le soucis mais j’ai une belle erreur. Je te la posterais au besoin.

  3. Visiblement ma BD est verrouillée. Aucune des manip ne fonctionne. J’ai donc aujourd’hui tout réinstallé et ça ne fonctionnait toujours pas pour les states. Mais le problème est résolu. J’ai tout d’abord tenté comme on se l’était dit en conv-call, de remplacer le topic d’origine mqtt:Arduino01_Batiment:Energie Totale Phase 2:Centre Equithérapie par mqtt:Arduino01_Batiment/Energie Totale Phase 2:Centre Equithérapie (soit les « : » après le nom de l’Arduino par « / »). Ca ne fonctionnait pas (je parle seulement des states, la commande fonctionnait bien)
    Je suis donc passé au second essai, soit faire souscrire l’Arduino à tout les topics de chaque device en gardant donc le topic sous la forme mqtt:Arduino01_Batiment:Energie Totale Phase 2:Centre Equithérapie. J’ai rajouté des micro tempos avant les souscriptions, et écoute ça passe pour le moment avec 15 topics souscrits. Les commandes et les states fonctionnent parfaitement.