Demon jmqtt ko sous docker

Bonjour,

J’ai installé jmqtt avec succès depuis quelques temps déjà dans mon container docker, mais aujourd’hui suite à mes bidouilles ça ne démarre plus, et je ne sais pas le relancer.
J’étais sur la version beta, j’ai fait la mise à jour aujourd’hui, puis ensuite je suis revenu à tout hasard sur la version stable, mais pas mieux. J’ai remarqué que dans Docker le demon ne se nettoie pas, il y a souvent plusieurs PID à killer sinon ça s’accumule, mais même après avoir nettoyé, ça plante, avec cette erreur:

[2022-10-02 21:10:39]INFO : Lancement du démon jMQTT
[2022-10-02 21:10:48]WARNING : Démon [6034:44459] : N'a pas pû être authentifié
[2022-10-02 21:10:49]DEBUG : Nettoyage du Démon
[2022-10-02 21:10:49]ERROR : Impossible de lancer le démon jMQTT, vérifiez le log
[2022-10-02 21:11:34]DEBUG : Démon [6034:44459] : Impossible d'autoriser la cmd 'hb' avant la commande 'daemonUp': '{"cmd":"hb"}'

A quoi sert cette « url de callback » et qu’est ce que je dois y mettre de spécifique ?

merci

Hello,

Sais-tu me dire ce que tu as bidouillé (à part update ) ?

Si tu étais en beta et que tu as fait la maj de ce weekend, reste dessus, il y a des script d’update de certains champs de config qui ne sont pas compatibles avec la stable.

Ça ressemble à un PB de droit sur le container, mais avant d’en être sur, il me faudrait les log du daemon en débug stp.

Tu es sur quelle version de Jeedom ?

Ces suite à ce thread que la modification de l’URL de callback a été introduite pour les Docker, ça vaut le coup d’œil :

Jusqu’au message 39.

Bad

Alors, j’avais des Go de log jMQTT à la limite de remplir le filesystem, mais au final ça venait d’une prise qui envoie ses mesures chaque seconde (je ne sais pas pourquoi, elle doit être HS, je l’ai débranchée au final) mais avant de l’identifier j’ai dû redémarrer un peu tout - broquer MQTT dans un autre contener, le demon, le contener jeedom ensuite, … -
Le problème quand je redémarre le contener jeedom, les démons ne redémarrent pas je dois les relancer manuellement.
Au final j’ai donc débranché la prise et supprimé les logs jMQTT mais je n’arrivais plus à relancer le demon. Je précise que je n’ai aucun privilège sur mon Jeedom et le port est bien 80, je suis derrière un reverse-proxy nginx (pour info le docker-compose utilisé). Donc, pour ce que j’en comprends, je n’ai pas besoin de personnaliser cette URL de callback (?)

Suite à l’autre fil de discussion j’ai vidé le /tmp/jeedom/jMQTT il y avait 2 fichiers :

root@jeedom:/tmp/jeedom/jMQTT# ls -alsh
total 8.0K
4.0K drwxr-xr-- 2 www-data www-data 4.0K Oct  2 23:30 .
4.0K drwxrwxrwx 1 www-data www-data 4.0K Oct  2 22:39 ..
   0 -rw-r--r-- 1 root     root        0 Oct  2 22:31 errorLog.2044
   0 -rw-r--r-- 1 root     root        0 Oct  2 22:48 errorLog.7335
root@jeedom:/tmp/jeedom/jMQTT# rm *
root@jeedom:/tmp/jeedom/jMQTT# ps -aux | grep jMQTT
root      142667  0.0  0.0   2828   656 pts/1    S+   09:54   0:00 grep jMQTT

Et voila, le démon est démarré, problème réglé…

Voici quand même pour info des logs d’hier soir mes échecs: jMQTTd

[2022-10-02 23:22:29,443][DEBUG] JMsg.Snd        SockOut               send() : Sent TO Jeedom: [{'cmd': 'hb'}]
[2022-10-02 23:22:50,563][INFO] Main            MainThread   set_log_level() : New log level set to: DEBUG
[2022-10-02 23:22:50,568][DEBUG] Main            MainThread         prepare() : Writing PID 14638 to /tmp/jeedom/jMQTT/jmqttd.py.pid
[2022-10-02 23:22:50,581][INFO] Main            MainThread         prepare() : Log level   : debug
[2022-10-02 23:22:50,582][INFO] Main            MainThread         prepare() : Socket port : 0
[2022-10-02 23:22:50,585][INFO] Main            MainThread         prepare() : Callback url: http://127.0.0.1:80/plugins/jMQTT/core/php/callback.php
[2022-10-02 23:22:50,586][INFO] Main            MainThread         prepare() : PID file    : /tmp/jeedom/jMQTT/jmqttd.py.pid
[2022-10-02 23:22:50,588][DEBUG] Main            MainThread         prepare() : Apikey      : xxxxxxxx
[2022-10-02 23:22:50,594][DEBUG] JMsg.Rcv        MainThread  receiver_start() : Start requested
[2022-10-02 23:22:50,604][DEBUG] JMsg.Rcv        SockIn            _loopRcv() : Start
[2022-10-02 23:22:50,613][INFO] JMsg.Rcv        MainThread  receiver_start() : Started, listening on [127.0.0.1:36187]
[2022-10-02 23:22:50,831][DEBUG] JMsg.Snd        MainThread       send_test() : Test successful
[2022-10-02 23:22:50,834][DEBUG] JMsg.Snd        MainThread    sender_start() : Start requested
[2022-10-02 23:22:50,844][DEBUG] JMsg.Snd        SockOut           _loopSnd() : Start
[2022-10-02 23:22:50,854][INFO] JMsg.Snd        MainThread    sender_start() : Started
[2022-10-02 23:22:50,856][DEBUG] JMsg.Snd        MainThread      send_async() : Enqued message: {'cmd': 'daemonUp'}
[2022-10-02 23:22:50,857][DEBUG] Main            MainThread       open_comm() : Open Comm   : Sent Daemon Up signal to Jeedom
[2022-10-02 23:22:50,959][DEBUG] JMsg.Snd        SockOut           _loopSnd() : Sending 1 msgs
[2022-10-02 23:22:51,835][DEBUG] JMsg.Snd        SockOut               send() : Sent TO Jeedom: [{'cmd': 'daemonUp'}]
[2022-10-02 23:22:57,051][DEBUG] JMsg.Snd        SockOut           _loopSnd() : Sending 1 msgs

jMQTT

[2022-10-02 23:22:12]DEBUG : Démon [9391:33479] : Impossible d'autoriser la cmd 'hb' avant la commande 'daemonUp': '{"cmd":"hb"}'
[2022-10-02 23:22:12]INFO : Lancement du démon jMQTT
[2022-10-02 23:22:22]DEBUG : Nettoyage du Démon
[2022-10-02 23:22:29]DEBUG : Démon [10817:44151] : Impossible d'autoriser la cmd 'hb' avant la commande 'daemonUp': '{"cmd":"hb"}'
[2022-10-02 23:22:29]DEBUG : Démon [12573:37279] : Impossible d'autoriser la cmd 'hb' avant la commande 'daemonUp': '{"cmd":"hb"}'
[2022-10-02 23:22:29]DEBUG : Démon [11485:37889] : Impossible d'autoriser la cmd 'hb' avant la commande 'daemonUp': '{"cmd":"hb"}'
[2022-10-02 23:22:47]ERROR : Impossible de lancer le démon jMQTT, vérifiez le log
[2022-10-02 23:22:51]WARNING : Démon [14638:36187] : N'a pas pû être authentifié
[2022-10-02 23:22:57]DEBUG : Démon [9391:33479] : Impossible d'autoriser la cmd 'hb' avant la commande 'daemonUp': '{"cmd":"hb"}'

Ouep, c’est Jeedom qui gère les fichiers de log.
Ils ne sont tronqués que lors de l’affichage et tous les soir lors du nettoyage.
Si tu n’as pas de souci avec jMQTT passe en niveau de log « Warning », c’est largement suffisant.

Dans le cas où Jeedom est configuré avec un port différent du 80 dans la partie réseau, il y a lieu d’utiliser le champ de modification de l’url de callback. Ce n’est pas ton cas, donc pas besoin d’y toucher :wink:

Ravi que tout remarche après un simple reboot en tout cas…