Skip to content

[Interface Température] Configuration des paramètres wifi par l'utilisateur #17

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
13 tasks done
Devdevdavid opened this issue Dec 28, 2020 · 10 comments
Closed
13 tasks done
Assignees
Labels
Amélioration New feature or request

Comments

@Devdevdavid
Copy link
Owner

Devdevdavid commented Dec 28, 2020

Dans le but de rendre l'utilisation de LightKit plus accessible à l'utilisateur, on souhaite que les configurations wifi (SSID, mot de passe, IP, Gateway, Masque) soient configurables.

La procédure serait la suivante :

  • A-t-on une configuration valide enregistrée en mémoire flash ?

  • si Oui:

  • on essaie de se connecter au réseau indiqué dans la configuration

  • si Non:

  • On démarre en mode Access Point

  • L'utilisateur peut se connecter au module à travers l'interface web (IP par défaut à définir)

  • Il peut choisir de configurer le module pour se connecter à un réseau wifi existant

  • Il saisi les paramètres dans un formulaire HTML

  • Note: il serait intéressant d'afficher les réseaux alentours détectés avec une indication de la force du signal

  • Après validation du formulaire, les paramètres sont stockés en mémoire flash

  • Une séquence de reboot est enclenchée

Les objectifs secondaires:

  1. La configuration lue au moment du boot doit être affichée dans le terminal
  2. On utilisera un checksum ou un CRC pour valider la configuration flash
  3. La sauvegarde des paramètres doit être évolutive et doit supporter l'ajout de nouveaux paramètres
  4. La led de status, s'il y en a, doit indiquer si le module est en mode connecté ou AP

D'autres propositions ?

@Devdevdavid Devdevdavid added the Amélioration New feature or request label Dec 28, 2020
@Devdevdavid
Copy link
Owner Author

Sur l'ESP32, j'obtiens désormais des crashs en mode AP lors d'une tentative de connexion. Ce problème est évoqué ici

@Devdevdavid
Copy link
Owner Author

Devdevdavid commented Jan 18, 2021

Le problème venait finalement du fait que l'on doit attendre un peu entre l'appel de WiFi.softAP()et de WiFi.softAPConfig()
Le même problème est évoqué ici
✅ Résolu avec 84174b5

@Devdevdavid
Copy link
Owner Author

Devdevdavid commented Jan 18, 2021

📸 Voici un aperçu de la page de configuration Wifi :

@Devdevdavid Devdevdavid self-assigned this Jan 18, 2021
@GilDev
Copy link
Collaborator

GilDev commented Jan 19, 2021

Pas mal ! Ça ressemble à Tasmota, peut-être la source d’inspiration. 🙂

@Devdevdavid
Copy link
Owner Author

Non je ne connaissais pas ^^

@Devdevdavid
Copy link
Owner Author

Devdevdavid commented Jan 20, 2021

📸 Voici une première ébauche de l'interface des réseaux wifi découverts avec le SSID et RSSI affiché sous forme de logo :

GUIRéseauxDécouverts

@Devdevdavid
Copy link
Owner Author

Devdevdavid commented Jan 24, 2021

Scan des réseaux alentours fonctionnel. Il suffit de cliquer sur un scan pour pré-remplir le champ SSID.
Lors du scan, le module se déconnecte du réseau, lance un scan, puis se reconnecte. Idem lorsqu'il est en mode AP.
Lors du scan, il n'est donc plus possible d'interagir avec le module. Cela crée des latences si l'on clique sur un bouton de la page web en même temps.
Le scan est relativement rapide (3-5s) donc ça passe.
On prend le soin d'enregistrer en RAM le canal wifi et l'adresse MAC de la box avant la déconnexion pour une re-connexion plus rapide.

Ajout d'une icône de chargement pour savoir quand-est-ce que le scan est en cours :

Screenshot 2021-01-24 at 18 32 07

@Devdevdavid
Copy link
Owner Author

Déconnexion de l'utilisateur lors du scan

Lors des tests avec Pascal, nous avons remarqué que les téléphones Android se déconnectent du module en point d'accès lors du scan wifi des réseaux environnants.
Cette déconnexion empêche la validation du formulaire HTML et donc la configuration du module.

Pour éviter cela, nous avons choisi d'effectuer un scan peu après le démarrage et de conserver les résultats pour 24h.
Au delà, le chargement de la page web impliquera une demande de rafraichissement des scans qui déconnectera les utilisateurs Android. Pas de soucis pour leur 2nd tentative car les résultats seront de nouveau disponibles pour 24h.

En pratique, l'utilisateur va brancher son module puis tenter une configuration wifi. Ce problème ne sera apparent que pour un faible nombre d'utilisateur et n'est pas bloquant.

Note: Pas de problème pour un module en mode client, l'utilisateur reste connecté à sa box

Commit : dcb2b83

@Devdevdavid
Copy link
Owner Author

Tester le point sur la LED de statut avec la carte board_temp_telegram_relay qui dispose d'une led de status de type Néopixel

@Pascal-Tours
Copy link
Collaborator

Fonction validée !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Amélioration New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants