Les phases d'une application cliente mobile

Ce guide présente les différentes phases, dont celle de connexion à une centrale domotique d'une interface cliente externe (ex. application mobile, tablette tactile, etc…).

Diagramme logique de connexion

Diagramme logique

Au lancement de l'application la première étape à effectuer est de contacter le serveur calaos.fr grâce à une requête JSON get_ip afin de récupérer l'adresse IP su laquelle se connecter. En fonction de la réponse (et surtout en fonction du paramètre athome), on va pouvoir tenter une connexion (Icon1 et Icon2) grâce à l'API JSON. L'API JSON est a privilégier dans tous les cas, par rapport à l'API TCP, car le nombre de requêtes est moins important en HTTP/JSON. Il y a une petite différence à adopter entre le mode “local” et le mode “distant” (voir la partie Si une erreur survient (problème de connexion à Internet, pas de réponse de calaos.fr, …) lors de la connexion il faudra alors déterminer si une connexion Wifi au réseau local est disponible et tenter une recherche d'une centrale domotique sur le réseau local Icon3. En cas d'échec, la connexion sera alors impossible et un message d'erreur devra être affiché Icon4. ===== Mode local/Mode Distant ===== Dans une application mobile, le nombre de requêtes doit être optimisé pour garantir un chargement rapide, ainsi qu'une autonomie correcte de l'appareil. Il faudra donc toujours privilégier le protocole HTTP/JSON. Il y a cependant une différence important à prendre en compte lorsque que l'on est connecté à la centrale sur le réseau local. ==== Mise à jour des états ==== L'application doit lors de son lancement “charger” la configuration de la maison (voir le protocole HTTP/JSON). Une fois la maison chargé, l'interface de l'application devra refléter en continu les différents états des éléments. Par ex, si une lumière s'allume (change d'état), l'application devra automatiquement refléter son état sur l'interface en temps réel. === Polling JSON === Pour cela il y a 2 méthodes disponibles, la première consiste à effectuer régulièrement une demande d'état de l'élément (un polling). === Mode Listen (PUSH) === Une autre méthode est disponible grâce au protocole TCP, il s'agit du mode listen. Le mode listen mets la connexion TCP en écoute et c'est non plus l'application qui va demander l'état des éléments, mais la centrale qui va envoyer tous les changements d'états. Ce mode ne peut être utilisé que sur les connexions réseau local, et non en mode distant.