Devdevdavid / Pascal-Project

MIT License
0 stars 1 forks source link

[Interface Température] Utilisation de mDNS pour éviter de connaître l'IP du module pour s'y connecter #19

Closed Devdevdavid closed 3 years ago

Devdevdavid commented 3 years ago

Cet article montre comment utiliser mDNS pour effectuer une résolution de nom de domaine en local sur le module wifi.

Le nom de domaine à utiliser doit être unique, il faut donc qu'il soit configurable par l'utilisateur.

Ce même nom de domaine devrait s'afficher à côté de l'IP au moment du boot dans la liaison série.

Plus d'info sur le protocole mDNS ici : RFC 6762

Devdevdavid commented 3 years ago

Il semblerait que la librairie ArduinoOTA gère déjà cette fonctionnalité. Peut-être qu'une simple configuration suffirait.

GilDev commented 3 years ago

Je confirme, j’ai déjà réussi à faire fonctionner mDNS avec ArduinoOTA sans souci par le passé.

Devdevdavid commented 3 years ago

✅ Fonction implémentée avec le commit 07693a6688ec770c61f7bb8ac149c87516d0e031

Le nom du module est configurable depuis la page du wifi. On accède au module en tapant <nom>.local dans son navigateur. Si on configure un nom vide, alors on n'utilise pas le mDNS.

Fun fact : Bonjour c'est l'autre nom de mDNS donné par Apple 🤯

Devdevdavid commented 3 years ago

Dans mon cas, la résolution de nom avec un ESP8266 ne fonctionne pas sur MacOS. Pas de soucis en revanche avec les ESP32.

Cette différence est expliquée ici : https://github.com/esp8266/Arduino/issues/4790#issuecomment-395207417

Devdevdavid commented 3 years ago

Suite à quelques tests, nous avons remarqué que la résolution mDNS ne fonctionnait pas sur un PC Windows 7 et un téléphone Android.

mDNS n'est en effet pas supporté nativement par ces plateformes contrairement aux appareils IOS et MacOS.

Sous windows 7, un hack est possible d'après ce site en utilisant "bonjour" d'Apple Windows 10 supporte nativement mDNS. Ceci reste à tester. Pour Android, cela s'annonce mal d'après ce site. Seules quelques version récente d'Android seraient compatibles nativement. Pas de problème avec Linux du moment que le paquet Avahi est installé

GilDev commented 3 years ago

En effet j’avais rencontré le même problème. Windows 7 est relativement obsolète maintenant mais Bonjour ça fonctionnait bien. Pour Android c’est une impasse, j’ai cherché un moment mais pas de solution… Si ce n’est pas supporté nativement c’est compliqué.

Devdevdavid commented 3 years ago

✅ mDNS fonctionnel pour ESP32 et ESP8266 avec commit 58fc617bf178745ef61d4891b34792cb7aaea99f ⚠️ Pas de solution trouvée pour le support de mDNS sur Android

Devdevdavid commented 3 years ago

Validé ce jour avec Pascal Demande de Pascal : Un mode d'emploi de connexion pour les utilisateurs