j’ai une erreur depuis plusieurs semaines assez ennuyantes : j’ai une perte de mes devices Bluetooth dont la collecte des infos se fait par MQTTDiscovery & Theengs gateway.
Ce couple de plugin est très important car il gère, comme chez de nombreuses autres personnes, ma gestion de présence.
Dernièrement après une réinstall/backup, j’ai décidé de regarder ça de plus près et je me suis rendu compte que le problème venait de MQTTDiscovery.
J’ai augmenté le niveau de log de MQTTDiscovery en mettant en Debug
Là, j’ai perdu ma présence (rssi à -200) vers 00h50 (à l’heure de ma sauvegarde nocturne comme par hasard). La seule erreur que j’ai dans le log MQTTdiscovery_daemon intervient à 00h44 :
[log]
[2024-06-03 00:44:53][ERROR] : Task exception was never retrieved
future: <Task finished name='Task-5' coro=<Publisher.__send_task() done, defined at /var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/jeedomdaemon/aio_connector.py:91> exception=TimeoutError()>
Traceback (most recent call last):
File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/jeedomdaemon/aio_connector.py", line 101, in __send_task
if not await self.send_to_jeedom(changes):
File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/jeedomdaemon/aio_connector.py", line 122, in send_to_jeedom
async with self._jeedom_session.post(self._callback_url + '?apikey=' + self._api_key, json=payload) as resp:
File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/aiohttp/client.py", line 1197, in __aenter__
self._resp = await self._coro
File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/aiohttp/client.py", line 608, in _request
await resp.start(conn)
File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 991, in start
self._continue = None
File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/aiohttp/helpers.py", line 735, in __exit__
raise asyncio.TimeoutError from None
asyncio.exceptions.TimeoutError
[/log]le log continue de se remplir, mais les rssi des devices restent à -200.Sur la page d’admin, le démon reste apparemment up :
Ce qui fait que passé 1h, je suis officiellement absent et ça c’est pas WAF compliant
J’ai 2 à 3 dysfonctionnements par jour, que je ne vois malheureusement pas toujours (mais que madame me fait très souvent remonter !) @Tonio16 : ça m’est arrivé de redémarrer aussi tgw mais à priori c’est plus MQTTDiscovery qui me pose problème là
@Mips : j’ai l’impression que MQTTDiscovery s’arrête, mais je dois objectiver cette impression avec des faits : je vais checker ça depuis le boulot aujourd’hui.
Depuis la relance cette nuit le log deamon MQTTDiscovery pas d’arrêt de service. Je relance le deamon pour laisser en Info le log.
Merci de ton retour et de ton implication
P.S. : merci @mips d’avoir changé le tag dans mon post original
bon c’est tombé cette nuit (00h45), je ne suis plus présent depuis 00h48 :
Extrait de log deamon :
*0500|[2024-06-04 00:45:15] ERROR : Task exception was never retrieved*
*0501|future: <Task finished name='Task-5' coro=<Publisher.__send_task() done, defined at /var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/jeedomdaemon/aio_connector.py:91> exception=TimeoutError()>*
*0502|Traceback (most recent call last):*
*0503|File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/jeedomdaemon/aio_connector.py", line 101, in __send_task*
*0504|if not await self.send_to_jeedom(changes):*
*0505|File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/jeedomdaemon/aio_connector.py", line 122, in send_to_jeedom*
*0506|async with self._jeedom_session.post(self._callback_url + '?apikey=' + self._api_key, json=payload) as resp:*
*0507|File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/aiohttp/client.py", line 1197, in __aenter__*
*0508|self._resp = await self._coro*
*0509|File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/aiohttp/client.py", line 608, in _request*
*0510|await resp.start(conn)*
*0511|File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 991, in start*
*0512|self._continue = None*
*0513|File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/aiohttp/helpers.py", line 735, in __exit__*
*0514|raise asyncio.TimeoutError from None*
*0515|asyncio.exceptions.TimeoutError*
Le log MQTTDiscovery (pas le log daemon donc) ne se remplit pas lui
Pourtant le démon est up selon sa page de configuration :
et pour le log du démon, ce qu’il y a avant et après et pas juste la ligne d’erreur
edit: il me faudrait aussi la config du plugin, surtout la valeur mise pour le paramètre « cycle »
le timeout me fait penser à un jeedom surchargé qui ne répond plus assez rapidement au démon
Merci de ton retour.
Je te fournis ça a mon retour.
Je crains aussi que ce soit du a ma jeedom surchargée car ça correspond à l’heure de sauvegarde (et e viens de me rendre compte que mes sauvegardes sont de plus en plus « grosses » : 750Mo la dernière)
Cela n’empêche pas que le démon devrait réessayer plus tard et se remettre sur pied tout seul, même si certains événements sont perdus ou prennent plus de temps à arriver, je regarde pourquoi ca n’est pas le cas.
mais ca ne résoudra peut-être pas le fait que pendant un instant les devices font passer absent, si jeedom est out et ne répond plus, je ne pourrai rien y faire.
une sauvegarde de 750mo ca me semble anormal, il doit y avoir un souci quelque part à régler, une save de 250mo c’est déjà beaucoup.
On est d’accord.
Si tu as des pistes pour étudier ce qui est consommateur, je suis preneur
(Je vais checker pour supprimer les scénarii en trop et désactiver les non nécessaires)
Je te fournis les logs et autres infos dès que possible.
Il faudrait ouvrir le backup et regarder ce qu’il y a dedans, voir quel fichier prend de la place, il y a p-e un backup db qui traine là ou il ne faut pas.
concernant les timeout, j’ai fait une modif dans les dépendances pour en principe mieux gérer
pas de nouvelle version, il faut juste réinstaller les dépendances; montrez moi le log ensuite que je puisse vérifier les versions installées
[2024-06-03 08:04:13] INFO : Starting daemon with log level: info
[2024-06-03 08:04:13] INFO : Listening on 127.0.0.1:55074
[2024-06-03 08:04:13] INFO : Send async started with a cycle of 1.0s
[2024-06-03 08:04:13] INFO : Successfully connected to MQTT server
[2024-06-03 08:04:13] INFO : Successfully subscribed to discovery topic homeassistant
[2024-06-03 08:04:13] INFO : Successfully subscribed to home
[2024-06-04 00:45:15] ERROR : Task exception was never retrieved
future: <Task finished name='Task-5' coro=<Publisher.__send_task() done, defined at /var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/jeedomdaemon/aio_connector.py:91> exception=TimeoutError()>
Traceback (most recent call last):
File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/jeedomdaemon/aio_connector.py", line 101, in __send_task
if not await self.send_to_jeedom(changes):
File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/jeedomdaemon/aio_connector.py", line 122, in send_to_jeedom
async with self._jeedom_session.post(self._callback_url + '?apikey=' + self._api_key, json=payload) as resp:
File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/aiohttp/client.py", line 1197, in __aenter__
self._resp = await self._coro
File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/aiohttp/client.py", line 608, in _request
await resp.start(conn)
File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/aiohttp/client_reqrep.py", line 991, in start
self._continue = None
File "/var/www/html/plugins/MQTTDiscovery/resources/venv/lib/python3.9/site-packages/aiohttp/helpers.py", line 735, in __exit__
raise asyncio.TimeoutError from None
asyncio.exceptions.TimeoutError
[2024-06-04 07:16:47] INFO : Starting daemon with log level: info
[2024-06-04 07:16:47] INFO : Listening on 127.0.0.1:55074
[2024-06-04 07:16:47] INFO : Send async started with a cycle of 1.0s
[2024-06-04 07:16:47] INFO : Successfully connected to MQTT server
[2024-06-04 07:16:47] INFO : Successfully subscribed to discovery topic homeassistant
[2024-06-04 07:16:47] INFO : Successfully subscribed to home
Pour la conf du plugin, le paramètre cycle est laissé à 1 :
ok la version a bien été mise à jour
normalement le démon a été relancé juste après?
si ok alors on verra cette nuit après la montée en charge, s’il y a eu des soucis il devrait y avoir des lignes en WARNING avec le timeout mais ensuite cela devrait reprendre.
14Go de db c’est énorme, il doit y avoir bcp d’historique
il existe d’autres posts sur community qui aborde cette problématique
Oui j’ai bien relancé le démon après.
Pour le moment, j’ai modifié l’option "purger l’historique plus vieux que " 1 an, je ne veux pas trop purger (pas par crainte de quoique ce soit mais pour voir si tes modifs peuvent influencer le fonctionnement actuel).
Oui je me doutais que c’était trop gros (je commencerai à purger et épurer jeedom ces jours ci).
[2024-06-04 17:27:36] INFO : Starting daemon with log level: info
[2024-06-04 17:27:36] INFO : Listening on 127.0.0.1:55074
[2024-06-04 17:27:36] INFO : Successfully connected to MQTT server
[2024-06-04 17:27:36] INFO : Successfully subscribed to discovery topic homeassistant
[2024-06-04 17:27:36] INFO : Send async started with a cycle of 1.0s
[2024-06-04 17:27:36] INFO : Successfully subscribed to home
[2024-06-05 00:44:38]WARNING : Timeout on send request to jeedom