Premiere Installation

Hello à tous,
Je me présente Jérémy,
Je viens d’installer une premiere et nouvelle installation de Gladys :slight_smile:
Mon installation Actuelle :
Plusieurs Capteur DIO (ceux de leroy merlin)
Un serveur Jeedom avec un dongle Edisio/dio pour récup les infos des capteurs
Transmission des informations via MQTT

gladys Fresh Install V4
J’ai installé dans le docker (install automatique) le serveur MQTT
J’ai remarqué que gladys avec son serveur mqtt en localhost perdait la connection par moment. Ai je loupé une conf ?
=>> Je pense avoir trouvé, dans le mdp auto généré de Gladys pour son serveur MQT il y avait des caractères spéciaux “(”, je les ai retiré et tout fonctionne sans probleme.

Sinon j’ai vu que pas mal de gens utilisais les module XIAOMI,
J’ai donc acheter le xiaomi smart home hub avec plusieurs sondes de température.
https://www.amazon.fr/Multi-mode-Gateway-maillage-Bluetooth-Homekit/dp/B082XCWH71/ref=sr_1_4?__mk_fr_FR=ÅMÅŽÕÑ&dchild=1&keywords=xiaomi+smart+home+hub&qid=1606376814&sr=8-4
et le capteur :slight_smile:https://www.amazon.fr/Aqara-Température-Environnemental-Intelligent-Connection/dp/B07R9VCQ5N/ref=sr_1_5?__mk_fr_FR=ÅMÅŽÕÑ&dchild=1&keywords=xiaomi+capteur+temperature&qid=1606376875&sr=8-5
J’ai looké le cours tuto pour activé le mode dév, mais sur l’application je n’ai pas de About/Apropos
Du coup impossible de lancer le mode dev sur le xiaomi, du coup je ne sais pas comment l’intégrer dans gladys…

Sur l’application Mi Home, on peut partager les péripheriques pour donner le controle à d’autres users.
Il serait possible d’avoir un module sur gladys qui utilise le compte MI pour récupérer les informations des capteurs ?

Un grand merci pour vos lumieres.

Salut @setsaria et bienvenue sur le forum !

Oula c’est pas normal. J’ai créé une issue pour qu’on fixe ça:

Merci du retour :slight_smile:

Malheureusement c’est un problème du Xiaomi, toutes les gateway xiaomi ne sont pas compatible mode développeur :confused: Malheureusement tu es tombé sur un modèle incompatible.

Ta seule chance de pouvoir utiliser ces capteurs, ce serait d’acheter une clé Zigbee, et de bypasser le gateway. On a une intégration Zigbee2Mqtt qui est dans les rails (pas encore disponible, mais ça arrive). En attendant, il n’y a pas vraiment d’autres options.

Hello Pierre-Gilles :slight_smile:

Merci beaucoup pour le retour.

Concernant MQTT, voici les logs quand je fais docker logs gladys :

2020-11-27T12:16:16+0100 <warn> connect.js:60 (MqttClient.<anonymous>) Disconnected from MQTT server
2020-11-27T12:16:21+0100 <info> connect.js:38 (MqttClient.<anonymous>) Connected to MQTT server mqtt://localhost
2020-11-27T12:16:21+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic stat/+/+
2020-11-27T12:16:21+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic tele/+/+
2020-11-27T12:16:21+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic gladys/master/#
2020-11-27T12:16:21+0100 <warn> connect.js:60 (MqttClient.<anonymous>) Disconnected from MQTT server
2020-11-27T12:16:26+0100 <info> connect.js:38 (MqttClient.<anonymous>) Connected to MQTT server mqtt://localhost
2020-11-27T12:16:26+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic stat/+/+
2020-11-27T12:16:26+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic tele/+/+
2020-11-27T12:16:26+0100 <info> subscribe.js:12 (MqttHandler.subscribe) Subscribing to MQTT topic gladys/master/#
2020-11-27T12:16:26+0100 <warn> connect.js:60 (MqttClient.<anonymous>) Disconnected from MQTT server

côté mosquitto j’ai

1606475620: Config loaded from /mosquitto/config/mosquitto.conf.
1606475620: Opening ipv4 listen socket on port 1883.
1606475620: Opening ipv6 listen socket on port 1883.
1606475620: mosquitto version 1.6.12 running

côté jeedom, la connexion se fait sans soucis, mais gladys n’y arrivent plus par moment.
Puis-je faire un truc de mon côté pour vous aider à debugger ?

Pour Xiaomi, j’ai acheté une autre gateway v2 en occasion. d’après les recherche gogole , le mode dev est retiré que sur les nouvelles versions de la gateway. :slight_smile:

Ah je pensais que ça marchait maintenant vu ton dernier message.

Tu t’es connecté côté Jeedom avec les mêmes identifiants? Je suis entrain de me dire, je suspecte mosquitto de déconnecter la première connexion si jamais un autre client se connecte avec les mêmes identifiants. @AlexTrovato ça serait possible ça?

Si pour un seul broker MQTT il y a plusieurs connexions avec le même identifiant… non je ne pense pas, car tous mes devices actuels sont connectés au même broker mosquitto docker avec les mêmes identifiants.
En revanche si 2 broker sont sur la même adresse, même port…

1 Like

Même port c’est pas possible

Chez moi Gladys et Jeedom sont 2 serveurs distincs ( VM Freebox Delta) , chacun leur ip.
Par contre Gladys et mosquito sont 2 container Docker sur le même serveur.

Ah je pensais que ça marchait maintenant vu ton dernier message.

En faites plus précisément : avec le caractere spéciale dans le password, gladys n’arrivais pas à se connecter a MQTT, maintenant il y arrive mais se fait déco en permanence.

2020-11-27T12:19:42+0100 connect.js:50 (MqttClient.) Error while connecting to MQTT - Error: read ECONNRESET

`

aaah ok ! Tu as modifié le mot de passe dans le fichier, mais pas dans Gladys ça doit être ça le problème.

Je vais régler le problème de la génération de mot de passe, en attendant, tu dois vérifier que le mot de passe qui est dans le fichier de mosquitto est bien le même que celui dans Gladys

Pour info, j’ai eu tous ces soucis en développant le service Zigbee2mqtt :

  1. Le user/password
    J’ai dû en créer un pour Gladys et un pour Zigbee2mqtt car je n’arrivais pas à me connecter au broker avec le même compte…
    Par contre, j’arrivais à me connecter avec l’identifiant Gladys depuis Mqtt-Explorer en debug et je ne sais pas pourquoi. J’ai fait beaucoup d’essai et ai finalement choisi de faire 2 comptes, en plus c’est plus propre.

  2. Le problème de caractères spéciaux dans le password
    Gladys s’en débrouille bien, il me semble mais j’ai eu des soucis avec Zigbee2mqtt.
    Je n’ai pas trouvé lesquels posaient problèmes mais ai choisi d’éliminer les symboles : minuscules, majuscules et chiffres, c’est déjà pas mal…

Pour les déconnexions, un restart du broker peut aider.

Hello Reno !
Comment créer un compte sur mosquitto, il est dans un docker crée par gladys… Je ne m’y connais pas trop en docker malheureusement…

Je n’ai pas de machine avec Gladys sous la main, mais ça devrait être un truc du genre :

docker exec nom_du_container_mqtt mosquitto_passwd -b /mosquitto/config/mosquitto.passwd mqtt_user mqtt_password

Tu auras une nouvelle ligne avec mot de passe crypté dans le fichier de password du broker, visible dans /var/lib/gladysassistant/mqtt si mes souvenirs sont bons.

@setsaria pas la peine de faire ça, en fait normalement je crois que quand tu modifie le mot de passe dans Gladys, ça modifie le mot de passe dans le container mosquitto aussi.

C’est ce que tu avais fais?

@setsaria voulait juste tester si la création d’un nouveau compte pouvait résoudre ses problèmes, il me semble.

2 Likes

Désolé du repost, j’ai du raté un truc avec mon poste d’avant je n’arrivais pas à l’éditer… :sweat_smile:
Désolé du retard les amis, mon p’tit bout demandais pas mal d’attention cette fin d’aprem.
J’ai ajouté un nouvel user mqtt_jeedom (merki Reno !)
Et ben je n’ai pas eu de déco pour le moment

EDIT : Toujours aucune déco depuis l’ajout d’un User MQTT pour Jeedom. Donc ça doit être la solution ! Good Job Reno

1 Like

Ok, bonne nouvelle alors !

ça serait cool que Gladys permette de créer des utilisateurs dans l’UI alors. J’ai créé une issue :

1 Like

J’ai l’impression que c’est l’implémentation du protocole MQTT côté client qui fait que ça marche ou pas.
Curieux car j’aurai plutôt pensé que c’était le serveur qui acceptait plusieurs connexions avec le même compte ou pas…

@pierre-gilles, c’est un peu embêtant de créer les users depuis Gladys pour un service externe car il va falloir, du coup, afficher le mot de passe dans l’UI pour pouvoir ensuite, le recopier dans la config du service externe.

J’ai fait des recherches, et il semblerait que chaque client doit avoir un ID unique,
Donc avoir une commande dans gladys où l’on peut choisir un ID et un Password est une bonne idée.

The MQTT Spec says that client ids have to be unique and the correct behaviour is to kick the oldest one off and replace it with the new one.

Excellente piste, la gestion du password doit être intégré au service MQTT

L’ID client est différent d’un compte utilisateur MQTT. Il permet au serveur de savoir quels services clients (par exemple, Gladys, Z2M, Domoticz, …) sont connectés au serveur MQTT mais cela ne gère aucune sécurité : c’est juste une chaîne de caractère qui identifie le client (on peut voir ces ID dans les logs du serveur MQTT).

Un service client pourrait se connecter au serveur avec différents comptes utilisateur. L’ID client serait toujours le même mais la sécurité et les droits seraient gérés via le compte utilisateur connecté.

ah bien vu ! C’est donc peut-être un double bug entre Gladys et Jeedom, ou Jeedom utiliserait le nom d’utilisateur comme ID client et Gladys aussi, ce qui causerait ces déconnexions. Peut-être devrait on dans Gladys utiliser un id client différent du nom d’utilisateur !