Présentation de l'API Automation sur Android

Les automatisations permettent d'automatiser les tâches et les paramètres des appareils dans une maison. Elles sont disponibles dans l'écosystème Google Home sous forme de routines dans le Google Home app (GHA) et via le automation script editor sur Google Home for web.

Désormais, les automatisations de l'écosystème Google Home sont disponibles via les API Home pour Android. Elles utilisent les mêmes concepts de base que les GHA routines et l'script editor, mais avec des fonctionnalités améliorées qui ne sont possibles que via les API Home, y compris :

  • L'accès à tous les Matter standards et smart home traits pour un appareil, comme présenté dans les API Home.
  • La prise en charge des flux d'exécution séquentiels, parallèles et de sélection.

Les automatisations sont écrites à l'aide d'Automation DSL, un langage spécifique au domaine conçu pour créer des automatisations en Kotlin.

Tous les traits et types que vous comptez utiliser dans votre application avec les API Device &Structure ou Automation doivent être enregistrés lors de l'initialisation. Consultez la page Initialiser la maison sur Android.

Conseils si l'utilisateur révoque les autorisations complètes

Si l'utilisateur révoque les autorisations complètes, toutes les automatisations existantes cesseront de fonctionner. De même, s'il révoque l'accès à des appareils spécifiques, les déclencheurs, les conditions et les actions associés à ces appareils cesseront de fonctionner.

Chaque fois que l'application démarre, assurez-vous que les autorisations sont toujours en vigueur. Si elles ont été révoquées, veillez à supprimer toutes les données précédentes, y compris celles mises en cache dans l'application.

Parcours du développeur

L'API Automation fait partie d'un parcours de développement plus vaste. Elle intervient après l'intégration des API Structure et Device pour s'assurer que l'utilisateur peut utiliser une automatisation lorsqu'il le souhaite.

  1. Le développeur planifie son automatisation et la définit à l'aide d'Automation DSL.
  2. Il intègre la définition de l'automatisation dans une application Android Kotlin.
  3. L'application présente les automatisations à un utilisateur en fonction des informations sur ses appareils, y compris les traits, les attributs, les commandes et les événements, collectées à l'aide de l'API Discovery ou de l'API Device.
    1. Avec l'API Discovery, l'application peut générer une automatisation brouillon personnalisée en fonction des types d'appareils et des traits présents dans la structure de l'utilisateur, avec ou sans son intervention.
    2. L'API Device peut fournir la plupart des mêmes informations que l'API Discovery, mais elle n'est pas optimisée pour les cas d'utilisation de l'automatisation. Pour en savoir plus, consultez la page Comparer l'API Device et l'API Discovery.
  4. L'application crée l'automatisation réelle qui est associée à la structure sélectionnée.
  5. L'automatisation est désormais disponible dans la structure de l'utilisateur et peut être exécutée ou supprimée à l'aide des méthodes de l'API Structure.

L'utilisateur peut créer de nouvelles instances de l'automatisation à tout moment, en sélectionnant une autre structure ou, selon la logique de l'application, un autre ensemble d'appareils. Chaque fois qu'il le fait, l'application génère une nouvelle instance de l'automatisation.

Dans le scénario le plus simple, vous pouvez suggérer à vos utilisateurs une automatisation prédéfinie qui effectue une tâche relativement simple. Vous pouvez également présenter un squelette d'automatisation que l'utilisateur personnalise en fonction de ses besoins. Vous pouvez aussi écrire un éditeur d'automatisation ouvert qui permet à l'utilisateur de créer des automatisations complexes à l'aide de tous les blocs de construction disponibles dans l'API Automation.

Suggestions d'automatisation

Les API Home peuvent suggérer des automatisations pour un Structure en fonction de facteurs tels que les types d'appareils présents dans l'espace.

Les suggestions d'automatisation sont représentées par la AutomationSuggestion classe.

L'Structure interface englobe l' HasSuggestions interface, qui fournit la suggestions() fonction, laquelle renvoie une collection de suggestions d'automatisation.

Les méthodes likeSuggestion() et dislikeSuggestion() sont destinées à être connectées aux commandes d'interface utilisateur et que l'utilisateur peut appuyer pour fournir des commentaires.

Une troisième méthode, clearSuggestionFeedback(), permet à l'utilisateur de supprimer ses commentaires pour une automatisation suggérée.

Les commentaires des utilisateurs influencent les suggestions futures.

Limites de ressources

Les limites suivantes s'appliquent aux automatisations dans les API Home :

Tableau : Limites de ressources de l'API Automation
Métrique Limite
Nombre maximal d'automatisations par structure 64
Nombre maximal de nœuds par automatisation 128
Nombre maximal de nœuds d'expression par automatisation 64
Nombre maximal d'instances d'automatisation par structure 1024
Nombre maximal d'instances d'automatisation par développeur et par structure 64
Nombre maximal d'exécutions par structure et par jour 1024
Nombre maximal d'exécutions par développeur, par structure et par jour 128