JMQTT se déconnecte du serveur mqtt lors de l'envoi d'une commande spécifique

Bonjour,

Merci d’avance à ceux qui prendront la peine de lire ce message.

J’ai tagué le plugin JMQTT sans savoir s’il est impliqué dans mon problème.

Config :
Serveur Proxmox 8.4.5
Jeedom est installé en version 4.4.19 sur une VM Debian 12
Mon serveur MQTT est installé en standalone sur une autre VM Debian 12
HyperHDD (fork d’Hyperion) est installé sur une troisième VM Debian 12

Mon système est stable depuis des mois, la majorité de ma domotique passe en mqtt (z2mqtt + zwaveJS).

Je souhaite pouvoir désactiver HypeHDR depuis Jeedom via une commande envoyée via mqtt.
HyperHDR est bien connecté à mon brooker mqtt et a son topic dédié : hyperhdr/JsonAPI

Selon la documentation, les commandes à envoyer sur ce topic sont pour la désactivation :

{
	"command":"componentstate",
	"componentstate":
	{
		"component":"LEDDEVICE",
		"state": false
	}
}

et pour l’activation :

{
	"command":"componentstate",
	"componentstate":
	{
		"component":"LEDDEVICE",
		"state": true
	}
}

Dans JMQTT j’ai créé un équipement qui est connecté à mon broker mqtt et écoute le topic hyperhdr/JsonAPI/#

J’ai créé deux commandes ACTION avec en valeur les commandes ci-dessus :

Lorsque je lance ma commande pour désactiver HyperHDR, elle est bien reçue par mon broker mqtt et transmise à HyperHDR qui l’exécute en revanche lorsque je lance ma commander pour activer HyperHRD, JMQTT est déconnecté immédiatement de mon serveur mqtt pendant plusieurs dizaines de secondes.

Pendant cette déconnexion le serveur mqtt continue de tourner.
Si j’envoie la même commande dans le même topic depuis MQTT Explorer, elle est bien transmise et exécutée par HyperHRD.

Si quelqu’un a une piste je suis preneur.

Merci.

Hello @arcameca,

Je peux avoir ta page santé et les logs de jMQTT en débug lors de la désactivation et de l’activation stp ?

Bonjour @Bad.

Voici la capture d’écran de la page santé :

Ici les logs en mode débug que j’ai tronqué après la reconnexion (j’ai 1500 lignes en un peu plus d’une secondes quand il se reconnecte).

[2025-08-21 10:59:11,227][INFO] Main            MainThread   set_log_level() : New log level set to: DEBUG
[2025-08-21 10:59:15,469][INFO] Client22        Brk22Th         on_message() : Message received (topic="zwave/Salon/Prise_Orange_TV/lastActive", payload="{"time":1755766755465,"value":1755766755465}", QoS=1, retain=False)
[2025-08-21 10:59:15,469][DEBUG] JMsg.Snd        Brk22Th         send_async() : Enqued the message in 0.000715ms (qToJ size 1): {'cmd': 'messageIn', 'id': '22', 'topic': 'zwave/Salon/Prise_Orange_TV/lastActive', 'payload': '{"time":1755766755465,"value":1755766755465}', 'qos': 1, 'retain': False}
[2025-08-21 10:59:15,469][INFO] Client22        Brk22Th         on_message() : Message received (topic="zwave/Salon/Prise_Orange_TV/49/0/Power", payload="{"time":1755766755467,"value":11.7}", QoS=1, retain=False)
[2025-08-21 10:59:15,469][DEBUG] JMsg.Snd        Brk22Th         send_async() : Enqued the message in 0.000238ms (qToJ size 2): {'cmd': 'messageIn', 'id': '22', 'topic': 'zwave/Salon/Prise_Orange_TV/49/0/Power', 'payload': '{"time":1755766755467,"value":11.7}', 'qos': 1, 'retain': False}
[2025-08-21 10:59:15,522][DEBUG] JMsg.Snd        SockOut           _loopSnd() : Sending 2 messages (0 left in queue)
[2025-08-21 10:59:15,530][DEBUG] JMsg.Snd        SockOut               send() : Sent TO Jeedom 2 messages handled in 8.257389ms (qToJ size 0): [{'cmd': 'messageIn', 'id': '22', 'topic': 'zwave/Salon/Prise_Orange_TV/lastActive', 'payload': '{"time":1755766755465,"value":1755766755465}', 'qos': 1, 'retain': False}, {'cmd': 'messageIn', 'id': '22', 'topic': 'zwave/Salon/Prise_Orange_TV/49/0/Power', 'payload': '{"time":1755766755467,"value":11.7}', 'qos': 1, 'retain': False}]
[2025-08-21 10:59:15,716][INFO] Client22        Brk22Th         on_message() : Message received (topic="zwave/Salon/Prise_Orange_TV/lastActive", payload="{"time":1755766755715,"value":1755766755465}", QoS=1, retain=False)
[2025-08-21 10:59:15,716][DEBUG] JMsg.Snd        Brk22Th         send_async() : Enqued the message in 0.000715ms (qToJ size 1): {'cmd': 'messageIn', 'id': '22', 'topic': 'zwave/Salon/Prise_Orange_TV/lastActive', 'payload': '{"time":1755766755715,"value":1755766755465}', 'qos': 1, 'retain': False}
[2025-08-21 10:59:15,730][DEBUG] JMsg.Snd        SockOut           _loopSnd() : Sending 1 messages (0 left in queue)
[2025-08-21 10:59:15,735][DEBUG] JMsg.Snd        SockOut               send() : Sent TO Jeedom 1 messages handled in 4.308701ms (qToJ size 0): [{'cmd': 'messageIn', 'id': '22', 'topic': 'zwave/Salon/Prise_Orange_TV/lastActive', 'payload': '{"time":1755766755715,"value":1755766755465}', 'qos': 1, 'retain': False}]
[2025-08-21 10:59:20,240][INFO] Client22        MainThread         publish() : Sending message to broker (topic="hyperhdr/JsonAPI
", payload="{"command":"componentstate","componentstate":{"component":"LEDDEVICE","state":true}}", QoS=1, retain=False)
[2025-08-21 10:59:20,240][DEBUG] JMsg.Snd        Brk22Th         send_async() : Enqued the message in 0.000477ms (qToJ size 1): {'cmd': 'brokerDown', 'id': '22'}
[2025-08-21 10:59:20,240][ERROR] Client22        Brk22Th      on_disconnect() : Unexpected disconnection from broker!
[2025-08-21 10:59:20,340][DEBUG] JMsg.Snd        SockOut           _loopSnd() : Sending 1 messages (0 left in queue)
[2025-08-21 10:59:20,357][DEBUG] JMsg.Snd        SockOut               send() : Sent TO Jeedom 1 messages handled in 17.534971ms (qToJ size 0): [{'cmd': 'brokerDown', 'id': '22'}]
[2025-08-21 10:59:25,241][INFO] Client22        Brk22Th         on_connect() : Connected to broker 192.168.1.216:1883
[2025-08-21 10:59:25,242][INFO] Client22        Brk22Th    subscribe_topic() : Topic subscribed "zwave/Extérieur/Portail_module/#"
[2025-08-21 10:59:25,242][INFO] Client22        Brk22Th    subscribe_topic() : Topic subscribed "hyperhdr/JsonAPI/#"
[2025-08-21 10:59:25,242][INFO] Client22        Brk22Th    subscribe_topic() : Topic subscribed "zwave/Salon/Prise_Orange_TV/#"
[2025-08-21 10:59:25,242][INFO] Client22        Brk22Th    subscribe_topic() : Topic subscribed "zwave/Chambre2/Prise_manettes/#"
[2025-08-21 10:59:25,242][INFO] Client22        Brk22Th    subscribe_topic() : Topic subscribed "zwave/Salon/Prise_TV/#"
[2025-08-21 10:59:25,242][INFO] Client22        Brk22Th    subscribe_topic() : Topic subscribed "zwave/Chambre3/THERM/#"
[2025-08-21 10:59:25,242][INFO] Client22        Brk22Th    subscribe_topic() : Topic subscribed "zwave/Chambre2/THERM/#"
[2025-08-21 10:59:25,242][INFO] Client22        Brk22Th    subscribe_topic() : Topic subscribed "zwave/Salon/THERM_SAM/#"
[2025-08-21 10:59:25,242][INFO] Client22        Brk22Th    subscribe_topic() : Topic subscribed "zwave/SDB/THERM_SDB/#"
[2025-08-21 10:59:25,242][INFO] Client22        Brk22Th    subscribe_topic() : Topic subscribed "zwave/Chambre1/THERM/#"
[2025-08-21 10:59:25,242][INFO] Client22        Brk22Th    subscribe_topic() : Topic subscribed "zwave/Salon/VR_Sud/#"
[2025-08-21 10:59:25,242][INFO] Client22        Brk22Th    subscribe_topic() : Topic subscribed "zwave/Salon/VR_Ouest/#"


Dis-moi si tu as besoin du log complet mais je n’y ai rien vu de particulier, après la reconnexion tout fonctionne normalement.

Merci pour le coup de main.

Hello,

La déconnection vient du Broker, pas de jMQTT :

Mais je pense que c’est par ce qu’il y a un retour à la ligne dans le topic du "state":true, on le vois dans le log :

topic="hyperhdr/JsonAPI
"

Bad

3 « J'aime »

Merci beaucoup @Bad , c’était en effet cela.

Pas visible sur l’interface Jeedom car comme on le voit sur ma capture d’écran la colonne « Valeur » comporte plusieurs lignes et j’étais passé à côté dans les logs par manque d’habitude.

Encore merci. :+1:

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.