Concevoir une automatisation sur Android

Avant de commencer à utiliser l'API Automation, vous devez concevoir vos automatisations.

Déterminez les paramètres suivants pour chaque automatisation :

  • Les circonstances dans lesquelles l'automatisation doit être suggérée à l'utilisateur. Par exemple, si l'utilisateur vient d'ajouter trois nouvelles lumières à sa maison, il peut être intéressé par une automatisation particulière conçue pour contrôler les lumières.
  • Les types d'appareils requis pour l'automatisation. Par exemple, si l'utilisateur vient d'ajouter trois nouvelles lumières à sa maison, il peut être intéressé par une automatisation particulière conçue pour contrôler les lumières. Les types d'appareils d'éclairage incluent, par exemple, OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice ou ExtendedColorLightDevice.
  • Les attributs et commandes de trait requis pour l'automatisation, et s'ils sont compatibles avec l'API Automation sur Android.
  • Les traits qui doivent activer l'automatisation en tant que déclencheurs. Les déclencheurs sont abordés dans la section Composants d'automatisation sur Android.
  • Les conditions supplémentaires qui déterminent si l'automatisation doit réellement s'exécuter et les actions à effectuer.
  • Le flux d'exécution de l'automatisation. Doit-il s'exécuter de manière séquentielle ou parallèle ? Avez-vous besoin de plusieurs chemins logiques ?

Lors de la conception, il peut être utile de schématiser le flux de l'automatisation, nœud par nœud, avec la logique requise à chaque étape.

Une fois que vous avez conçu une automatisation, utilisez le DSL d'automatisation pour la créer. L'automatisation que vous créez est essentiellement un "modèle" : toutes les structures et tous les appareils qu'il contient sont des espaces réservés et sont remplis avec la structure et les appareils spécifiques de chaque utilisateur lorsqu'il "adopte" l'automatisation pour son propre usage.

Voici différents types d'automatisations qu'une application peut créer à l'aide des API Home. Consultez la page Créer une automatisation pour obtenir des extraits de code concernant ces exemples.

Automatisation simple

Supposons que vous deviez écrire une application qui crée une automatisation qui lève les stores à 8h00. Pour ce faire, l'application a besoin d'une liste des stores (appareils de type WindowCoveringDevice) présents dans la structure qui prennent en charge les automatisations, qui peuvent être fournies par l'API Discovery.

Pour les automatisations qui doivent s'exécuter à une heure précise, vous devez également vous assurer que l'utilisateur a attribué une adresse postale à la structure de son choix dans le Google Home app (GHA), sinon l'automatisation ne connaît pas le fuseau horaire dans lequel elle s'exécutera. L'API Discovery peut vous aider à déterminer si une adresse a été attribuée ou non à la structure.

Le flux d'exécution se présente comme suit :

  1. À l'aide de l'API Discovery, collectez la liste des appareils WindowCoveringDevice.
  2. Si l'adresse postale n'est pas renseignée, informez l'utilisateur qu'il doit fournir une adresse postale et interrompez l'exécution.
  3. Sinon, définissez l'automatisation :
    1. Démarrez l'automatisation à 8h00.
    2. Pour chacun des stores, appelez la commande upOrOpen du trait WindowCovering.

Automatisation complexe

Imaginez une application qui crée une automatisation qui déclenche des lumières clignotantes lorsqu'un mouvement est détecté.

L'une des premières tâches à effectuer pour implémenter cette application consiste à déterminer les lumières disponibles dans la maison de l'utilisateur à l'aide de l'API Discovery. Grâce à ces informations, votre application peut désormais afficher les lumières disponibles et peut-être permettre à l'utilisateur de sélectionner les lumières qu'il souhaite faire clignoter.

Flux d'exécution :

  1. À l'aide de l'API Discovery, collectez la liste des appareils d'éclairage présents dans la structure, qui seraient tous les appareils de type OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice ou ExtendedColorLightDevice.
  2. Fournissez un moyen de sélectionner les lumières qui clignotent, par exemple via un panneau de paramètres personnalisé.
  3. Définissez l'automatisation :
    1. Démarrez l'automatisation chaque fois que quelqu'un quitte les locaux ou y arrive, en surveillant AreaPresenceState.
    2. Si presenceState indique que la structure est occupée, faites clignoter les lumières choisies.

Automatisation générique

Pour obtenir un exemple d'automatisation plus sophistiquée, considérez celle qui guide l'utilisateur dans la création d'une automatisation ouverte, basée sur tout ou partie des appareils dont il dispose dans sa maison.

L'automatisation peut d'abord inviter l'utilisateur à sélectionner une structure.

L'automatisation peut ensuite afficher toutes les pièces de la structure dans une vue hiérarchique extensible, où le développement d'une pièce affiche les appareils qu'elle contient. Le développement d'un appareil répertorie les déclencheurs et les commandes compatibles avec cet appareil.

L'utilisateur peut choisir les appareils, les déclencheurs et les commandes qu'il souhaite utiliser, et l'automatisation le guide dans l'assemblage d'une automatisation.

Une fois que tous les choix et décisions de l'utilisateur sont définitifs, l'automatisation génère l'automatisation et l'enregistre dans la structure de son choix.

De manière générale, une telle automatisation doit collecter plusieurs ensembles de données sur la maison de l'utilisateur à l'aide de l’API Structure pour Android, de l’API Device pour Android, et de l’API Discovery.

Tableau 1 : API Home et informations qu'elles peuvent fournir
APIInformations
API Structure
  • Structures disponibles
  • Pièces de la structure
API Device
  • Appareils de la structure choisie
  • Emplacement de ces appareils (pièce)
API Discovery
  • Traits compatibles avec les appareils
  • Déclencheurs et commandes disponibles sur ces traits
  • Contraintes sur les paramètres de ces commandes