Cahier des Charges : Application Mobile pour Domotique avec Contrôle Bluetooth
En tant qu'utilisateur (étant en vélo ou avec une poussette), je souhaite pouvoir ouvrir le portail et la porte de garage de ma maison sans sortir mon téléphone de ma poche.
Pour cela :
- J'utilise un device Bluetooth (un bouton) qui, une fois pressé, envoie une commande à l'application mobile pour exécuter l'action correspondante (par exemple, ouvrir le portail).
- Ma maison est équipée de domotique et expose une API web permettant de réaliser ces opérations.
L'objectif de l'application est de permettre un contrôle simple et sécurisé des équipements domotiques via Bluetooth et API.
-
Configuration des actions :
- Permettre la création d'actions associées à des opérations domotiques.
- Une action est configurée via :
- URL : L'endpoint de l'API pour exécuter l'action (ex. ouvrir le portail).
- Méthode HTTP : GET, POST, etc.
- Headers : Informations de type token d’authentification.
- Payload : Les données éventuelles à envoyer avec la requête.
- Authentification : Ajout de mécanismes de sécurité comme OAuth ou API key.
-
Configuration Bluetooth :
- Scanner et afficher les devices Bluetooth disponibles.
- Permettre de connecter un device Bluetooth à l’application.
- Gérer les devices connectés (ex. attacher, révoquer, renommer).
-
Tableau de bord des actions :
- Affichage d'un panneau constitué de tuiles représentant chaque action configurée.
- Chaque tuile doit :
- Permettre d’exécuter l’action associée en un clic.
- Afficher un feedback visuel (succès/erreur) suite à l’exécution.
-
Statut Bluetooth :
- Afficher les devices Bluetooth connectés actuellement.
-
Sécurité :
- Prendre en compte la criticité des actions domotiques (portail/garage).
- Intégration d’authentification forte (par exemple, via mot de passe ou biométrie pour accéder aux paramètres).
- Chiffrement des communications Bluetooth et API.
-
Logs :
- Chaque exécution d’action doit être logguée avec :
- Date/heure de l’exécution.
- Device Bluetooth à l’origine de la demande.
- Résultat de l’action (succès/erreur).
- Chaque exécution d’action doit être logguée avec :
-
Exécution automatique via Bluetooth :
- Permettre le déclenchement des actions configurées à partir du bouton Bluetooth sans intervention manuelle sur l’application.
-
Option de géolocalisation :
- Ajouter une contrainte de proximité (à activer/désactiver dans les paramètres).
- Exemple : Autoriser l’exécution d’actions uniquement si le téléphone est à moins de 300 mètres du domicile.
- Utilisation de Bluetooth Low Energy (BLE) pour garantir une faible consommation d’énergie.
- Gestion des permissions pour l’accès Bluetooth sur Android.
- Compatible avec les méthodes REST (GET, POST, PUT, DELETE).
- Support d’authentification OAuth2 ou via API key.
- Gérer les éventuelles erreurs HTTP (échecs de connexion, codes 4XX/5XX).
- Utilisation des services de localisation d’Android.
- Vérification en temps réel de la distance entre l’utilisateur et l'adresse préconfigurée.
- Design intuitif avec focus sur l’accessibilité (boutons et tuiles visibles et facilement manipulables).
- Feedback utilisateur immédiat (changement de couleur, messages d’état).
- Support du mode sombre (optionnel).
-
Application Android :
- Compatible avec Android 10 et versions supérieures.
- APK installable avec documentation d’installation.
-
Documentation :
- Guide utilisateur (configuration des actions, connexion Bluetooth, logs).
- Détails techniques (architecture, endpoints API utilisés, sécurité).
- Contrat d'interface Bluetooth : Fournir des exemples concrets de payloads Bluetooth permettant de déclencher les actions (par ex., structure des messages envoyés/reçus).
- Sécurité : Garantir une protection optimale des données sensibles.
- Fiabilité Bluetooth : Gérer les problèmes de connexion ou de perte de signal.
- Expérience Utilisateur : Assurer une interface fluide et réactive.
- Scalabilité : Prévoir la possibilité d’ajouter de nouvelles actions ou intégrations (ex. caméras de surveillance, capteurs).