Implémentation de la gestion de la QoS (pour la transmission des évènements Jeedom)

Bonsoir @Loic

en lien avec ce sujet : Petite question sur la gestion de la QoS

Penses-tu qu’il soit possible d’implementer une gestiond e la QoS (0,1 ou 2) dans la publication des evenements Jeedom via mqtt2 (coche « transmettre tous les evenements »).

Mon cas d’usage, je transmets via cette option des evts entre 2 jeedom via une connexion 4G très instable. une QoS de 1 me permettrait d’être sur que, malgré les déconnexions, tous les messages attendus sont bien arrivés (ex. la pompe de la piscine se met en route lorsque la 4G peclote ! le message actuellement est bien émis mais jamais reçu, et sur mon jeedom 2, le pompe est toujours à OFF

A ce jour, d’après mes différents checks, la gestion de la QoS est possible sur zigbee2mqtt, jmqtt, les shelly en mqtt.
Elle n’est pas possible sur les tasmota en mqtt, sur mqtt2 (transmission d’evt) et vlx2mqtt

Merci d’avance pour ton retour (sans urgences)

Norbert

Bonjour
Oui ça doit être possible je l’avais prévu. Je me le note mais ça va prendre du temps car j’ai énormément de bug partout a corriger avant de faire de l’ajout de fonctionnalités.

1 « J'aime »

Sans souci, c’est une amélioration, donc par définition pas urgente !

J’en profite, je ne sais pas si ca peut-être utile et si c’ets une bonne idée, ou si ca peut limiter les ressources utilisées ou le volume de données générées. Penses-tu qu’il soit pertinent, toujours sur cette fonctionnalité de transmission d’evt Jeedom, de rajouter un filtre pour « interdire » la génération de message pour les plugins listés dans le filtre. par exemple, des plugins comme zigbee2mqtt, jeezigbee, zwaveJS mettent dejà à disposition des messages en MQTT … donc ce sont des doublons lorsqu’on les transmet via cette fonctionnalité de transmission d’EVT. A mon sens, ce filtre doit être paramétrable par l’utilisateur.
… Mais c’est peut-être une fausse bonne idée, le fait de filtrer est peut-être plus lourd que le fait de produire des messages pour tous les plugins

Norbert

A priori une opération IO (quelle qu’elle soit: réseau, disque…) sera toujours plus consommatrice qu’un test en mémoire

Bonjour,
Pour le qos ca sera disponible demain.

Pour le filtre ce n’est pas prévu, je vois arriver le truc on va ensuite me demander par équipement puis par commande puis meme par valeur, ca va faire une usine a gaz. Le but est de rester simple.

J’adorerai comme me dise ca au boulot lorsque je demande quelquechose et qu’on me repond que ca va etre long :wink:

Beta installée, mais message d’erreur suivant et demon qui ne demarre pas :

0000|node:internal/modules/cjs/loader:1031
0001|throw err;
0002|^
0003|Error: Cannot find module 'axios'
0004|Require stack:
0005|- /var/www/html/plugins/mqtt2/resources/mqtt2d/jeedom/jeedom.js
0006|- /var/www/html/plugins/mqtt2/resources/mqtt2d/mqtt2d.js
0007|at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1028:15)
0008|at Function.Module._load (node:internal/modules/cjs/loader:873:27)
0009|at Module.require (node:internal/modules/cjs/loader:1100:19)
0010|at require (node:internal/modules/cjs/helpers:119:18)
0011|at Object.<anonymous> (/var/www/html/plugins/mqtt2/resources/mqtt2d/jeedom/jeedom.js:17:15)
0012|at Module._compile (node:internal/modules/cjs/loader:1198:14)
0013|at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
0014|at Module.load (node:internal/modules/cjs/loader:1076:32)
0015|at Function.Module._load (node:internal/modules/cjs/loader:911:12)
0016|at Module.require (node:internal/modules/cjs/loader:1100:19) {
0017|code: 'MODULE_NOT_FOUND',
0018|requireStack: [
0019|'/var/www/html/plugins/mqtt2/resources/mqtt2d/jeedom/jeedom.js',
0020|'/var/www/html/plugins/mqtt2/resources/mqtt2d/mqtt2d.js'
0021|]
0022|}
0023|node:internal/modules/cjs/loader:1031
0024|throw err;
0025|^
0026|Error: Cannot find module 'axios'
0027|Require stack:
0028|- /var/www/html/plugins/mqtt2/resources/mqtt2d/jeedom/jeedom.js
0029|- /var/www/html/plugins/mqtt2/resources/mqtt2d/mqtt2d.js
0030|at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1028:15)
0031|at Function.Module._load (node:internal/modules/cjs/loader:873:27)
0032|at Module.require (node:internal/modules/cjs/loader:1100:19)
0033|at require (node:internal/modules/cjs/helpers:119:18)
0034|at Object.<anonymous> (/var/www/html/plugins/mqtt2/resources/mqtt2d/jeedom/jeedom.js:17:15)
0035|at Module._compile (node:internal/modules/cjs/loader:1198:14)
0036|at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
0037|at Module.load (node:internal/modules/cjs/loader:1076:32)
0038|at Function.Module._load (node:internal/modules/cjs/loader:911:12)
0039|at Module.require (node:internal/modules/cjs/loader:1100:19) {
0040|code: 'MODULE_NOT_FOUND',
0041|requireStack: [
0042|'/var/www/html/plugins/mqtt2/resources/mqtt2d/jeedom/jeedom.js',
0043|'/var/www/html/plugins/mqtt2/resources/mqtt2d/mqtt2d.js'
0044|]
0045|}
0046|node:internal/modules/cjs/loader:1031
0047|throw err;
0048|^
0049|Error: Cannot find module 'axios'
0050|Require stack:
0051|- /var/www/html/plugins/mqtt2/resources/mqtt2d/jeedom/jeedom.js
0052|- /var/www/html/plugins/mqtt2/resources/mqtt2d/mqtt2d.js
0053|at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1028:15)
0054|at Function.Module._load (node:internal/modules/cjs/loader:873:27)
0055|at Module.require (node:internal/modules/cjs/loader:1100:19)
0056|at require (node:internal/modules/cjs/helpers:119:18)
0057|at Object.<anonymous> (/var/www/html/plugins/mqtt2/resources/mqtt2d/jeedom/jeedom.js:17:15)
0058|at Module._compile (node:internal/modules/cjs/loader:1198:14)
0059|at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
0060|at Module.load (node:internal/modules/cjs/loader:1076:32)
0061|at Function.Module._load (node:internal/modules/cjs/loader:911:12)
0062|at Module.require (node:internal/modules/cjs/loader:1100:19) {
0063|code: 'MODULE_NOT_FOUND',
0064|requireStack: [
0065|'/var/www/html/plugins/mqtt2/resources/mqtt2d/jeedom/jeedom.js',
0066|'/var/www/html/plugins/mqtt2/resources/mqtt2d/mqtt2d.js'
0067|]
0068|}

