Concevoir une automatisation

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 ampoules à sa maison, il peut être intéressé par une automatisation spécifique adaptée au contrôle des ampoules.
  • Types d'appareils requis pour l'automatisation. Par exemple, si l'utilisateur vient d'ajouter trois nouvelles ampoules à sa maison, il peut être intéressé par une automatisation spécifique adaptée au contrôle des ampoules. Les types d'appareils d'éclairage incluent OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice ou ExtendedColorLightDevice.
  • Les attributs et commandes de trait requis pour l'automatisation, et s'ils sont compatibles avec l'API Automation.
  • Les caractéristiques qui doivent déclencher l'automatisation en tant que déclencheurs. Les déclencheurs sont abordés dans la section Composants d'automatisation.
  • 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 représenter 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'elle contient sont des espaces réservés et sont renseignés avec la structure et les appareils spécifiques de chaque utilisateur lorsqu'il "adopte" l'automatisation pour son propre usage.

Voici les 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

Imaginons que vous deviez écrire une application qui crée une automatisation qui ouvre les volets à 8h00. Pour ce faire, l'application a besoin d'une liste des volets (appareils avec le type d'appareil WindowCoveringDevice) présents dans la structure compatibles avec les automatisations, qui peuvent être fournies par l'API Discovery.

Pour les automatisations qui doivent s'exécuter à une heure donnée, vous devez également vous assurer que l'utilisateur a attribué une adresse à la structure choisie dans Google Home app (GHA). Sinon, l'automatisation ne connaîtra 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 ou non.

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

  1. À l'aide de l'API Discovery, rassemblez 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 arrêtez l'exécution.
  3. Sinon, définissez l'automatisation :
    1. Démarrer l'automatisation à 8h
    2. Pour chacun des volets, appelez la commande upOrOpen de la caractéristique WindowCovering.

Automatisation complexe

Imaginons 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 à accomplir lors de l'implémentation de cette application consiste à identifier les ampoules 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, rassemblez la liste des appareils d'éclairage présents dans la structure, qui correspond à tous les appareils dont le type est 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 qu'une personne quitte ou arrive sur le site en surveillant AreaPresenceState.
    2. Si presenceState indique que la structure est occupée, faites clignoter les voyants choisis.

Automatisation générique

Pour obtenir un exemple d'automatisation plus sophistiquée, envisagez une automatisation qui guide l'utilisateur dans la création d'une automatisation ouverte, basée sur tous les appareils de sa maison ou sur certains d'entre eux.

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 en forme de contour extensible, où l'ouverture d'une pièce affiche les appareils qu'elle contient. Si vous développez davantage un appareil, vous verrez les déclencheurs 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 l'aidait à créer une automatisation.

Lorsque tous les choix et décisions de l'utilisateur sont définitifs, l'automatisation est générée et enregistrée dans la structure choisie.

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

Tableau 1: API Home et informations qu'elles peuvent fournir
APIInformations
API Structure
  • Structures disponibles
  • Les pièces de la structure
API Device
  • Appareils de la structure choisie
  • Emplacement de ces appareils (pièce)
API Discovery
  • Caractéristiques compatibles avec les appareils
  • Les déclencheurs et les commandes disponibles pour ces caractéristiques
  • Contraintes liées aux paramètres de ces commandes