Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

MQTT

Retrouvez ici des sujets concernant le protocole MQTT et les modules domotiques de type MQTT utilisés avec JEEDOM
/!\ Plugin MQTT non officiel
StephC
Timide
Messages : 82
Inscription : 02 oct. 2017, 06:10

Re: MQTT

Message par StephC » 10 oct. 2017, 20:49

Bonjour,

Problème similaire chez moi concernant la case "Découverte automatique des topics" : si je la décoche, mes devices MQTT ne reçoivent plus aucune information, comme si le plugin s'était déconnecté des topics. Je suppose que ce n'est pas le fonctionnement attendu?

J'ai créé des commandes dans mes devices. Par exemple ecs/temp_consigne/cmd. Lorsque cette commande est émise, le plugin crée un device ecs/temp_consigne. Y a t'il un moyen de l'éviter?

Merci d'avance,
Stéphane

StephC
Timide
Messages : 82
Inscription : 02 oct. 2017, 06:10

Re: MQTT

Message par StephC » 11 oct. 2017, 07:36

StephC a écrit :
10 oct. 2017, 20:49
Problème similaire chez moi concernant la case "Découverte automatique des topics" : si je la décoche, mes devices MQTT ne reçoivent plus aucune information, comme si le plugin s'était déconnecté des topics. Je suppose que ce n'est pas le fonctionnement attendu?
Bonjour,
J'ai progressé en regardant le code. Lorsque les équipements sont découverts en mode automatique, la case Topic Enfant est positionnée à 1. Et c'est ce qui empêche le démon de souscrire aux topics de l'équipement si on repasse en mode manuel.

Code : Tout sélectionner

	if (config::byKey('mqttAuto', 'MQTT', 0) == 0) {  // manual mode
		foreach (eqLogic::byType('MQTT', true) as $mqtt) {
====>			if ($mqtt->getConfiguration('isChild') != "1") {				<=====
				.....
				$client->subscribe($fulltopic, $qos); // Subscribe to topic
			}
		}
	}
Je n'ai pas compris à quoi sert ce paramètre Topic Enfant. Il est en lecture seule et est positionné par le code à 1 lorsque l'équipement est découvert en mode automatique et à 0 lorsqu'il est créé manuellement: il est donc équivalent à mode auto. Dans l'état actuel, il me semble qu'il pourrait être supprimé, ce qui permettrait aux équipements découverts en mode auto de fonctionner lorsque que l'on repasse en manuel. A moins qu'il soit prévu pour de futures évolutions.

Je laisse bien-sûr lunarok, maître des lieux, donner son avis et me porte volontaire pour proposer une correction.

Stéphane

testevista
Timide
Messages : 38
Inscription : 04 oct. 2015, 09:33

Re: MQTT

Message par testevista » 23 oct. 2017, 19:43

Bonjour à tous,
je viens d'acheter du matériel qui discute en MQTT

j'ai tout bien paramétrer et je ce message dans le log toute les secondes :

[2017-10-23 19:42:01][ERROR] : The client is not currently connected.

si quelqu'un veut bien m'aider, se serait génial

merci et bonne soirée

Avatar de l’utilisateur
lunarok
Actif
Messages : 6704
Inscription : 08 août 2014, 12:48
Localisation : Anjou

Re: MQTT

Message par lunarok » 23 oct. 2017, 21:23

commence par gratter un peu plus et être plus verbeux en log, là madame irma aura plus d'diées que le forum
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas

testevista
Timide
Messages : 38
Inscription : 04 oct. 2015, 09:33

Re: MQTT

Message par testevista » 24 oct. 2017, 18:24

@lunarok

merci pour ta réponse

je pense avoir trouvé, il y a un problème de PHP, j'ai suivi la doc mais j'ai des erreurs quand je tape la commande :
$ phpize7.0
$ -bash: phpize7.0 : commande introuvable

dans le log cron j'ai ça : PHP Warning: Module 'mosquitto' already loaded in Unknown on line 0

et ça :

[Erreur] MQTT::daemon() : The stream or file "/var/www/html/core/class/../../log/MQTT" could not be opened: failed to open stream: Permission deniedPHP Fatal error: Uncaught exception 'UnexpectedValueException' with message 'The stream or file "/var/www/html/core/class/../../log/MQTT" could not be opened: failed to open stream: Permission denied' in /var/www/html/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107
Stack trace:
#0 /var/www/html/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\Handler\StreamHandler->write(Array)
#1 /var/www/html/vendor/monolog/monolog/src/Monolog/Logger.php(337): Monolog\Handler\AbstractProcessingHandler->handle(Array)
#2 /var/www/html/vendor/monolog/monolog/src/Monolog/Logger.php(404): Monolog\Logger->addRecord(400, 'Erreur sur MQTT...', Array)
#3 /var/www/html/core/class/log.class.php(114): Monolog\Logger->addError('Erreur sur MQTT...')
#4 /var/www/html/core/php/jeeCron.php(161): log::add('MQTT', 'error', 'Erreur sur MQTT...', 'rGLHkNnpwVQfGZw...')
#5 {main}
thrown in /var/www/html/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 107

est ce que je tente une réinstallation ou as tu plus d'info ?

Bosquetia
Actif
Messages : 6783
Inscription : 10 mai 2016, 07:54

Re: MQTT

Message par Bosquetia » 24 oct. 2017, 20:37

Permission denied : déjà rien que cela me pique...

testevista
Timide
Messages : 38
Inscription : 04 oct. 2015, 09:33

Re: MQTT

Message par testevista » 26 oct. 2017, 19:29

bonsoir à tous,
je pense avoir réussi :

[2017-10-26 16:10:15][INFO] : Paramètres utilisés, Host : 127.0.0.1, Port : 1883, ID : BLE-WIFI_AB_95
[2017-10-26 16:10:15][INFO] : Connexion à Mosquitto avec code 0 Connection Accepted.

le log est il normal ?

par contre je n'arrive pas à avoir de topics de façon automatique, si vous avez une idée

par avance merci

Shaad
Timide
Messages : 187
Inscription : 10 juin 2017, 11:14

Re: MQTT

Message par Shaad » 29 oct. 2017, 22:40

Bonjour,

J'utilise ce super plugin depuis un peu plus d'un mois pour commander 4 prises Sonoff S20 flashées TASMOTA : RAS, nickel ! 8-)

J'ai reçu ce week-end le Sonoff RF Bridge 433, une passerelle RF433/Wifi capable d'écouter et détecter jusqu'à 16 commandes RF433 configurées, les émettre et interfacé wifi.
J'ai flashé sous TASMOTA 5.8 sans aucun soucis.
Il remonte bien sous le plugin MQTT immédiatement. Je vois mes 3 topics : cmndsonoffBridge, telesonoffBridge et statsonoffBridge. Jusque là : RAS.

Là où ça se complique c'est pour détecter de manière simple lorsque qu'une commande RF433 pré-enregistrée est détectée. Pour le moment le seul moyen se trouve dans le champs tele/sonoffBridge/RESULT qui vaut par exemple :
{"RfReceived":{"Sync":5610, "Low":180, "High":530, "Data":"515500", "RfKey":1}} quand je presse la touche configurée sur RfKey 1.
OK je trouve ainsi l'info. :ugeek:

Après avoir lu l'aide de MQTT, j'ai activé la fonction parseJson pour cette valeur. J'espérais qu'il me créée une commande info par élément.
Chaque fois que j'envoie une commande, le démon MQTT crashe.

Voilà tout ce que trouve dans les logs en mode Debug :

Code : Tout sélectionner

[2017-10-29 22:01:03][DEBUG] : 16 : Client Jeedom sending PINGREQ
[2017-10-29 22:01:03][DEBUG] : 16 : Client Jeedom received PINGRESP
[2017-10-29 22:01:06][DEBUG] : 16 : Client Jeedom received PUBLISH (d0, q0, r0, m0, 'tele/sonoffBridge/RESULT', ... (79 bytes))
[2017-10-29 22:01:06][DEBUG] : Message {"RfReceived":{"Sync":5610, "Low":180, "High":530, "Data":"515500", "RfKey":1}} sur tele/sonoffBridge/RESULT
[2017-10-29 22:01:06][INFO] : Message texte : {"RfReceived":{"Sync":5610, "Low":180, "High":530, "Data":"515500", "RfKey":1}} pour information : RESULT sur : tele/sonoffBridge
Note 1 : La case "Decouverte Automatique des topics:" est toujours cochée chez moi (sinon je perds les commandes de mes prises S20 au bout de quelques minutes). Quand je désactive cette case, le démon MQTT ne crash plus quand il reçoit une commande

Note 2 : je viens de juste de réinstaller complètement le plugin pour utiliser la dernière version gérant nativement PHP7 (je suis sous Debian Stretch).


Des idées ? Besoin d'autres infos ?? :?:

Merci


EDIT : JSon à 2 niveaux... c'est probablement ça le soucis :?
Il faut que trouve autre chose. Je vais essayer de voir pour le parser en dehors de MQTT du coup. :/

Thierryb180381
Timide
Messages : 239
Inscription : 18 janv. 2017, 17:45