Un module node.js semble etre necessaire : Axios
L’install des dependance ne change rien

Norbert

Bonjour,
Il faut relancer les dépendances a la main sur cette version.

Qu’entends tu par relancer à la main ?

J’ai relancé en cliquant sur « relancer », la dernière install est bien à la date/heure de maintenant, mais pas mieux

Norbert

Tu es bien en jeedom beta ?

oui, 4.4.0

Bizarre ca devrait marcher tu as mis a jour recemment ? Car ce bug je l’ai corrigé semaine derniere je crois (pour rappel en beta/alpha il faut mettre a jour frequement jeeodm ne te previent pas lors d’une nouvelle version).

J’ai du mettre à jour en début de semaine derniere … je remets à jour

Et si ca marche pas effaces tous les logs, relance les dépendances et donne moi le log de celle-ci

C’est OK pour l’install et le redemarrage du demon.
J’ai par contre toujours une QoS de 0
ce que j’ai fait : QoS = 1, sauvegarde et relance du demon

mon mqtt explorer est bien paramétré pour une QoS de 1

Et ca fonctionne bien avec mes shellies

Tu as le log en debug du démon ?

Oui, c’est un peu verbeux, tu souhaites quelle partie ?

Juste celui qui apparait lors de l’envoi d’un message, pour voir quelle options il prend.

3702|[2023-08-25 08:45:31]DEBUG : Publish message on topic : jeedom_stlattier/cmd/event/10759 => {"value":"1692953120","humanName":"[Infra domo][Gestion disponibilité Jeedom - scripts][Script recup Jeedom St Etienne]","unite":"","name":"Script recup Jeedom St Etienne","type":"info","subtype":"numeric"} with options : {}
3703|[2023-08-25 08:45:31]DEBUG : Publish message on topic : jeedom_stlattier/cmd/event/10764 => {"value":"1692953120","humanName":"[Infra domo][Gestion disponibilité Jeedom][Jeedom St Etienne]","unite":"","name":"Jeedom St Etienne","type":"info","subtype":"numeric"} with options : {}
3704|[2023-08-25 08:45:31]DEBUG : Publish message on topic : jeedom_stlattier/cmd/event/8796 => {"value":"233.69","humanName":"[Cuisine][_Volet][voltage]","unite":"V","name":"voltage","type":"info","subtype":"numeric"} with options : {}
3705|[2023-08-25 08:45:31]DEBUG : Publish message on topic : jeedom_stlattier/cmd/event/8670 => {"value":"237.42","humanName":"[Salon][Volet Baie][voltage]","unite":"V","name":"voltage","type":"info","subtype":"numeric"} with options : {}
3706|[2023-08-25 08:45:31]DEBUG : Publish message on topic : jeedom_stlattier/cmd/event/1619 => {"value":"1692953106","humanName":"[Infra domo][Scan.IP_Shelly_Piscine_Pompe][Update Time]","unite":"","name":"Update Time","type":"info","subtype":"numeric"} with options : {}
3707|[2023-08-25 08:45:31]DEBUG : Publish message on topic : jeedom_stlattier/cmd/event/1623 => {"value":"1692953106","humanName":"[Infra domo][Scan.IP_Shelly_Piscine_Lumiere][Update Time]","unite":"","name":"Update Time","type":"info","subtype":"numeric"} with options : {}
3708|[2023-08-25 08:45:32]DEBUG : Publish message on topic : jeedom_stlattier/cmd/event/1624 => {"value":"25/08/2023 10:45:06","humanName":"[Infra domo][Scan.IP_Shelly_Piscine_Lumiere][Update Date]","unite":"","name":"Update Date","type":"info","subtype":"string"} with options : {}
3709|[2023-08-25 08:45:32]DEBUG : Publish message on topic : jeedom_stlattier/cmd/event/1612 => {"value":"25/08/2023 10:45:06","humanName":"[Infra domo][Scan.IP_Shelly_Volet_Cuisine][Update Date]","unite":"","name":"Update Date","type":"info","subtype":"string"} with options : {}
3710|[2023-08-25 08:45:32]DEBUG : Publish message on topic : jeedom_stlattier/cmd/event/1611 => {"value":"1692953106","humanName":"[Infra domo][Scan.IP_Shelly_Volet_Cuisine][Update Time]","unite":"","name":"Update Time","type":"info","subtype":"numeric"} with options : {}
3711|[2023-08-25 08:45:32]DEBUG : Publish message on topic : jeedom_stlattier/cmd/event/10373 => {"value":"25/08/2023 10:45:06","humanName":"[Infra domo][Scan_IP Tasmota Niveau piscine][Last Date]","unite":"","name":"Last Date","type":"info","subtype":"string"} with options : {}
3712|[2023-08-25 08:45:33]DEBUG : Publish message on topic : jeedom_stlattier/cmd/event/1620 => {"value":"25/08/2023 10:45:06","humanName":"[Infra domo][Scan.IP_Shelly_Piscine_Pompe][Update Date]","unite":"","name":"Update Date","type":"info","subtype":"string"} with options : {}
3713|[2023-08-25 08:45:33]DEBUG : Publish message on topic : jeedom_stlattier/cmd/event/11498 => {"value":"25/08/2023 10:45:06","humanName":"[Periphériques][Scan.IP NSPanel Entrée][Last Date]","unite":"","name":"Last Date","type":"info","subtype":"string"} with options : {}
3714|[2023-08-25 08:45:33]DEBUG : Publish message on topic : jeedom_stlattier/cmd/event/1607 => {"value":"1692953106","humanName":"[Infra domo][Scan.IP_Shelly_Volet_Salon_Porte][Update Time]","unite":"","name":"Update Time","type":"info","subtype":"numeric"} with options : {}

A mets tu le veux pour tout pas que les équipements du plugin mqtt. J’avais pas compris.

Je viens de pousser une nouvelle beta tu peux mettre a jour et retester ?