Page 22 sur 33

Re: Plugin jMQTT

Publié : 13 avr. 2019, 07:37
par domotruc
fred1978 a écrit :
11 avr. 2019, 22:32
Bonjour à tous,

J'utilise le plugin depuis pas mal de temps et tout fonctionne très bien (merci au développeur). J'apprécie particulièrement la fonction de parsing car les topics sont relativement dense en information. J'ai remarqué que la fonction de parsing occasionnait le doublement de la charge de mon processeur (en machine virtuelle). Ce n'est pas grave en soi, mon server a de la réserve mais je cherche toutefois un moyen de le réduire. Une idée?
MErci pour votre aide
Bonjour Fred,
En gros le traitement d'une payload "parsée" nécessite autant de traitements qu'une payload simple. Donc une payload JSON décomposée en 10 commandes va multiplier par 10 les traitements.
Je ne vois pas énormément de pistes pour réduire:
* N'historiser que si c'est utile
* Diminuer la fréquence d’émission des messages côté équipement

Re: Plugin jMQTT

Publié : 13 avr. 2019, 08:23
par domotruc
golfvert a écrit :
11 avr. 2019, 13:58
Bonjour,
Je voudrais utiliser le plugin jmqtt (qui fonctionne très bien, merci pour le dev!) pour publier des messages variables sur des topic eux-mêmes variables. Un peu comme un message "telegram" qui prend en paramètre le titre et le message lui-même.
Là, l'idée ce serait d'avoir une commande "Pub" avec une deux champs "topic" et "payload". Le tout sans passer par des variables ou par un script qui appelerait mosquitto_sub par exemple. Ca j'y arrive mais ça ajoute des étapes.
C'est faisable?

Dans mes tests actuels, j'ai crée un objet "Publish" qui a une commande action "pub". Quand je mets variable(topic) dans le champ topic ça n'instance pas la variable. Je me retrouve dans le log avec :

Code : Tout sélectionner

[2019-04-11 13:55:20][INFO] : <- Publish|variable(topic) "ceci est un message"
[2019-04-11 13:55:20][DEBUG] : Publication du message variable(topic) "ceci est un message" (pid=31351, qos=1, retain=0)
[2019-04-11 13:55:20][DEBUG] : Message publié
Qui n'est pas ce que je voudrais!!

Dans ce cas, j'ai un scenario qui positionne la variable topic, la variable payload et qui appelle l'action "pub".
J'ai loupé un truc?
Merci

Bonjour GV,
La payload est aujourd'hui paramétrable comme tu le souhaites, mais pas le topic.
C'est une bonne idée, que j'ai ajoutée dans la liste des évolutions, voir ici.
Actuellement, je suis sur une grosse évolution du plugin pour le rendre compatible de plusieurs brokers, je le ferai dans la foulée, d'ici 2 à 3 semaines en version beta, 3 à 4 semaines en version stable.

Re: Plugin jMQTT

Publié : 13 avr. 2019, 18:43
par golfvert
domotruc a écrit :
13 avr. 2019, 08:23

La payload est aujourd'hui paramétrable comme tu le souhaites, mais pas le topic.
C'est une bonne idée, que j'ai ajoutée dans la liste des évolutions, voir ici.
Super, merci.
Si je peux me permettre de suggérer une implémentation, ce serait bien comme le plugin telegram, ou on rentre les deux éléments option et message dans deux champs de saisie. Là il y aurait topic et payload. Donc, pas de variable à utiliser.

GV

Re: Plugin jMQTT

Publié : 13 avr. 2019, 19:10
par minscof
Bonjour,

J'ai une question sur le sens de l'information "Dernière activité" de chaque équipement affiché dans le plugin. Intuitivement, j'ai pensé que c'était l'heure à laquelle il y avait eu une "communication" (activité) avec cet équipement, soit la réception d'une valeur, soit l'envoi réussi d'une valeur.

Mais en regardant la valeur de cette information, puis le code du plugin, j'ai l'impression que ce n'est pas cette définition, mais plutôt l'heure à laquelle on a fait le dernier enregistrer pour cet équipement.