Re: MQTT

Message par Thierryb180381 » 30 oct. 2017, 23:20

Bonsoir,

Je viens enfin de faire marcher MQTT, je l'ai configuré en SSL sur l'iPhone et en normal sur Jeedom, c'est normal que je reçois mes coordonnées cryptés?

Je pensais que c'était juste la communication entre l'iPhone et Mosquitto (même machine que jeedom) qui serait crypté et que jeedom pourrait les lire facilement sur le port 1883.

Du coup, si c'est le cas, je dois abandonner le cryptage? vu que je n'ai vu aucune option pour importer mes certificats ssl dans le plugin :( ?

Merci.
Intel Nuc avec Debian Stretch (9.9)
Jeedom DIY 3.3.28

Thierryb180381
Timide
Messages : 239
Inscription : 18 janv. 2017, 17:45

Re: MQTT

Message par Thierryb180381 » 01 nov. 2017, 19:59

J'ai aussi un problème pour faire un scénario qui se déclenche chaque fois que je reçois une info de mon iPhone avec owntracks.

J'ai mis en déclencheur : #[Notifications / Informations][owntracksiphone][t]#

C'est djkà arrivé que ça marche mais le plus souvent, ça ne marche pas...alors qu'à chaque fois, je vois bien dans les logs de MQTT, mon message arrive ou des fois ça arrive en décalé de quelques minutes aussi.

Que faudrait t'il mettre pour que ça marche bien ? et que le scénario traite ça en temps réel en même temps que jeedom récupère le message sur le topic?

Merci.
Intel Nuc avec Debian Stretch (9.9)
Jeedom DIY 3.3.28

Avatar de l’utilisateur
lunarok
Actif
Messages : 6704
Inscription : 08 août 2014, 12:48
Localisation : Anjou

Re: MQTT

Message par lunarok » 08 nov. 2017, 09:21

Pour information, après avoir ajouter l'installation de la lib via le plugin pour PHP7, maintenant je vais réutiliser le plugin aussi.
Sauf que en le remettant en fonction je découvre que c'est pas la joie, le mode auto est une horreur, les topics publiés par mosquitto_pub sont vus comme invalides.
Bref, je préviens j'ai remis le nez dans le code, je vais le nettoyer en profondeur et je n'accepterais plus de modifications de code qui ne respectent pas l'esprit jeedom et la simplicité. Ceux qui veulent un MQTT complexe pourront toujours avoir un mosquitto quelque part et gérer leurs spécifité via la conf de souscription du mosquitto
Mon Blog | Xiaomi Home
Pour contribuer au développement des plugins (don ou achat de matériel) : Paypal
Aides nous à t'aider : les logs, détails du soucis, la doc, recherche sur le forum ...
PS : pas de support par MP, je ne répondrais pas

banban2211
Timide
Messages : 15
Inscription : 15 juin 2015, 22:34

Re: MQTT

Message par banban2211 » 21 nov. 2017, 21:42

Bonne nouvelle merci Lunarok

Envoyé de mon SM-A510F en utilisant Tapatalk



sha
Timide
Messages : 9
Inscription : 15 mai 2015, 20:11

Re: MQTT

Message par sha » 26 nov. 2017, 12:31

Bonjour à tous,

Je n'ai plus la case de découverte auto des topics dans la configuration de plugin :shock:
Plugin et dépendances réinstallés ...
@lunarok, c'est en rapport avec le "nettoyage" du code stp ? Je ne sais pas si ton post du 8/11 veut dire que tu as supprimé la découverte auto ..?
Capture du 2017-11-26 12-08-00.png
Capture du 2017-11-26 12-08-00.png (26.46 Kio) Consulté 6603 fois
Sinon, l'envoi des infos depuis Jeedom est OK, mais les réceptions sont toutes KO et les équipements ne sont plus créés. (problème de msoquitto_sub ?)

Voici les logs :

Code : Tout sélectionner

[2017-11-26 12:14:41][INFO] : Message texte : on pour information : Thermostat sur :
[2017-11-26 12:14:41][INFO] : Saving device
[2017-11-26 12:14:41][ERROR] : Le nom de l'équipement ne peut pas être vide : MQTT Object (     [id:protected] =>      [name:protected] =>      [logicalId:protected] =>      [object_id:protected] =>      [eqType_name:protected] => MQTT     [eqReal_id:protected] =>      [isVisible:protected] => 0     [isEnable:protected] => 0     [configuration:protected] => {"topic":"","type":"topic"}     [timeout:protected] => 0     [category:protected] =>      [display:protected] =>      [order:protected] =>      [comment:protected] =>      [_debug:protected] =>      [_object:protected] =>      [_needRefreshWidget:protected] =>      [_timeoutUpdated:protected] =>      [_batteryUpdated:protected] =>      [_cmds:protected] => Array         (         )  )
[2017-11-26 12:14:41][DEBUG] : 16 : Client Jeedom sending DISCONNECT
[2017-11-26 12:14:41][DEBUG] : Déconnexion de Mosquitto avec code 0
[2017-11-26 12:14:42][INFO] : Paramètres utilisés, Host : 192.168.1.17, Port : 1883, ID : Jeedom
[2017-11-26 12:14:42][DEBUG] : 16 : Client Jeedom sending CONNECT
[2017-11-26 12:14:42][DEBUG] : 16 : Client Jeedom sending SUBSCRIBE (Mid: 1, Topic: #, QoS: 0)
[2017-11-26 12:14:42][DEBUG] : Subscribe to topic #
[2017-11-26 12:14:42][DEBUG] : 16 : Client Jeedom received CONNACK
[2017-11-26 12:14:42][INFO] : Connexion à Mosquitto avec code 0 Connection Accepted.
[2017-11-26 12:14:42][DEBUG] : 16 : Client Jeedom received SUBACK
[2017-11-26 12:14:42][DEBUG] : Subscribe to topics
[2017-11-26 12:14:42][DEBUG] : 16 : Client Jeedom received PUBLISH (d0, q0, r1, m0, 'Thermostat', ... (2 bytes))
[2017-11-26 12:14:42][DEBUG] : Message on sur Thermostat
[2017-11-26 12:14:42][INFO] : Message texte : on pour information : Thermostat sur :
[2017-11-26 12:14:42][INFO] : Saving device
[2017-11-26 12:14:42][ERROR] : Le nom de l'équipement ne peut pas être vide : MQTT Object (     [id:protected] =>      [name:protected] =>      [logicalId:protected] =>      [object_id:protected] =>      [eqType_name:protected] => MQTT     [eqReal_id:protected] =>      [isVisible:protected] => 0     [isEnable:protected] => 0     [configuration:protected] => {"topic":"","type":"topic"}     [timeout:protected] => 0     [category:protected] =>      [display:protected] =>      [order:protected] =>      [comment:protected] =>      [_debug:protected] =>      [_object:protected] =>      [_needRefreshWidget:protected] =>      [_timeoutUpdated:protected] =>      [_batteryUpdated:protected] =>      [_cmds:protected] => Array         (         )  )
[2017-11-26 12:14:42][DEBUG] : 16 : Client Jeedom sending DISCONNECT
[2017-11-26 12:14:42][DEBUG] : Déconnexion de Mosquitto avec code 0
SI je sniffe les trafic mqtt, tout a l'air en ordre :

Code : Tout sélectionner

sha@arakis ~ $ mosquitto_sub -h 192.168.1.17 -t /#
on
off
on
20.3.3
52.8.8
20.3.3
54.2.2

Merci pour vos lumières !

Babylone_59
Timide
Messages : 9
Inscription : 24 sept. 2017, 22:47

Re: MQTT

Message par Babylone_59 » 26 nov. 2017, 12:47

@sha
Mème problématique depuis la mise à jour du plugin mqtt.
Je travaille avec le firmware Tasmota sur un sonoff Dual.
J'arive à envoyer les commandes en les creants en manuel mais plus aucune détection automatique et donc plus de retour d'état.
J'ai fait pas mal d'essai et je pense que cela est du à la mise à jour.
Es ce possible de réinstaller l'ancienne version du plugin?

Shaad
Timide
Messages : 187
Inscription : 10 juin 2017, 11:14

Re: MQTT

Message par Shaad » 27 nov. 2017, 13:46

Idem aussi depui la màj. :)

Je n'ai aucun soucis avec mes 4 Sonoff S20 flashés Tasmota. Commandes et retour d'état : RAS.

En revanche mon Bridge Sonoff RF433 flashé aussi sous Tasmota ne fonctionne plus. Je retrouve bien l'info RfReceived qui m'intéresse dans un des topics automatiquement créés, mais sa valeur n'est jamais mise à jour. Du côté du Bridge, je vois bien la valeur à jour dans la console.
Ca fonctionnait avant la màj du plugin, et je pouvais parser la chaine pour extraire le numéro de touche détecté par le bridge.
Je n'ai fait aucune mise à jour ni changement de configuration sur le Bridge.

Besoin de logs particuliers ?

xguitoux
Timide
Messages : 9
Inscription : 04 déc. 2017, 11:20

Re: MQTT

Message par xguitoux » 05 déc. 2017, 08:39

Bonjour, je me bataille depuis plusieurs jours pour tenter de faire fonctionner le plugin.

Broker installé sous Pi, pas de mot de passe
1 prise S20 flashée Tasmota (j'arrive à trigger ON / OFF via le plugin mais c'est tout)
Plugin MQTT beta installé.

Au niveau des logs MQTT j'ai ça
Connexion à Mosquitto avec code 0 Connection Accepted.
Déconnexion de Mosquitto avec code 7

Et si au niveau de la console je fais un mosquitto_sub j'accède bien au listing des infos envoyées par la prise & par le plugin sauf que j'ai rapidement des
"Client Died :-(" à la chaine

Quelqu'un aurait il rencontré un problème similaire ?

StephC
Timide
Messages : 82
Inscription : 02 oct. 2017, 06:10

Re: MQTT

Message par StephC » 05 déc. 2017, 14:34

Bonjour,
Je comprend que tu n'as pas de message 'Subscribe to topic #' dans le log du plugin.
Lunarok a effectué une correction dans le code vendredi qui devrait résoudre le problème mais je ne sais pas dire si elle est descendue dans la bêta.
Stéphane

robing82
Timide
Messages : 64
Inscription : 22 nov. 2017, 10:32

Re: MQTT

Message par robing82 » 05 déc. 2017, 23:40

Bonjour,
Petite question dont la réponse sera certainement évidente pour certains:
J'arrive à faire l'envoi de message MQTT avec une payload en JSON fixe, pas de soucis. Exemple je rentre ceci dans la payload :

Code : Tout sélectionner

\{"value":1\}
Maintenant, j'aimerai réalisé une action toggle et donc prendre la valeur d'une commande info (configurée en binaire) et mettre son inverse. Quand je fais ça :

Code : Tout sélectionner

\{"value":#[FromZipabox][zipato-Carillon-State][value]#\}
Ce qui est publié sur le topic est:

Code : Tout sélectionner

{"value":""}
Donc déjà je n'arrive pas à mettre la valeur dans la payload...
Ensuite il faudrait que j'inverse cette valeur... Et là encore je ne connais pas la syntaxe pour arriver à mes fins :oops:

Merci d'avance à tous!

xguitoux
Timide
Messages : 9
Inscription : 04 déc. 2017, 11:20

Re: MQTT

Message par xguitoux » 06 déc. 2017, 13:56

Bonjour, depuis la maj de hier tout fonctionne au poil ! merci lunarok !

vthinsel
Timide
Messages : 14
Inscription : 07 déc. 2017, 00:30

Re: MQTT

Message par vthinsel » 07 déc. 2017, 00:42

lunarok a écrit :
07 mai 2017, 17:26
Oui ca m'a été remonté donc j'ai fait un revert sur le PR qu'on m'avait proposer
J'ai une idée comme ca pour MQTT mais je sais pas si je l'implémentarais moi même car je sais pas si ca répondrait à un besoin :
- pouvoir sélectionner par plugin de créer un mapping dans MQTT, en gros transformer le plugin en passerelle auto dans les 2 sens
(exemple je sélectionne zwave et automatiquement le plugin publie une arbo jeedom/zwave/capteur/info1...)
Bonjour,

Bravo pour ce plugin !
Cette fonction m'intéresserait beaucoup. Je viens en effet de passer de domoticz à jeedom (quel bonheur !) et cette fonction me manque beaucoup. Je l'ai donc bricolée en créant un device MQTT avec plusieurs actions dont la payload contient les valeurs des noeuds zwave, et un scénario se charge d'appeler ces actions lorsqu'un évènement ZWave est reçu.
Pourquoi avoir besoin de passer en MQTT depuis ZWave ? Dans mon cas, c'est pour alimenter une base influxdb dans laquelle grafana vient piocher. Quand on veut s'amuser.... c'est node-red qui prends sur le bus MQTT et qui envoie a influxdb.

Autre question,qui a peut-etre déjà été abordée : mes sonoff (firmware tasmota) on des capteurs température/humidité, mais il semblerait que le parsing du JSON s'arrete au premier niveau. Une évolution est-elle prévue ?
Exemple : 00:40:06 MQT: tasmota/Sonoff_TH16_01_PS4/tele/SENSOR = {"Time":"2017-12-07T00:40:05","AM2301":{"Temperature":16.0,"Humidity":41.7},"TempUnit":"C"}
Le parsing s'arrete à AM2301

A bientot !

Répondre

Revenir vers « [Plugin Tiers] MQTT »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 5 invités