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 particulière adaptée au contrôle des lumières.
- 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 adaptée au contrôle des lumières. Les types d'appareils d'éclairage incluent, par exemple,
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDeviceouExtendedColorLightDevice. - Quels attributs et commandes de trait sont requis pour l'automatisation, et s'ils sont compatibles avec l'API Automation sur Android.
- Les caractéristiques qui doivent activer l'automatisation en tant que déclencheurs. Les déclencheurs sont abordés dans 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 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". Les structures et les appareils qu'elle 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 correspondant à ces exemples.
Automatisation simple
Imaginons que vous deviez écrire une application qui crée une automatisation pour lever les stores à 8h. Pour ce faire, l'application a besoin d'une liste des stores (appareils de type WindowCoveringDevice) présents dans la structure qui sont compatibles avec les automatisations, qui peut être fournie par l'API Discovery.
Pour les automatisations qui doivent s'exécuter à une certaine heure, vous devez également vous assurer que l'utilisateur a attribué une adresse postale à la structure choisie (soit lors de la création de la structure, soit dans l'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ésente donc 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 en fournir une (par exemple, dans GHA) et arrêtez l'exécution.
- Sinon, définissez l'automatisation :
- Démarre l'automatisation à 8h.
- Pour chacun des stores, appelez la commande
upOrOpende l'attributWindowCovering.
Automatisation complexe
Imaginez une application qui crée une automatisation déclenchant des lumières clignotantes lorsqu'un mouvement est détecté.
L'une des premières tâches à effectuer pour implémenter 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 éventuellement permettre à l'utilisateur de sélectionner celles qu'il souhaite faire clignoter.
Le flux d'exécution :
- À l'aide de l'API Discovery, rassemblez la liste des appareils d'éclairage présents dans la structure, c'est-à-dire tous les appareils dont le type est
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDeviceouExtendedColorLightDevice. - Fournissez un moyen de sélectionner les lumières qui clignotent, par exemple via un panneau de paramètres personnalisé.
- Définissez l'automatisation :
- Démarrez l'automatisation chaque fois que quelqu'un quitte ou arrive sur les lieux, en surveillant
AreaPresenceState. - Si
presenceStateindique que la structure est occupée, faites clignoter les lumières choisies.
- Démarrez l'automatisation chaque fois que quelqu'un quitte ou arrive sur les lieux, en surveillant
Automatisation générique
Pour un exemple d'automatisation plus sophistiquée, prenons une automatisation qui guide l'utilisateur dans la création d'une automatisation ouverte, basée sur l'un ou l'ensemble des appareils de sa maison.
L'automatisation peut d'abord inviter l'utilisateur à sélectionner une maison.
L'automatisation pourrait alors afficher toutes les pièces de la structure dans une vue de la structure extensible, où le développement d'une pièce affiche les appareils qu'elle contient. En développant davantage un appareil, vous pouvez afficher 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 tout au long de la création d'une automatisation.
Une fois que l'utilisateur a fait tous ses choix et pris toutes ses décisions, l'automatisation est générée et enregistrée dans la structure choisie.
En gros, 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 |
|---|---|
| API Structure |
|
| API Device |
|
| API Discovery |
|