Pourrait-on alors renommer ce champ par "Dernier enregistrement" ou "Dernière sauvegarde" puisque l'action s'appelle Sauvegarder, afin d'éviter cette confusion ?

Du coup, j'ai une question, comment peut-on obtenir l'information sur la dernière activité de l'équipement que ce soit en réception comme en émission (réussie) ?
En réalité ma demande correspond à un besoin de monitoring de l'équipement : en principe quand tout fonctionne correctement cet équipement doit avoir une activité chaque jour, et je voudrais pouvoir surveiller que c'est bien le cas en contrôlant la date de "dernière activité de l'équipement".
Merci

Re: Plugin jMQTT

Publié : 15 avr. 2019, 20:08
par domotruc
golfvert a écrit :
13 avr. 2019, 18:43
domotruc a écrit :
13 avr. 2019, 08:23

La payload est aujourd'hui paramétrable comme tu le souhaites, mais pas le topic.
C'est une bonne idée, que j'ai ajoutée dans la liste des évolutions, voir ici.
Super, merci.
Si je peux me permettre de suggérer une implémentation, ce serait bien comme le plugin telegram, ou on rentre les deux éléments option et message dans deux champs de saisie. Là il y aurait topic et payload. Donc, pas de variable à utiliser.

GV
Bonjour GV,
Je vais regarder l'implémentation de Telegram, merci pour l'info.

Re: Plugin jMQTT

Publié : 15 avr. 2019, 20:36
par domotruc
minscof a écrit :
13 avr. 2019, 19:10
Bonjour,

J'ai une question sur le sens de l'information "Dernière activité" de chaque équipement affiché dans le plugin. Intuitivement, j'ai pensé que c'était l'heure à laquelle il y avait eu une "communication" (activité) avec cet équipement, soit la réception d'une valeur, soit l'envoi réussi d'une valeur.

Mais en regardant la valeur de cette information, puis le code du plugin, j'ai l'impression que ce n'est pas cette définition, mais plutôt l'heure à laquelle on a fait le dernier enregistrer pour cet équipement.

Pourrait-on alors renommer ce champ par "Dernier enregistrement" ou "Dernière sauvegarde" puisque l'action s'appelle Sauvegarder, afin d'éviter cette confusion ?
Bonjour minscof,
Oui tu as raison, ce champ correspond à la date de dernière sauvegarde, appelée Dernière mise à jour dans la boite de Configuration avancée. Je corrigerai son nom.

Du coup, j'ai une question, comment peut-on obtenir l'information sur la dernière activité de l'équipement que ce soit en réception comme en émission (réussie) ?
En réalité ma demande correspond à un besoin de monitoring de l'équipement : en principe quand tout fonctionne correctement cet équipement doit avoir une activité chaque jour, et je voudrais pouvoir surveiller que c'est bien le cas en contrôlant la date de "dernière activité de l'équipement".
Merci
Il s'agit du paramètre Date de dernière communication visible dans la boite de Configuration avancée. Il est accessible via la fonction lastCommunication(#[objet][équipement]#) dans les scénarios (voir documentation sur les scénarios).
Par contre, je me rend compte que ce n'est vrai qu'en réception ; ce paramètre n'est pas actualisé par le plugin en émission, je le rajouterai.

Re: Plugin jMQTT

Publié : 17 avr. 2019, 05:21
par fred1978
domotruc a écrit :
13 avr. 2019, 07:37
fred1978 a écrit :
11 avr. 2019, 22:32
Bonjour à tous,

J'utilise le plugin depuis pas mal de temps et tout fonctionne très bien (merci au développeur). J'apprécie particulièrement la fonction de parsing car les topics sont relativement dense en information. J'ai remarqué que la fonction de parsing occasionnait le doublement de la charge de mon processeur (en machine virtuelle). Ce n'est pas grave en soi, mon server a de la réserve mais je cherche toutefois un moyen de le réduire. Une idée?
MErci pour votre aide
Bonjour Fred,
En gros le traitement d'une payload "parsée" nécessite autant de traitements qu'une payload simple. Donc une payload JSON décomposée en 10 commandes va multiplier par 10 les traitements.
Je ne vois pas énormément de pistes pour réduire:
* N'historiser que si c'est utile
* Diminuer la fréquence d’émission des messages côté équipement
Merci, je vais creuser la piste côté emission des messages. Bonne continuation dans le développement.

