Module Home Automation BAT5

Intervenant : Baptiste Philibert

@

Equipements Pédagogiques

Equipements Matériels

Equipements Logiciels

  1. adresse IP par défaut : 192.168.1.123
  2. login et mot de passe par défaut : admin / domus
  3. mode de connexion : socket TCP, par défaut sur le port 30303
  4. communication à travers des payloads 'ascii'
  5. Contrôle des Relais (1 à 6)
 
    db#{PASSWORD}#12#r{X}on#
    db#{PASSWORD}#12#r{X}of#
    db#{PASSWORD}#12#r{X}tg#
    db#{PASSWORD}#12#r{X}pu|{SSS}#
    
  1. Contrôle des Sorties analogiques (1 et 2)
db#{PASSWORD}#69#{X}{YYY}#
  1. Les status des la DomusBox sont envoyés automatiquement toutes les secondes à travers la connexion TCP sous la forme :
db#12#{RELAIS}#{ENTREES_DIGITALES}#{IA}#{IB}#{OA}#{OB}
  1. Legende :
    • {PASSWORD} : à remplacer par le mode de passe entré dans la page de configuration, par défaut 'domus'
    • {X} : à remplacer par le numéro du relais ou de la sortie analogique, c'est une valeur pouvant aller de 1 à 6 dans le cas du relais, et 1 à 2 dans le cas des sorties analogique. En entrant la valeur 0 il est possible de commuter l'ensemble des relais en une seule commande.
    • {SSS} : à remplacer par le nombre de secondes à attendre avant de re-basculer le relais dans son état initial
    • {YYY} : à remplacer par nombre de 1 à 254 permettant de faire varier la tension de sortie de 0 à 10V
    • {RELAIS} : 1 nombre entier qui représente l'état de l'ensemble des sorties. Utiliser un masque logique pour connaitre l'état de la sortie voulue.
    • {ENTREES_DIGITALE} : 1 nombre entier qui représente l'état de l'ensemble des entrées digitale. Utiliser un masque logique pour connaitre l'état de l'entrée voulue.
    • {IA},{IB} : 1 nombre de 0 à 254 qui représente la valeur de l'entrée analogique A ou B
    • {OA},{OB} : 1 nombre de 0 à 254 qui représente la valeur de la sortie analogique A ou B

Procédure d'installation de l'environnement logiciel de travail sur vos PCs

  1. IDE
    https://developer.android.com/sdk/installing/studio.html
    
    Requirements:
        - Java Development Kit (JDK) 6 or higher
  2. Emulator
    http://www.genymotion.com
        - Liste à puceInstaller la distrib incluant VirtualBox et Genymotion installer.
        - Installer le plugin pour IntelliJ:
    " The installation of the plugin can be done by launching IDEA and going to "File / Settings" menu, then go to "IDE Settings" section, then "Plugins".
    Click on "Browse repositories" button and search "Genymotion" entry. Follow the steps indicated by IDEA. 
    Warning: to use this plugin, Genymotion must be installed on your system. "
        - Créer un compte sur Geny Motion.

Programme Pédagogique

    - Présentation du module
    - Présentation de la DomusBox
    - Installation et découverte de l'environnement de développement
    - Création du projet AndroidStudio "Domus"
    - Présentation de l'architecture d'un projet AndroidStudio
    - Présentation détaillée de l'architecture de projet AndroidStudio : Manifest, resources, build gradle, Activity, Fragments, vues Layout et composants
    - Déploiement du projet sur le simulateur GenyMotion, le simulateur Android, de vrais téléphones Android
    - Démarrage du projet "Domus" : gestion de l'écran de connexion
    - Mise en place du "flow" de l'application : démarrage de la "MainActivity", création du fragment "ConnexionFragment"
    - Rappel des concepts de programmation objet, de l'héritage
    - Gestion des événements "click" sur les éléments d'interface, affichage des "Toast" Android
    - Déploiement de l'application sur émulateur ou téléphone réél
    - Débug des environnements de développements...hétérogènes!
    - Gestion des préférences utilisateurs : intégration d'une librairie tierce permettant la rétro-compatibilité
    - Création d'un écran de "réglages utilisateurs" pour sauver l'adresse IP et le numéro de port TCP de la box à connecter automatiquement
    - Re-lecture des clés "shared-preferences" pour exploitation dans la logique fonctionnelle et graphique de l'application
    - Traitement des cas d'erreurs depuis l'écran de connexion utilisant ces "réglages utilisateurs"
    - Plus d'autonomie : création libre d'un déroulé type à partir de l'écran de connexion
    - Création du fragment "control" (code + layout XML), chargement du fragment depuis l'écran de connexion
    - Création d'une interface avec "ToggleBouton", récupération et traitement des événements de clique
    - Préparation pour l'envoi de commandes vers la box
    - Connexion socket
    - Création d'une classe DomusSettings avec constructeur, getter et setter personnalisé
    - Utilisation des AsynTask pour réaliser une connexion socket à la box en dehors du UI thread depuis le ControlFragment
    - Gestion des Try Catch et de la classe de Log
    - Debug d'une application Android à l'aide des points d'arrêt et du debugger