Avant de commencer à utiliser l'API Automation, vous devez concevoir vos automatisations.
Déterminez les paramètres suivants pour chaque automatisation :
- 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 spécifique pour les contrôler.
- 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 spécifique pour contrôler les lumières. Les types d'appareils lumineux incluent, par exemple,
OnOffLightDevice
,ColorTemperatureLightDevice
,DimmableLightDevice
ouExtendedColorLightDevice
. - Les attributs et commandes de caractéristiques requis pour l'automatisation, et s'ils sont pris en charge par l'API Automation sur Android.
- 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.
- Conditions supplémentaires qui déterminent si l'automatisation doit réellement s'exécuter et quelles actions doivent être effectuées.
- Flux d'exécution de l'automatisation. Doit-il s'exécuter de manière séquentielle ou en parallèle ? Avez-vous besoin de plusieurs chemins logiques ?
Lors de la conception, il peut être utile de schématiser le flux d'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". Les structures et les appareils qu'il contient sont des espaces réservés qui 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 relatifs à ces exemples.
Automatisation simple
Imaginons que vous deviez écrire une application qui crée une automatisation pour lever les stores à 8h du matin. Pour ce faire, l'application a besoin d'une liste des stores (appareils de type WindowCoveringDevice
) présents dans la structure et compatibles avec les automatisations. Cette liste peut être fournie 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 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 à la structure.
Le flux d'exécution se présenterait comme suit :
- À l'aide de l'API Discovery, rassemblez la liste des appareils
WindowCoveringDevice
. - Si l'adresse postale n'est pas renseignée, informez l'utilisateur qu'il doit la fournir et arrêtez l'exécution.
- Sinon, définissez l'automatisation :
- Démarrez l'automatisation à 8h.
- Pour chacun des stores, appelez la commande
upOrOpen
de la caractéristiqueWindowCovering
.
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 lors de l'implémentation de cette application consiste à identifier 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 celles qu'il souhaite faire clignoter.
Flux d'exécution :
- À l'aide de l'API Discovery, rassemblez la liste des dispositifs d'éclairage présents dans la structure, c'est-à-dire tous les dispositifs dont le type est
OnOffLightDevice
,ColorTemperatureLightDevice
,DimmableLightDevice
ouExtendedColorLightDevice
. - Fournissez un moyen de sélectionner les lumières qui clignotent, peut-être via un panneau de paramètres personnalisé.
- Définissez l'automatisation :
- Démarrez l'automatisation chaque fois que quelqu'un quitte les locaux ou y arrive, en surveillant
AreaPresenceState
. - Si
presenceState
indique que la structure est occupée, faites clignoter les lumières choisies.
- Démarrez l'automatisation chaque fois que quelqu'un quitte les locaux ou y arrive, en surveillant
Automatisation générique
Pour un exemple d'automatisation plus sophistiquée, prenons le cas d'une automatisation qui guide l'utilisateur dans la création d'une automatisation ouverte, basée sur tout ou partie des appareils qu'il possède dans sa maison.
L'automatisation peut d'abord inviter l'utilisateur à sélectionner une structure.
L'automatisation pourrait alors afficher toutes les pièces de la structure dans une vue schématique extensible, où le développement d'une pièce affiche les appareils qui s'y trouvent. Développer un appareil permet d'afficher les starters et les commandes compatibles avec cet appareil.
L'utilisateur pouvait choisir les appareils, les déclencheurs et les commandes qu'il souhaitait utiliser, et l'automatisation le guidait 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 choisie.
De manière générale, une telle automatisation devrait 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.
API | Informations |
---|---|
Structure API |
|
API Device |
|
API Discovery |
|