Re: Plugin jMQTT

Publié : 01 mai 2019, 16:42
par bignooz
Bonjour,

Après plantage de mon Rpi, je tente jeedom sur Docker (synology DS218+)

JMQTT ne fonctionne pas. Le client semble ne pas tourner...

Aucune idée de comment dépatouiller tout ca... (ca allait si bien sur le RPI, avant...)

Voici les logs:

Code : Tout sélectionner

********************************************************
* Install dependancies                                 *
********************************************************
> Progress file:  /tmp/jeedom/jMQTT/progress_dep.txt
> Install Mosquitto:  1
*
* Update package source repository
*
Reading package lists...
Building dependency tree...
Reading state information...
lsb-release is already the newest version.
php-pear is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 200 not upgraded.
converted 'http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key' (ANSI_X3.4-1968) -> 'http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key' (UTF-8)
--2019-05-01 14:36:56--  http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
Resolving repo.mosquitto.org (repo.mosquitto.org)... 85.119.83.194, 2001:ba8:1f1:f271::2
Connecting to repo.mosquitto.org (repo.mosquitto.org)|85.119.83.194|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3120 (3.0K) [application/octet-stream]
Saving to: 'mosquitto-repo.gpg.key'
0K ...                                                   100% 7.09M=0s
2019-05-01 14:36:56 (7.09 MB/s) - 'mosquitto-repo.gpg.key' saved [3120/3120]
OK
converted 'http://repo.mosquitto.org/debian/mosquitto-jessie.list' (ANSI_X3.4-1968) -> 'http://repo.mosquitto.org/debian/mosquitto-jessie.list' (UTF-8)
--2019-05-01 14:36:58--  http://repo.mosquitto.org/debian/mosquitto-jessie.list
Resolving repo.mosquitto.org (repo.mosquitto.org)... 85.119.83.194, 2001:ba8:1f1:f271::2
Connecting to repo.mosquitto.org (repo.mosquitto.org)|85.119.83.194|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 50 [application/octet-stream]
Saving to: 'mosquitto-jessie.list'
0K                                                       100% 7.18M=0s
2019-05-01 14:36:58 (7.18 MB/s) - 'mosquitto-jessie.list' saved [50/50]
*
* Synchronize the package index
*
Ign http://http.us.debian.org jessie InRelease
Hit https://repo.mosquitto.org jessie InRelease
Hit http://security.debian.org jessie/updates InRelease
Ign http://deb.debian.org jessie InRelease
Hit http://http.us.debian.org jessie Release.gpg
Hit http://deb.debian.org jessie-updates InRelease
Hit http://http.us.debian.org jessie Release
Hit http://deb.debian.org jessie Release.gpg
Get:1 https://repo.mosquitto.org jessie/main amd64 Packages [21.3 kB]
Hit http://deb.debian.org jessie Release
Get:2 http://security.debian.org jessie/updates/main amd64 Packages [829 kB]
Get:3 http://http.us.debian.org jessie/non-free amd64 Packages [101 kB]
Get:4 http://deb.debian.org jessie/main amd64 Packages [9098 kB]
Fetched 10.0 MB in 9s (1010 kB/s)
W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/InRelease  Unable to find expected entry 'main/binary-amd64/Packages' in Release file (Wrong sources.list entry or malformed file)
E: Some index files failed to download. They have been ignored, or old ones used instead.
*
* Install Mosquitto
*
Reading package lists...
Building dependency tree...
Reading state information...
libmosquitto-dev is already the newest version.
mosquitto is already the newest version.
mosquitto-clients is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 200 not upgraded.
*
* Install php mosquitto wrapper
*
> Version 5 of PHP detected
> Install php5-dev
Reading package lists...
Building dependency tree...
Reading state information...
php5-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 200 not upgraded.
> Install pecl/Mosquitto
pecl/Mosquitto is already installed and is the same as the released version 0.4.0
install failed
> No need to reload the web server
********************************************************
*             End dependancy installation              *
********************************************************

Code : Tout sélectionner

