Perte de présence (rssi à -200) mais daemon MQTTDiscovery OK

Bonjour tout le monde,

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 :cry:

Voici ma page santé :

Avez vous une idée ?

Salut

Peux-tu mettre tes logs en utilisant Texte préformaté c’est le bouton </>.

Sinon quand cela arrive chez moi, c’est plus tgw qui bugue. Je relance et tout reppart.

Antoine

Bonjour,

A priori pas dû à ce plugin.
Est-ce que vos devices sont toujours remontés sur mqtt? Si non aucune chance que mqttdiscovery les voit.

Laissez le log sur info au minimum, pas debug.

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

Bonjour,

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 :

Mes devices bluetooth sont tous en rssi à -200, voici les 2 qui gèrent la présence :
image

Il me faudrait toutes les infos demandées:

  • page santé jeedom
  • log d’installation des dépendances
  • 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.

1 « J'aime »

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

Voici donc :



Log d’installation des dépendances :

======================================================================
== 27/05/2024 06:19:02 == Dependencies installation for MQTTDiscovery
======================================================================
[  5% ] : Clean apt...
[  9% ] : Clean apt : [  OK  ]
[ 10% ] : Update apt...
[ 19% ] : Update apt : [  OK  ]
[ 20% ] : Init python3 & prerequisites...
[ 31% ] : Init python3 & prerequisites : [  OK  ]
[ 32% ] : Init pyEnv...
** PyEnv not required: 3.9.2 >= 3.9 **
** python3 path: python3 **
[ 43% ] : Init pyEnv : [  OK  ]
[ 44% ] : Setting up virtual environment...
** Version of python in VENV: Python 3.9.2
[ 79% ] : Setting up virtual environment : [  OK  ]
[ 80% ] : Install the required python packages...
[ 89% ] : Install the required python packages : [  OK  ]
[ 90% ] : Summary of installed packages...
aiohttp==3.9.5
aiosignal==1.3.1
async-timeout==4.0.3
attrs==23.2.0
frozenlist==1.4.1
idna==3.7
jeedomdaemon==0.9.7
multidict==6.0.5
paho-mqtt==2.1.0
pkg_resources==0.0.0
yarl==1.9.4
[ 99% ] : Summary of installed packages : [  OK  ]
[100% ] : Finished !
======================================================================
==OK== Installation Successful
======================================================================

Et log du deamon au moment de l’arrêt :

[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 :

Merci d’avance @mips pour ton aide :wink:

Je viens de regarder le tar.gz de bkp :
il y a le DB_backup.sql,qui fait 14Go…

Je viens de relancer l’install des dépendances :

======================================================================
== 04/06/2024 17:26:40 == Dependencies installation for MQTTDiscovery
======================================================================
[  5% ] : Clean apt...
[  9% ] : Clean apt : [  OK  ]
[ 10% ] : Update apt...
[ 19% ] : Update apt : [  OK  ]
[ 20% ] : Init python3 & prerequisites...
[ 31% ] : Init python3 & prerequisites : [  OK  ]
[ 32% ] : Init pyEnv...
** PyEnv not required: 3.9.2 >= 3.9 **
** python3 path: python3 **
[ 43% ] : Init pyEnv : [  OK  ]
[ 44% ] : Setting up virtual environment...
** Version of python in VENV: Python 3.9.2
[ 79% ] : Setting up virtual environment : [  OK  ]
[ 80% ] : Install the required python packages...
[ 89% ] : Install the required python packages : [  OK  ]
[ 90% ] : Summary of installed packages...
aiohttp==3.9.5
aiosignal==1.3.1
async-timeout==4.0.3
attrs==23.2.0
frozenlist==1.4.1
idna==3.7
jeedomdaemon==0.9.8
multidict==6.0.5
paho-mqtt==2.1.0
pkg_resources==0.0.0
yarl==1.9.4
[ 99% ] : Summary of installed packages : [  OK  ]
[100% ] : Finished !
======================================================================
==OK== Installation Successful
======================================================================

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

1 « J'aime »

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 :wink: (je commencerai à purger et épurer jeedom ces jours ci).

@Mips : pas de bagot de présence cette nuit.
Ta correction/évolution semble avoir été bénéfique.

Maintenant je vais m’atteler à purger et assainir ma jeedom.
Un grand merci donc !

1 « J'aime »

Je peux voir le log du démon stp?

Oui, on voit bien le Timeout écrit


[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

‹  ›’

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.