Créer une automatisation à l'aide d'un script

1. Introduction

Points abordés

  • Planifier et écrire une automatisation basée sur un script
  • Tester une automatisation basée sur un script

Prérequis

  • Un téléphone Android ou iOS sur lequel est installée l'application Google Home.
  • Ampoule ou autre appareil connecté certifié Fonctionne avec Google Home, qui peut être allumé ou éteint.

2. Configurer votre appareil

Si votre appareil n'est pas encore configuré, configurez-le dans votre maison.

Vérifiez que l'appareil apparaît dans l'application Google Home et que vous pouvez l'allumer et l'éteindre à l'aide de l'application Home.

3. Planifier votre automatisation scriptée

Commençons par réfléchir à ce que nous voulons que notre automatisation scriptée fasse. Voici quelques exemples de questions à se poser :

  • les appareils que vous souhaitez automatiser.
  • Déclencheur (ou événement) qui doit déclencher l'exécution de l'automatisation scriptée.
  • Conditions supplémentaires, le cas échéant, qui déterminent si l'automatisation scriptée s'exécute une fois déclenchée.
  • Actions à effectuer.

Dans cet atelier de programmation, nous prévoyons que l'automatisation scriptée effectue deux tâches :

  1. Allumez votre ampoule (ou un autre appareil connecté) à une heure précise.
  2. Éteignez votre appareil à une heure précise.

Maintenant que nous savons exactement ce que nous voulons que notre automatisation scriptée fasse, nous allons ouvrir l'éditeur de script et écrire l'automatisation scriptée.

4. Écrire l'automatisation scriptée

Les automatisations scriptées sont écrites de manière déclarative à l'aide du langage de sérialisation de données YAML.

Une automatisation scriptée se compose de deux sections principales :

  1. Métadonnées : nom de l'automatisation scriptée et description de son fonctionnement.
  2. Règles d'automatisation : définissent la logique d'initiation et le comportement de l'automatisation.

Métadonnées

Les métadonnées de notre automatisation indiquent à l'utilisateur le nom et la fonction de l'automatisation. Les métadonnées sont spécifiées dans le bloc metadata, qui se présente comme suit :

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times

Règles d'automatisation

Une règle d'automatisation est l'endroit où le véritable travail a lieu. Elle se compose de trois parties, déclencheurs, conditions et actions, qui sont évaluées dans l'ordre :

1 Déclencheurs

2 Conditions

3 actions

Les déclencheurs sont à l'origine de l'automatisation. Au moins un déclencheur doit avoir la valeur true pour que les conditions suivantes soient évaluées.

Elles sont facultatives et se composent d'une ou de plusieurs contraintes supplémentaires qui sont évaluées après l'activation d'un starter. Si les conditions sont remplies (true), les actions sont exécutées. Si elles sont résolues sur false, les actions ne sont pas exécutées.

Lorsque vous incluez plusieurs contraintes, séparez-les avec les mots clés and et or pour former une seule expression logique. Cette expression doit renvoyer la valeur true pour que les actions d'une automatisation puissent se poursuivre.

Une condition est différente d'une notification de changement d'état :

  • Une condition représente un fait qui doit être vrai au moment où le déclencheur se déclenche pour que les actions s'exécutent.
  • Une notification de changement d'état est un événement, par exemple l'allumage d'un autre appareil.

Les actions sont des opérations effectuées lorsque le déclencheur et les conditions de contrainte ont été remplis.

Le bloc automations de notre automatisation contient deux règles :

automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false

Veuillez noter les points suivants :

  1. Il existe deux règles automations. La première allume la lumière, et la seconde l'éteint.
  2. Chaque règle ne comporte qu'une seule action.
  3. on: true signifie allume la lumière. De même, on: false signifie éteindre la lumière.
  4. Chaque règle comporte un seul déclencheur time.schedule qui indique à l'automatisation à quelle heure elle doit se lancer.
  5. Cette automatisation ne comporte aucune condition.

5. Automatisation scriptée complète

En regroupant tous ces éléments, voici à quoi ressemble l'automatisation scriptée complète :

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times
automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false
  1. Copiez l'automatisation (ci-dessus).
  2. Accédez à Google Home pour le Web.
  3. Sélectionnez l'onglet "Automatisations", représenté par une icône à trois étoiles :
    Onglet "Automatisations"
  4. Cliquez sur + Ajouter.
  5. Dans l'éditeur de script, supprimez le modèle d'automatisation.
  6. Collez votre automatisation.
  7. Remplacez Desk light - Office par le nom et l'emplacement de votre appareil.
  8. Cliquez sur Valider. L'éditeur de scripts souligne les sections de votre automatisation scriptée qui contiennent des erreurs. Corrigez les erreurs qui se produisent, puis continuez à valider et à corriger jusqu'à ce qu'il n'y ait plus d'erreurs. Par exemple, le nom de votre appareil peut être différent. Dans ce cas, vous pouvez utiliser la fonctionnalité de saisie semi-automatique pour choisir un nom d'appareil valide.
  9. Cliquez sur Enregistrer.
  10. Assurez-vous que le bouton Activer, sous le texte de votre script, est bien activé : Éditeur de script avec une automatisation scriptée entièrement validée et activée

6. Tester l'automatisation

  1. Assurez-vous que votre appareil est branché et visible dans l'application Google Home.
  2. Si l'appareil est actuellement allumé, éteignez-le.
  3. Sur la page Automatisations de Google Home pour le Web, cliquez sur le bouton "Exécuter" à côté de votre automatisation.
    Bouton d'exécution du script
  4. L'appareil devrait s'allumer.

Testons maintenant l'automatisation.

  1. Éteignez l'appareil.
  2. Modifiez l'automatisation et remplacez l'heure d'allumage de l'appareil à la ligne 7 par une heure dans cinq minutes.
  3. Modifiez l'heure d'arrêt de l'appareil sur la ligne 14 pour qu'elle soit peu après l'heure de démarrage.
  4. Cliquez sur Valider. Corrigez les éventuelles erreurs.
  5. Cliquez sur Enregistrer.
  6. Assurez-vous que le bouton Activer est bien activé.
  7. Attendez que les deux temps de démarrage soient écoulés. L'appareil devrait s'allumer, puis s'éteindre aux heures que vous avez spécifiées.

7. Félicitations !

Vous avez créé une automatisation à l'aide de l'éditeur de script. Bravo !

Dans cet atelier de programmation, vous avez appris ce qui suit :

  • Concevoir et écrire une automatisation
  • Tester une automatisation

Étapes suivantes

Dans cet atelier de programmation, nous avons créé une automatisation très simple. Les automatisations peuvent faire bien plus que programmer l'activation ou la désactivation d'un interrupteur. Maintenant que vous avez compris les bases de la création d'une automatisation, vous pouvez explorer les différents types de déclencheurs, de conditions et d'actions disponibles dans l'écosystème Google Home.

Essayez les exercices suivants :

  • Ajoutez d'autres déclencheurs time.schedule à l'automatisation.
  • Modifiez l'automatisation pour allumer et éteindre un autre appareil selon le même programme.
  • Sans supprimer les déclencheurs time.schedule, modifiez l'automatisation pour qu'elle n'allume les appareils que lorsqu'un autre appareil est allumé. Consultez les exemples de scripts qui utilisent la clause condition.
  • Modifiez l'automatisation pour que les appareils ne s'allument que lorsque quelqu'un est à la maison.

Documentation complémentaire

Pour en savoir plus sur les automatisations Google Home, consultez la documentation de référence sur les automatisations :