[2019-05-01 16:40:08][INFO] : Subscribes to the API topic "jeedom/api"
[2019-05-01 16:40:08][WARNING] : exception thrown by MQTT client: The client is not currently connected.
[2019-05-01 16:40:08][INFO] : relance le démon dans 15s
[2019-05-01 16:40:23][DEBUG] : daemon starts, pid is 3776
[2019-05-01 16:40:23][INFO] : Connect to mosquitto: Host=localhost, Port=1883, Id=jeedom
[2019-05-01 16:40:23][INFO] : Subscribes to the API topic "jeedom/api"
[2019-05-01 16:40:23][WARNING] : exception thrown by MQTT client: The client is not currently connected.
[2019-05-01 16:40:23][INFO] : relance le démon dans 15s
[2019-05-01 16:40:38][DEBUG] : daemon starts, pid is 3776
[2019-05-01 16:40:38][INFO] : Connect to mosquitto: Host=localhost, Port=1883, Id=jeedom
[2019-05-01 16:40:38][INFO] : Subscribes to the API topic "jeedom/api"
[2019-05-01 16:40:38][WARNING] : exception thrown by MQTT client: The client is not currently connected.
[2019-05-01 16:40:38][INFO] : relance le démon dans 15s
[2019-05-01 16:40:53][DEBUG] : daemon starts, pid is 3776
[2019-05-01 16:40:53][INFO] : Connect to mosquitto: Host=localhost, Port=1883, Id=jeedom
[2019-05-01 16:40:53][INFO] : Subscribes to the API topic "jeedom/api"
[2019-05-01 16:40:53][WARNING] : exception thrown by MQTT client: The client is not currently connected.
[2019-05-01 16:40:53][INFO] : relance le démon dans 15s

(etc, etc, etc)

Re: Plugin jMQTT

Publié : 01 mai 2019, 17:27
par kerdale
Mosquitto est-il démarré ?
essaie en ssh: mosquitto -d

Re: Plugin jMQTT

Publié : 02 mai 2019, 11:50
par domotruc
bignooz a écrit :
01 mai 2019, 16:42
Bonjour,

Après plantage de mon Rpi, je tente jeedom sur Docker (synology DS218+)

JMQTT ne fonctionne pas. Le client semble ne pas tourner...

Aucune idée de comment dépatouiller tout ca... (ca allait si bien sur le RPI, avant...)

Bonjour bignooz,
Sur docker, le service mosquitto ne démarre pas automatiquement, sauf à ajouter la commande suivante à la fin du fichier /root/init.sh:

Code : Tout sélectionner

echo 'Start mosquitto'
systemctl restart mosquitto
service mosquitto restart

Re: Plugin jMQTT

Publié : 02 mai 2019, 18:55
par bignooz
Merci pour le retour !
J'ai abandonné et scratché le rpi.

Mais je n'abandonne pas. J'y reviendrai.

Merci beaucoup !

Re: Plugin jMQTT

Publié : 11 mai 2019, 18:16
par Gwladys
Bonjour @Domotruc,
Merci pour ton suivi et ton aide car le mqtt est devenu le vecteur de transmission ppal de mon install.

A propos d'une possibilité d'avoir un second broker, penses tu que ce soit possible ou je dois passer par une plateforme intermédiaire?
Pour rappel, j'ai un contrôleur Venus et je voudrais pouvoir avoir un broker perso pour gérer les infos spécifiques de ma domotique.

Merci et bonne journée,

Re: Plugin jMQTT

Publié : 12 mai 2019, 21:05
par domotruc
Gwladys a écrit :
11 mai 2019, 18:16
Bonjour @Domotruc,
Merci pour ton suivi et ton aide car le mqtt est devenu le vecteur de transmission ppal de mon install.

A propos d'une possibilité d'avoir un second broker, penses tu que ce soit possible ou je dois passer par une plateforme intermédiaire?
Pour rappel, j'ai un contrôleur Venus et je voudrais pouvoir avoir un broker perso pour gérer les infos spécifiques de ma domotique.

Merci et bonne journée,
Bonjour Gwladis,
Oui, je l'ai développé, et je compte le publier en beta d'ici une semaine.

Re: Plugin jMQTT

Publié : 14 mai 2019, 07:14
par domotruc
Bonjour,

Je viens de publier en version beta une grosse évolution du plugin qui apporte le support multi brokers (il est maintenant possible de connecter Jeedom à plusieurs brokers MQTT). Dans le détail cette version implémente:

- Amélioration #63: ajout du support multi broker
- Amélioration #54: commande information donnant l'état de connexion au broker

La mise à jour migre les modules déjà présents et crée un équipement broker à partir des données de connexion qui étaient dans la page de configuration du plugin.

Même si j'ai effectué de nombreux tests, je souhaiterais avoir des retours de beta testeurs avant de passer en stable. D'avance merci aux candidats.

Il me reste également à mettre à jour la doc.

Re: Plugin jMQTT

Publié : 16 mai 2019, 19:14
par Jeandhom
Bug ou pas bug ?
Importance : très faible.
Plugin dernière version stable.

Voila ce que j'ai dans "Santé jMQTT".
Ces dates correspondent au moment ou je les ai débranchés (les 3 derniers équipements).
jMQTT01.png
jMQTT01.png (15.63 Kio) Consulté 1801 fois


Voila ce que je retrouve dans l'onglet "Équipement" pour les 3 modules.
jMQTT02.png
jMQTT02.png (11.19 Kio) Consulté 1801 fois

Re: Plugin jMQTT

Publié : 17 mai 2019, 09:23
par Jeandhom
Bon, en parcourant ton github, j'ai vu que cela avait été évoqué quelques posts plus haut : viewtopic.php?f=96&t=32675&p=720940#p720940

Désolé pour le dérangement.

J'en profite pour te dire que mes Shellies sont très content d'utiliser ton plugin.
Les remontées d'info dans Jeedom sont immédiates, cela me change du protocole zwave.

J'ai remarqué qu'à la création, il y a deux commandes infos qui ont du mal à se créer toutes seules, energy et online.

Pour energy, il faut laisser le relais On une quinzaine de secondes.
Pour online, il faut rebooter le Shelly.

Re: Plugin jMQTT

Publié : 17 mai 2019, 09:37
par Jeandhom
minscof a écrit :
13 avr. 2019, 19:10
... En réalité ma demande correspond à un besoin de monitoring de l'équipement : en principe quand tout fonctionne correctement cet équipement doit avoir une activité chaque jour, et je voudrais pouvoir surveiller que c'est bien le cas en contrôlant la date de "dernière activité de l'équipement".
Merci
Sur les Shellies, il y a une commande info "online".
Lorsque je débranche un Shelly, cette commande passe de la valeur "true" à "false" en moins de 2min.
Si tu as cette commande sur ton équipement, cela doit suffire pour pouvoir le monitorer ?

Re: Plugin jMQTT

Publié : 22 mai 2019, 20:36
par Loic74
Bonjour Domotruc

Pour info le lien vers la doc de jMQTT ne fonctionne pas, ni depuis le plugin ni depuis le bas de la page Git:

Error: Cannot load https://raw.githubusercontent.com/domot ... index.html: 404 Not Found

Re: Plugin jMQTT

Publié : 23 mai 2019, 06:36
par domotruc
Loic74 a écrit :
22 mai 2019, 20:36
Bonjour Domotruc

Pour info le lien vers la doc de jMQTT ne fonctionne pas, ni depuis le plugin ni depuis le bas de la page Git:

Error: Cannot load https://raw.githubusercontent.com/domot ... index.html: 404 Not Found
Bonjour Loic,
C'est corrigé dans le plugin (mise à jour requise), ainsi que les liens dans le message de tête de ce fil et sur GitHub.
Merci pour le retour.

Re: Plugin jMQTT

Publié : 23 mai 2019, 08:53
par Loic74
Bonjour et merci Domotruc.

Autre question, est-ce que la version multi-broker (j'attends la version stable pour tester) permettra de se connecter à un broker distant (c'est peut-être déjà le cas avec la version mono-broker, je n'ai pas testé)? Ce serait intéressant pour par exemple se connecter au broker des serveurs TTN afin de récupérer directement les messages des nodes LoRaWan. Aujourd'hui je dois passer via NodeRed pour faire la passerelle

A+
Loic