Bonjour,
j'utilise depuis plusieurs années des ESP8266 pour piloter mes radiateurs et mes volets roulants.
J'ai préféré créer mon propre programme plutôt que d'utiliser ESPEASY ou autre programme communautaire.
Tout fonctionne parfaitement en utilisant les commandes HTTP pour communiquer avec Domoticz.
J'avais même un petit serveur web sur chaque carte donnant quelques informations, auquel j’accède avec une commande type: "radiateur1.local/status"pour le serveur ou l'OTA.
Souhaitant rajouter un système d'arrosage multi-zone, j'ai cette fois ci utilisé le protocole MQTT au lieu de HTTP puisque certaines zones doivent communiquer entre elles.
La aussi toutes les commandes et les infos sont bien renvoyées, mais je n'ai plus accès à la carte par son nom DNS mais seulement a travers l'adresse IP et je dois donc écrire "192.168.1.25/status" pour y accéder ce qui est gênant quand les adresses IP changent.
Avez vous eu ce genre de souci avec le protocole MQTT?
Merci par avance.
Resolu: MQTT et Mdns
Resolu: MQTT et Mdns
Dernière modification par pataqua le 16 mai 2020, 14:50, modifié 1 fois.
-
Antori91
Re: MQTT et Mdns
Bonjour,
Je dois dire que je ne comprends guère ton problème si ce n'est que le broker MQTT doit être installé sur un serveur dont l'IP est fixe. Après, l'adresse IP étant connue, tous les clients (qu'ils soient client ou serveur au sens applicatif) de ce broker commencent par se connecter au broker dont je me répète l'adresse IP est fixe. Et encore après, tout ce petit monde communique via les API publish/suscribe de MQTT sans plus se préoccuper d'adresse IP.
Je dois dire que je ne comprends guère ton problème si ce n'est que le broker MQTT doit être installé sur un serveur dont l'IP est fixe. Après, l'adresse IP étant connue, tous les clients (qu'ils soient client ou serveur au sens applicatif) de ce broker commencent par se connecter au broker dont je me répète l'adresse IP est fixe. Et encore après, tout ce petit monde communique via les API publish/suscribe de MQTT sans plus se préoccuper d'adresse IP.
Re: MQTT et Mdns
Merci de cette réponse.
En fait je n'ai pas de souci avec le broker, c'est juste qu'auparavant quand mes différents capteurs, communiquaient avec Domoticz en HTTP, je pouvais les interroger ou faire des mises à jour OTA en utilisant le nom mDNS suivi de .local dans mon navigateur.
Mais depuis que j'ai installé le protocole MQTT, ce nom mDNS n'est plus reconnu et il ne répond pas au ping.
Je cherchais simplement à comprendre quelle interaction pouvait avoir ce protocole avec le nom mDNS.
Ceci dit, c'est vraiment par curiosité puisque j'arrive pratiquement à faire la même chose en utilisant l'adresse Ip de mes capteurs, mais j'aime bien comprendre.
Merci encore et bravo pour ce site qui est une ressource inépuisable de renseignements et d'astuce.
En fait je n'ai pas de souci avec le broker, c'est juste qu'auparavant quand mes différents capteurs, communiquaient avec Domoticz en HTTP, je pouvais les interroger ou faire des mises à jour OTA en utilisant le nom mDNS suivi de .local dans mon navigateur.
Mais depuis que j'ai installé le protocole MQTT, ce nom mDNS n'est plus reconnu et il ne répond pas au ping.
Je cherchais simplement à comprendre quelle interaction pouvait avoir ce protocole avec le nom mDNS.
Ceci dit, c'est vraiment par curiosité puisque j'arrive pratiquement à faire la même chose en utilisant l'adresse Ip de mes capteurs, mais j'aime bien comprendre.
Merci encore et bravo pour ce site qui est une ressource inépuisable de renseignements et d'astuce.
-
Antori91
Re: MQTT et Mdns
Tu trouveras ici https://github.com/Antori91/Home_Automa ... %20modules
des exemples de programmes ESP8266 codés en Arduino qui font du MQTT et du OTA. Pour l'OTA, je n'ai jamais eu vraiment de problèmes, mes ESP8266 apparaissent rapidement dans l'IDE Arduino après leur première mise en service avec identifiant hostname OTA intégré. Par contre, je fais de l'OTA via l'IDE Arduino. Le hostname OTA de l'ESP8266 apparaît donc dans l'IDE pour éventuel reflash en WiFi depuis l'IDE.
Je comprends que toi par contre, tu fais de l'OTA via HTTP, c'est celà?
des exemples de programmes ESP8266 codés en Arduino qui font du MQTT et du OTA. Pour l'OTA, je n'ai jamais eu vraiment de problèmes, mes ESP8266 apparaissent rapidement dans l'IDE Arduino après leur première mise en service avec identifiant hostname OTA intégré. Par contre, je fais de l'OTA via l'IDE Arduino. Le hostname OTA de l'ESP8266 apparaît donc dans l'IDE pour éventuel reflash en WiFi depuis l'IDE.
Je comprends que toi par contre, tu fais de l'OTA via HTTP, c'est celà?
Re: MQTT et Mdns
Merci beaucoup, c'est effectivement plus clair.
Effectivement jusqu’à présent J'utilisais l'OTA à travers Visual studio code et Platformio qui je pense se sert de HTTP..
Le mix des deux protocoles expliquerait ce souci.
Je vais donc regarder l'OTA avec l'IDE Arduino que j'ai un peu lâché depuis que j'ai découvert PlatFormIO.
Merci encore pour toutes ces explications.
Effectivement jusqu’à présent J'utilisais l'OTA à travers Visual studio code et Platformio qui je pense se sert de HTTP..
Le mix des deux protocoles expliquerait ce souci.
Je vais donc regarder l'OTA avec l'IDE Arduino que j'ai un peu lâché depuis que j'ai découvert PlatFormIO.
Merci encore pour toutes ces explications.
Re: MQTT et Mdns
Bonjour,
Après de plus amples vérifications, je me suis aperçu que le souci ne venait pas de MQTT, mais de la manière de déclarer le host de la machine.
En effet j'utilisais WiFi.hostname(myhost) pour fixer le nom de ma machine, alors qu'il fallait utiliser ArduinoOTA.setHostname(myhost).
Dans le premier cas on modifie le nom réseau pour le DHCP, dans l'autre cas c'est le nom mDNS qui est entré.
Bref dans le premier cas on n'a plus accès à la machine avec une commande type "nomdemachine.local".
Merci encore pour votre aide.
Après de plus amples vérifications, je me suis aperçu que le souci ne venait pas de MQTT, mais de la manière de déclarer le host de la machine.
En effet j'utilisais WiFi.hostname(myhost) pour fixer le nom de ma machine, alors qu'il fallait utiliser ArduinoOTA.setHostname(myhost).
Dans le premier cas on modifie le nom réseau pour le DHCP, dans l'autre cas c'est le nom mDNS qui est entré.
Bref dans le premier cas on n'a plus accès à la machine avec une commande type "nomdemachine.local".
Merci encore pour votre aide.