Notification

To get the most out of Google Home, choose your Help Center: U.S. Help Center, U.K. Help Center, Canada Help Center, Australia Help Center.

Écrire des automatisations avec l'éditeur de script

L'éditeur de scripts vous permet de créer vos propres automatisations pour écrire des routines de maison avancées avec Google Home pour le Web ou dans l'application Google Home. Pour écrire des automatisations à l'aide de scripts, vous devez connaître quelques notions de base sur le langage de script YAML, et savoir structurer votre script et utiliser ses composants.

L'éditeur de script est actuellement disponible en version Preview publique. Vous pouvez accéder à l'éditeur de script avec Google Home pour le Web ou dans l'application mobile Google Home une fois que vous êtes inscrit à la version Preview publique.

Découvrez comment créer des automatisations avec l'éditeur de script :

Autres pratiques pour écrire une automatisation et exemples de scripts

Accéder à l'atelier de programmation
Important : Tous les membres de la maison peuvent voir à quel moment ces routines s'exécutent. Les routines sont conçues pour vous simplifier la vie, pas pour des cas d'utilisation où la sécurité est essentielle. Ne créez pas de routines qui pourraient provoquer des blessures ou des dégâts si leur démarrage ou leur arrêt échoue. Les routines dépendent de la disponibilité d'Internet, du Wi-Fi et des services fournis par Google et les fabricants tiers des appareils inclus dans les routines. Elles peuvent parfois ne pas fonctionner, et Google n'est pas responsable des dommages ni des pertes subis en cas de dysfonctionnement.

Principes de base du langage de script YAML

L'éditeur de script utilise YAML, un langage de script flexible qui vous permet de saisir ligne par ligne des instructions correspondant à ce que vous souhaitez que vos appareils fassent et à quel moment. Ces instructions sont rédigées sous la forme de paires clé-valeur.

Paires clé-valeur

Un script YAML se présente sous la forme d'une série de paires clé-valeur :

name: TV on lights off

Dans cet exemple, la clé est name (nom) et la valeur est TV on lights off (téléviseur allumé, lumières éteintes).

La clé correspond au mot clé d'un élément que vous souhaitez utiliser. Chaque clé doit être unique, mais leur ordre n'a pas d'importance. Chaque paire clé-valeur commence sur une nouvelle ligne.

La valeur associée à une clé peut prendre plusieurs formes différentes.

Types de données

Primitives

Le type de données primitives inclut tous les types de données de base compatibles avec l'éditeur de script.

Formes primitives Types de valeurs
Valeur booléenne
  • true
  • false
Nombre Nombre entier ou décimal
Chaîne

Texte brut

Les valeurs de chaîne ne nécessitent des guillemets que si elles commencent par [, {, ", ' ou #, ou si la chaîne contient un caractère deux-points suivi d'un ou de deux espaces. Les guillemets doivent correspondre. Par exemple, utilisez " " ou ‘ ‘, pas " ‘.

Date

Jour et mois. Format : MM-JJ ou MM/JJ.

  • 09/01
  • 09-01
Heure

L'heure peut être au format AM/PM ou 24 h. Les secondes sont facultatives. Vous pouvez également indiquer une heure par rapport au soleil. Par exemple, vous pouvez utiliser les mots clés sunrise (lever du soleil) et sunset (coucher du soleil) suivis d'une durée.

  • 12:30 am
  • 13:00:01
  • sunrise/sunset
  • sunset+30min/sunset-1hour
Date et heure

Année, mois, jour et heure.

Vous devez inclure un espace entre la date et l'heure.

Le format de date est AAAA-MM-JJ ou AAAA/MM/JJ. Le format de l'heure est identique à "Heure" ci-dessus. Les fuseaux horaires ne sont pas acceptés.

  • 2022/01/01 14:00
  • 2022-12-31 sunrise+30min
Semaine
  • MON ou MONDAY
  • TUE ou TUESDAY
  • WED ou WEDNESDAY
  • THU ou THURSDAY
  • FRI ou FRIDAY
  • SAT ou SATURDAY
  • SUN ou SUNDAY
Durée

Une durée.

  • 30min
  • 1hour
  • 20sec
  • 1hour10min20sec

Code couleur hexadécimal

Code hexadécimal à six caractères qui représente une couleur. La valeur n'est pas précédée du signe #.

  • FFFFFF
  • B5D2A1
  • DFA100
Température

Données de température. Ajoutez toujours C ou F pour indiquer s'il s'agit de degrés Celsius ou Fahrenheit.

  • 20.5C
  • 90F
Température de couleur

Température de couleur en Kelvin.

  • 5000K

Structures : paires clé-valeur imbriquées

Le type de données structurées est un "bloc" de plusieurs paires clé-valeur. Ces paires sont imbriquées sous une seule clé parente, chaque niveau d'imbrication étant mis en retrait du même nombre d'espaces ou de tabulations pour indiquer la hiérarchie.

actions: 
  device: Light B - Living room  
  state: on

Dans cet exemple, la clé parente est actions. La valeur de la clé actions correspond à deux paires clé-valeur imbriquées :

  • Paire 1 : clé enfant = device (appareil), valeur = Light B - Living room (Lumière B - Salon)
  • Paire 2 : clé enfant = state (état), valeur = on (allumé)

Listes : clés avec plusieurs valeurs

Pour inclure plusieurs valeurs dans une même clé, créez une liste avec un trait d'union devant chaque élément de la liste. Une liste peut utiliser des valeurs de type données structurées ou primitives, mais pas les deux en même temps.

weekdays:
- MONDAY
- THURSDAY

Dans l'exemple, la clé est weekdays (jours de la semaine) et la valeur est une liste incluant Monday (lundi) et Thursday (jeudi).

Structures avancées : combinaison de listes et de paires imbriquées

Pour des automatisations plus complexes, la valeur peut être une liste contenant plusieurs paires clé-valeur imbriquées.
starters:
- type: time.schedule
  at: 10:00 am
  weekdays:
  - MONDAY
  - THURSDAY
- type: time.schedule
  at: SUNSET
  weekdays:
  - MONDAY
  - THURSDAY

Dans cet exemple, la clé parente est starters (déclencheurs). La valeur de cette clé parente est une liste dans laquelle chaque élément comprend plusieurs paires clé-valeur.

Certains types de clés exigent des formats spécifiques pour les valeurs, tandis que d'autres héritent des caractéristiques selon les fonctionnalités de l'appareil. Découvrez comment certains déclencheurs, conditions et actions sont structurés.

Syntaxe du langage YAML

Lorsque vous écrivez des scripts pour vos routines, utilisez ces concepts de mise en forme :

Concept Exemple

Deux-points

YAML utilise le caractère deux-points :, suivi d'un espace pour séparer une clé de sa valeur.

state: on

Retrait

Le retrait indique la structure et la hiérarchie, et définit les paires de clés imbriquées.

Dans l'exemple, la clé parente est metadata (métadonnées). Les clés name (nom) et description sont des clés enfants imbriquées sous les métadonnées de la clé parente. Les clés imbriquées sont chacune mises en retrait par deux espaces ou une tabulation pour indiquer leur hiérarchie.

metadata:
  name: TV on lights off
  description: Turn off lights when TV turns on

 

Trait d'union

Un trait d'union suivi d'un espace définit un élément de liste.
weekdays:
- MONDAY
- THURSDAY

Commentaires

Utilisez le symbole dièse # pour ajouter des commentaires ou des notes à votre script. Les commentaires sont ignorés par le moteur d'automatisation et n'ont aucune incidence sur votre automatisation.
# This is a comment. It will be ignored.

Modèle d'éditeur de script

Lorsque vous créez une automatisation, l'éditeur de script vous fournit un modèle vide pour écrire votre script. La structure du modèle est la suivante :

metadata Contient le nom de votre automatisation ainsi qu'une description
automations Définit le comportement de l'automatisation
starters Définit les déclencheurs qui lancent votre automatisation
condition Définit les restrictions qui s'appliquent au déclenchement de votre automatisation (facultatif)
actions Définit les actions exécutées dans votre automatisation

Le modèle comprend deux blocs principaux : les métadonnées et les automatisations. Le bloc d'automatisations comprend à son tour des sections pour les déclencheurs, les conditions et les actions.

Blocs de métadonnées et d'automatisations

Le modèle de l'éditeur de script contient deux blocs ou clés parentes de premier niveau : metadata (métadonnées) et automations (automatisations).

Le bloc metadata contient le nom et la description de votre automatisation. Il ne sert qu'à identifier celle-ci.

metadata:
  name: TV time
  description: When TV is on, turn on lights

Le bloc automations est le cœur de votre script d'automatisation. C'est là que vous définissez le comportement de votre automatisation à l'aide de déclencheurs, de conditions et d'actions.

automations:
  starters:
    # e.g. Motion detected
  condition:
    # e.g. Between two times
  actions:
    # e.g. Turn on lights

Pour mieux comprendre comment utiliser l'éditeur de script, consultez notre atelier de programmation et des exemples de scripts, ou découvrez comment mettre en forme des déclencheurs, des conditions et des actions spécifiques sur le site Developer Center de Google Home.

Saisie semi-automatique

L'éditeur de script vous guide tout au long de la création de votre script en vous proposant des suggestions basées sur les déclencheurs, conditions et actions disponibles dans les cas suivants :

  • Le curseur se trouve à un endroit où des options valides sont disponibles (par exemple, après - type:).
  • Vous saisissez du code avec des suggestions valides. La liste des suggestions évolue à mesure que vous saisissez du texte.

Vous lancez manuellement la saisie semi-automatique à l'aide du raccourci Ctrl+Espace.

Appuyez sur Entrée pour sélectionner une suggestion dans la liste. La saisie semi-automatique remplira les champs supplémentaires en fonction de la structure que vous aurez choisie.

Astuce : La saisie semi-automatique vous permet de connaître les états ou les commandes disponibles pour votre appareil, ainsi que les appareils disponibles pour un état ou une commande spécifiques.

Pour connaître les états ou les commandes disponibles pour votre appareil, saisissez d'abord la clé device: (appareil), puis la clé type:. La fonctionnalité de saisie semi-automatique affichera la liste des états ou des commandes disponibles pour cet appareil.

Exemple

starters:
- device: LED lights - Living Room
- type:

Pour savoir quels appareils sont disponibles pour un état ou une commande donnés, saisissez d'abord la clé type:, puis la clé device:.  La fonctionnalité de saisie semi-automatique affichera la liste des appareils de votre maison compatibles avec cet état ou cette commande.

Exemple

starters:
- type: device.state.OnOff
- device:

Déclencheurs, conditions et actions

Les automatisations sont constituées de déclencheurs d'appareils, de conditions et d'actions. Ces composants définissent les comportements de votre automatisation. 

Certains déclencheurs, conditions et actions nécessitent un type spécifique de paire clé-valeur de comparaison pour aider à exécuter la logique d'automatisation et indiquer au script ce qui doit être évalué. La valeur doit correspondre à un type de données compatible. Par exemple, l'état on (activé) d'une lumière peut être true (vrai) ou false (faux). Pour lancer l'automatisation si la lumière est allumée, écrivez ce script :

state: on
is: true

Vous trouverez ci-dessous des informations détaillées sur les différents déclencheurs, conditions et actions disponibles. Pour obtenir la liste complète des déclencheurs, conditions et actions, consultez le Developer Center de Google Home.

Déclencheurs

La section "starters" de votre script vous permet de préciser les déclencheurs qui lanceront l'exécution du script. Les déclencheurs sont basés sur ce que votre appareil peut faire ou sur des attributs qui peuvent changer, comme l'état et les événements de l'appareil, ou l'heure. Par exemple, vous pouvez utiliser une ampoule avec les états OnOff (Activé/Désactivé), Brightness (Luminosité) et ColorSetting (Paramètre de couleur). Pour inclure plusieurs déclencheurs, listez chacun d'entre eux en le précédant de la clé -type:. Votre script doit satisfaire au moins l'une des conditions du déclencheur pour s'exécuter.

Consultez la liste complète des déclencheurs acceptés.

Types de déclencheurs

Déclencheurs de l'Assistant

Utilisez un déclencheur assistant.command pour lancer un script lorsqu'un appareil doté de l'Assistant entend une commande commençant par "Ok Google" ou "Hey Google".
Remarque : Si une automatisation est lancée à l'aide d'une commande vocale et si le script contient une action de l'Assistant, cette action sera exécutée sur l'appareil qui entend la commande vocale, même si un autre appareil a été spécifié dans votre script.
Exemple : Lancez votre automatisation lorsqu'un utilisateur dit "Ok Google, faisons la fête".
starters:
- type: assistant.command.OkGoogle
  eventData: query
  is: party time

Déclencheurs en cas d'événement de l'appareil

Utilisez un déclencheur device.event pour lancer votre script lorsqu'un événement spécifique se produit, par exemple lorsque quelqu'un sonne à la porte ou qu'un capteur détecte quelque chose. Remarque : Tous les événements ne sont pas acceptés.

Exemple : Lancer l'automatisation lorsque quelqu'un appuie sur la sonnette.
starters:
- type: device.event.DoorbellPress
  device: Doorbell - Front door
Exemple : Démarrer l'automatisation lorsque votre caméra détecte une personne.
starters:
- type: device.event.PersonDetection
  device: Camera - Backyard 

Exemple : Démarrer l'automatisation lorsque votre caméra détecte un mouvement.

starters:
- type: device.event.MotionDetection
  device: Camera - Backyard

Remarque :

  • Les événements enregistrés nécessitent une caméra, une sonnette ou un écran compatibles, et la détection d'événements doit être configurée.
  • Certains événements enregistrés nécessitent un abonnement Nest Aware ou une caméra sur secteur. Par exemple, la détection des sons ne fonctionne que sur la Nest Cam (Extérieur ou intérieur, batterie) lorsqu'elle est branchée.
  • Vous pouvez désactiver les déclencheurs basés sur l'état et les événements de l'appareil pendant un certain temps.

Déclencheurs basés sur l'état de l'appareil

Utilisez un déclencheur device.state pour que votre automatisation démarre en fonction de l'état d'un appareil. Les états correspondent à des caractéristiques d'un appareil, par exemple lorsque la température de votre thermostat atteint une certaine température, qu'une lumière s'allume ou s'éteint, ou qu'un capteur compatible atteint un seuil défini. Remarque : vous pouvez désactiver les déclencheurs basés sur l'état et les événements de l'appareil pendant un certain temps.
Pour un déclencheur basé sur l'état de l'appareil, spécifiez l'état après device.state. Par exemple, pour vérifier si un appareil est allumé, vous pouvez utiliser la commande device.state.OnOff.
Pour utiliser un déclencheur device.state, commencez par trois clés, type, device et state, suivies d'au moins une paire clé-valeur de comparaison.
Clé Valeur Exemple
type Déclencheur basé sur l'état de l'appareil, commençant par device.state device.state.ArmDisarm
device Nom affiché dans l'application Google Home, suivi du nom de la pièce : Device name - Room name Alarm - Front Door
state

Les données de champ ou d'état du déclencheur que vous souhaitez vérifier.

Dans le Developer Center de Google Home, recherchez le déclencheur que vous souhaitez utiliser, puis recherchez "Champs acceptés" ou "Données d'état".
isArmed

Astuce : Pour connaître les états disponibles pour votre appareil, accédez à votre script, saisissez d'abord la clé "device:", puis la clé "type:". La saisie semi-automatique affichera la liste des états disponibles pour cet appareil.

Vous pouvez utiliser les paires clé-valeur de comparaison suivantes avec le déclencheur device.state :

Clés de comparaison Types de valeurs acceptés Exemple
is Chaîne | Nombre | Valeur booléenne | Dynamique is: on
isNot Chaîne | Nombre | Valeur booléenne | Dynamique isNot: cast
greaterThan
greaterThanOrEqualTo
Chaîne | Nombre | Valeur booléenne | Dynamique greaterThan: 1
lessThan
lessThanOrEqualTo
Chaîne | Nombre | Valeur booléenne | Dynamique lessThan: 10
suppressFor Durée suppressFor: 1hour

 Exemple : Lancer l'automatisation si le volume du téléviseur est compris entre 1 et 10.

starters:
- type:  device.state.Volume
  device: TV - Living room
  state:  currentVolume
  greaterThan: 1
  lessThan: 10 

Déclencheurs selon l'état de la maison

Utilisez le déclencheur home.state pour lancer votre script lorsque vous êtes chez vous ou absent. Utilisez la détection de présence pour cela.
Exemple : Lancer l'automatisation lorsque vous êtes chez vous.
starters:
- type: home.state.HomePresence
  state: homePresenceMode
  is: HOME

Déclencheurs temporels

Utilisez un déclencheur time (heure) pour lancer votre automatisation en fonction de jours et d'heures spécifiques. Vous pouvez utiliser les paires clé-valeur de comparaison suivantes avec le déclencheur temporel :
Clés de comparaison Types de valeurs acceptés Exemple
before Heure before: sunset
after Heure after: 7:00 am
weekdays Jour de la semaine weekdays: MON

Exemple : Lancer l'automatisation les lundis et mardis, 30 minutes après le lever du soleil.

starters:
- type: time.schedule
  at: sunrise+30min
  weekdays:
  - MON
  - TUE

Désactiver des déclencheurs

Utilisez la clé de comparaison suppressFor pour indiquer à l'automatisation d'ignorer un déclencheur pendant un certain temps. Par exemple, lorsque votre caméra détecte quelqu'un, annoncez "Il y a quelqu'un à la porte", puis désactivez l'annonce pendant 10 minutes, et ce, même si la caméra détecte toujours quelqu'un.

Exemple : Lorsque quelqu'un passe par l'entrée le matin pour la première fois, ouvrir tous mes volets et désactiver ce déclencheur pendant les 20 prochaines heures.

metadata:
  name: Open Blinds
  description: Open blinds in the morning after motion detected
automations:
  starters:
  - type: device.event.MotionDetection
    device: Camera - Hallway
    suppressFor: 20hours
  condition:
    type: time.between
    after: 5:00     
    before: 12:00   
  actions:     
  - type: device.command.OpenClose
    openPercent: 100
  devices:
  - Blinds1 - Living Room
  - Blinds2 - Family Room

Conditions

Les conditions sont des restrictions facultatives qui déterminent le moment où les automatisations se lancent. Si vous incluez des conditions, votre script ne s'exécutera que si elles sont satisfaites. De nombreux déclencheurs peuvent également être utilisés comme conditions et combinés avec les opérateurs logiques and, or et not pour exprimer des vérifications de condition plus complexes.
type: or
conditions:
- type: time.between
  before: sunrise
  after: sunset
  weekdays:
  - MON
  - TUE
- type: device.state.Volume
  device: My TV - Living Room
  state: currentVolume
  greaterThan: 1
  lessThan: 10

Dans cet exemple, il existe une condition temporelle et une condition device.state. Ce script s'exécutera entre le coucher et le lever du soleil le lundi ou le mardi, ou si le volume du téléviseur se situe entre 1 et 10.

Vous pouvez utiliser les types de conditions suivants :

Opérateurs de conditions

Condition AND

Lorsque vous utilisez la condition and, votre script ne s'exécute que si toutes les conditions enfants sont remplies.

Exemple : Lancer l'automatisation si le téléviseur est allumé ET qu'il est plus de 18h.

condition:
  type: and
  conditions:
  - type: device.state.OnOff
    device: TV - Living Room
    state: on
    is: true
  - type: time.between
    after: 6:00 pm

Condition OR

Lorsque vous utilisez la condition or, votre script s'exécute lorsque l'une des conditions enfants est remplie.

Exemple : Lancer l'automatisation si le téléviseur est allumé OU s'il est plus de 18h.

condition:
  type: or
  conditions:
  - type: device.state.OnOff
    device: TV - Living Room
    state: on
    is: true
  - type: time.between
    after: 6:00 pm

Condition NOT

Lorsque vous utilisez la condition not, votre script ne peut pas s'exécuter si la condition enfant est remplie.

Exemple : Lancer l'automatisation, sauf entre 18h et 20h.

condition:
  type: not
  condition:
    type: time.between
    after: 6:00pm
    before: 8:00pm

Conditions basées sur l'état de l'appareil

Utilisez une condition device.state pour déterminer le moment où votre script peut s'exécuter en fonction de l'état de l'appareil lorsque le script démarre. Les conditions device.state sont semblables aux déclencheurs device.state, si ce n'est qu'au lieu d'indiquer à votre script quand démarrer, elles limitent les situations dans lesquelles il peut s'exécuter.
Pour une condition basée sur l'état de l'appareil, spécifiez l'état après device.state. Par exemple, pour vérifier si un appareil est allumé, vous pouvez utiliser la commande device.state.OnOff.
Pour utiliser une condition device.state, commencez par trois clés, type, device et state, suivies d'au moins une paire clé-valeur de comparaison.
Clé Valeur Exemple
type La condition basée sur l'état de l'appareil, commençant par device.state device.state.OnOff
device Nom affiché dans l'application Google Home, suivi du nom de la pièce : Device name - Room name Chromecast - Living Room
state État du déclencheur que vous souhaitez vérifier. Recherchez la condition basée sur l'état de l'appareil que vous souhaitez utiliser dans le Developer Center de Google Home. state: on

Astuce : Pour connaître les états disponibles pour votre appareil, dans votre script, saisissez d'abord la clé device:, puis la clé type:. La saisie semi-automatique affichera la liste des états disponibles pour cet appareil.

Vous pouvez utiliser les paires clé-valeur de comparaison suivantes avec la condition device.state :

Clés de comparaison Types de valeurs acceptés Exemple
is Chaîne | Nombre | Valeur booléenne | Dynamique is: on
isNot Chaîne | Nombre | Valeur booléenne | Dynamique isNot: cast
greaterThan
greaterThanOrEqualTo
Chaîne | Nombre | Valeur booléenne | Dynamique greaterThan: 1
lessThan
lessThanOrEqualTo
Chaîne | Nombre | Valeur booléenne | Dynamique lessThan: 10

Exemple : Lancer l'automatisation si le thermostat détecte un niveau d'humidité supérieur à 55 %.

condition:
  type: device.state.TemperatureSetting
  device: My Thermostat - Living Room
  state: thermostatHumidityAmbient
  greaterThan: 55

Conditions basées sur l'état de la maison

Utilisez une condition home.state.HomePresence pour déterminer le moment où votre script peut s'exécuter en fonction de la présence ou non d'une personne chez vous.

Remarque : Avant de créer un script qui utilise la condition home.state.HomePresence, veillez à configurer la détection de présence dans l'application Google Home et à vous assurer qu'elle fonctionne comme prévu. La présence d'une personne chez vous peut être déterminée par la localisation des téléphones des membres de votre maison, par les capteurs de certains appareils Nest ou par l'activation manuelle des modes Chez moi ou Absent dans l'application Google Home.

Consultez ces articles pour en savoir plus sur la détection de présence ainsi que sur les routines Chez moi et Absent :

Vous pouvez utiliser les paires clé-valeur de comparaison suivantes avec la condition home.state.HomePresence :
Clés de comparaison Types de valeurs acceptés Exemple
is Chaîne ("HOME" ou "AWAY") is: away
isNot Chaîne ("HOME" ou "AWAY") isNot: HOME
for Durée for: 30min
suppressFor Durée suppressFor: 1hour

Exemple : La condition home.state.HomePresence déclenche l'automatisation si votre présence est définie sur HOME.

condition:
  type: home.state.HomePresence
  state: homePresenceMode
  is: HOME

Conditions temporelles

Utilisez la condition time.between pour restreindre la période au cours de laquelle votre script peut s'exécuter. Vous pouvez utiliser les paires clé-valeur de comparaison suivantes avec la condition time.between :
Clés de comparaison Types de valeurs acceptés Exemple
before Heure before: sunset
after Heure after: 7:00 am
weekdays Jour de la semaine weekdays: MON

Exemple : Ne déclencher l'automatisation que le week-end, avant 10h.

condition:
  type: time.between
  before: 10am
  weekdays:
  - SAT
  - SUN

Actions

La section "Actions" de votre script vous permet d'indiquer les actions que vous souhaitez que vos appareils effectuent. Pour inclure plusieurs actions, listez-les en ajoutant - type: avant chacune d'entre elles. Votre script doit comporter au moins une action pour s'exécuter. La plupart des actions commencent par device.command.

Vous pouvez utiliser les types d'actions suivants :

Actions de l'Assistant

Utilisez l'action assistant.command sur vos enceintes ou écrans pour que l'Assistant effectue des actions comme "Éteindre toutes les lumières" ou "Donner la météo".

Grâce aux commandes de l'Assistant, vous pouvez contrôler les appareils d'une pièce en particulier ou de toute la maison sans utiliser de noms d'appareils spécifiques. Vous pouvez ainsi gagner du temps, car les futurs appareils ajoutés à l'application Home pourront fonctionner automatiquement avec cette commande. Les commandes de l'Assistant nécessitent une enceinte ou un écran compatibles pour exécuter l'action.

Remarque : Si une automatisation est lancée à l'aide d'une commande vocale et si le script contient une action de l'Assistant, cette action sera exécutée sur l'appareil qui entend la commande vocale, même si un autre appareil a été spécifié dans votre script.

Exemple : Utilisez la commande "Allumer les lumières du salon" pour allumer toutes les lumières du salon.
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn on living room lights  
  devices: My Speaker - Room Name 
Exemple : Utilisez la commande "Éteindre toutes les lumières" pour éteindre toutes les lumières configurées dans votre maison.
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn off all lights  
  devices: My Speaker - Room Name 
Exemple : Vos enceintes ou écrans peuvent diffuser une annonce.
actions:
- type: assistant.command.Broadcast
  devices:  
  - My Speaker 1 - Room Name
  - My Speaker 2 - Room Name
  message: It’s dinner time.
     

Les actions de l'Assistant vous permettent également d'effectuer des actions personnalisées, par exemple :

  • "Mets Hello d'Adele depuis YouTube Music sur l'enceinte de la chambre"
  • "Mets des vidéos amusantes de chats depuis YouTube sur l'écran du salon"
  • "Quel temps fera-t-il demain ?"
  • "Raconte-moi une blague"
  • "Montre-moi la caméra de l'allée sur l'écran du bureau de la maison"

Remarque : Les actions de l'Assistant qui nécessitent l'activation de Voice Match ou des résultats personnels ne fonctionnent pas avec les automatisations pour la maison créées avec l'éditeur de script.

Actions de l'appareil

Utilisez l'action device.command pour commander ou régler un appareil. Chaque commande d'action possède son propre ensemble de caractéristiques et sa propre structure. Vous pouvez ajouter des commandes à votre script en spécifiant l'action de commande d'un appareil après device.command. Par exemple, pour allumer un appareil, vous pouvez utiliser device.command.OnOff. Une action device.command doit inclure les informations suivantes :
Clé Valeur Exemple
type Action de l'appareil, commençant par device.command device.command.OpenClose.
devices Nom de l'appareil affiché dans l'application Google Home, suivi du nom de la pièce : "Device name - Room name". Pour inclure plusieurs appareils, créez une liste. Blinds - Bedroom

Astuce : Pour connaître les actions ou les commandes disponibles pour votre appareil, saisissez d'abord la clé "device:", puis la clé "type:". La saisie semi-automatique affichera la liste des actions disponibles pour cet appareil.

De nombreuses actions device.command disposent de clés supplémentaires qui spécifient l'entrée requise pour la commande. Par exemple, device.command.ThermostatTemperatureSetpoint nécessite une paire clé-valeur thermostatTemperatureSetpoint pour indiquer la température à laquelle régler le thermostat.

Pour en savoir plus sur l'utilisation des commandes, recherchez l'action correspondante dans le Developer Center de Google Home et suivez la structure de l'action que vous souhaitez utiliser.

Exemple : Allumer la télévision du salon.

actions:
  type: device.command.OnOff
  devices: TV - Living room
  on: true

 Exemple : Allumer une lumière et l'éteindre au bout de cinq minutes.

actions:
- type: device.command.OnOff
  devices: Light A - Living Room
  on: true
- type: time.delay
  for: 5min
- type: device.command.OnOff
  devices: Light A - Living Room
  on: false

Actions de notification

Utilisez l'action home.command.Notification pour que votre script envoie des notifications aux appareils mobiles des membres de la maison. Par exemple, vous pouvez recevoir des notifications lorsque des appareils reliés à des prises connectées s'éteignent ou se déconnectent.

actions:
- type: home.command.Notification
  members:
  - Alex - cloudysanfrancisco@gmail.com
  - Kim - jeffersonloveshiking@gmail.com
  title: It’s movie time!
  body: Join me in the living room
 

Actions temporelles

Utilisez l'action time.delay pour que votre script attende un certain temps entre deux actions de votre liste au lieu de les exécuter simultanément. Vous pouvez ajouter plusieurs temporisations à votre script. Par exemple, vous pouvez demander à votre script d'attendre 10 secondes entre chaque action.
Exemple : Allumer la lumière et l'éteindre au bout de 30 secondes.
actions:
- type: device.command.OnOff
  devices: 
    - Bedside Lamp - Bedroom
    - Ceiling Light - Bedroom
  on: true
- type: time.delay
  for: 30sec
- type: device.command.OnOff
  devices: 
    - Bedside Lamp - Bedroom
    - Ceiling Light - Bedroom
  on: false

Ressources

S'entraîner à écrire un script

Pour commencer, nous allons créer une automatisation très simple, mais couramment utilisée : "Éteindre la lumière lorsque le téléviseur s'allume".

Remarque : Si vous n'avez pas de Chromecast, de système d'éclairage connecté ni d'appareil comparable, vous pouvez quand même suivre la procédure d'écriture de script, mais celui-ci ne s'exécutera pas à la fin.

  1. Accédez à home.google.com/automations et connectez-vous à votre compte.
  2. Cliquez sur Ajouter .
  3. Saisissez les informations des métadonnées. Dans ce script, le nom est TV on lights off (téléviseur allumé, lumières éteintes) et la description est Turn off lights when TV turns on (Éteindre la lumière lorsque le téléviseur s'allume). Veillez à mettre en forme votre script correctement.
    metadata:
      name: TV on lights off
      description: Turn off lights when TV turns on.
  4. Nous allons maintenant créer l'automatisation. Ajoutez des déclencheurs en créant une ligne sous starters: commençant par - type:
    • Pour créer une ligne, mettez en retrait la ligne avec deux espaces ou appuyez une fois sur la touche Tabulation après le début de starters:, comme ci-dessous.
    • Si vous souhaitez inclure plusieurs déclencheurs, chacun d'entre eux doit commencer par un trait d'union et un espace.
      metadata:
        name:  TV on lights off
        description:  Turn off lights when TV turns on
      automations:
        starters:
        - type:
  5. Ajoutez le déclencheur device.state. Rappelez-vous que pour utiliser un déclencheur device.state, vous avez besoin de trois clés, type, device et state, suivies d'au moins une paire clé-valeur de comparaison. L'éditeur de script vous aidera à structurer votre script en vous proposant des suggestions de saisie semi-automatique en fonction des déclencheurs, des conditions et des actions disponibles. Dans ce script :
    • Type = device.state.OnOff. Il s'agit de l'état de l'appareil qui sera évalué pour lancer notre automatisation.  
    • Appareil = Chromecast - Living Room Il s'agit du nom de notre appareil tel qu'il est affiché dans l'application Google Home.
    • État = on. "On" correspond aux données de champ ou d'état prises en charge pour l'état OnOff de l'appareil.
    • Paire clé-valeur de comparaison = is: true. La valeur de cette clé de comparaison est un type de données primitif. Le script s'exécutera si le téléviseur est allumé.
      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on
      automations:
        starters:
        - type: device.state.OnOff
          device: Chromecast - Living Room
          state: on
          is: true 

      À des fins de comparaison, examinons un script similaire avec un autre déclencheur. Dans le script ci-dessous, l'automatisation démarre lorsque le volume est compris entre 1 et 10, et non lorsque le téléviseur s'allume. Pour effectuer cette modification, nous avons remplacé l'état OnOff par Volume et défini l'état sur currentVolume (volume actuel) pour qu'il corresponde au nouvel attribut. Nous avons également remplacé les paires clé-valeur de comparaison par deux paires imbriquées qui créent une plage : greaterThan: 1 (supérieur à 1) et lessThan: 10 (inférieur à 10). Pour voir d'autres exemples, consultez la liste complète des déclencheurs que vous pouvez utiliser.

      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on
      automations:
        starters:
        - type: device.state.Volume
          device: Chromecast - Living Room
          state: currentVolume
          greaterThan: 1
          lessThan: 10
  6. Vous pouvez cliquer sur Enregistrer à tout moment pour enregistrer votre script. Lorsque vous enregistrez un script, l'éditeur le valide automatiquement et recherche les erreurs. Les scripts non valides ne peuvent pas s'exécuter.
  7. Ajoutez maintenant une action à votre script. Pour ajouter des actions, créez une ligne sous actions: commençant par - type. Pour créer une ligne, mettez en retrait la ligne avec deux espaces après le début de la commande "actions:", comme indiqué ci-dessous.
    • Si vous souhaitez inclure plusieurs actions, chacune d'entre elles doit commencer par un trait d'union et un espace.
      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on.
      automations:
        starters:
        - type: device.state.OnOff
          device: Chromecast - Living Room
          state: on
          is: true
        actions:
        - type: 
  8. Pour éteindre les lumières, nous utiliserons l'action device.command. Pour utiliser l'action device.command, nous allons inclure les informations suivantes :
    • Type = device.command.OnOff. Il s'agit du nom de la commande ou de l'action. Notez que les commandes peuvent avoir plusieurs commandes imbriquées sous vos appareils et que chaque commande a son propre état.
    • Appareils = liste contenant Floor Lamp - Living Room (Lampadaire - Salon) et Overhead Light - Living Room (Plafonnier - Salon). Il s'agit du nom des systèmes d'éclairage tel qu'il s'affiche dans l'application Google Home. Pour inclure plusieurs systèmes d'éclairage, chaque appareil est indiqué sur une ligne distincte, avec un trait d'union au début.
    • État souhaité de la commande = on: false. Cette ligne indique à nos systèmes d'éclairage de s'éteindre.
      metadata:
        name: TV on lights off
        description: Turn off lights when TV turns on.
      automations:
        starters:
        - type: device.state.OnOff
          device: Chromecast - Living Room
          state: on
          is: true
        actions:
        - type: device.command.OnOff
          devices:
          - Floor Lamp - Living Room
          - Overhead Light - Living Room 
          on: false
  9. Cliquez sur Enregistrer pour enregistrer le script. S'il n'y a pas d'erreurs, le script se lance automatiquement. Dès que le téléviseur s'allume, la lumière s'éteint. Si vous n'êtes pas encore prêt à exécuter votre script, mettez-le en pause en désactivant l'option Activer.

Si vous souhaitez vous entraîner davantage, modifiez certains de vos scripts pour utiliser différents déclencheurs ou types de données, plusieurs actions ou une condition supplémentaire comme time.between. Pour en savoir plus, vous pouvez également consulter des exemples de scripts ainsi que cet atelier de programmation. Pour obtenir des informations détaillées sur les déclencheurs, les actions et les conditions, consultez le Developer Center de Google Home.

Aide concernant les scripts d'automatisation

  • Pour obtenir de l'aide sur les scripts et découvrir ce sur quoi d'autres travaillent, rejoignez la communauté Google Home Automation.
  • Pour que les automatisations fonctionnent, le code des scripts doit être valide. Un message s'affiche s'il y a une erreur. En savoir plus sur les erreurs et avertissements dans l'éditeur de script
  • Pour valider votre code, cliquez ou appuyez sur Valider dans l'éditeur de script, ou enregistrez votre script. Voici quelques erreurs courantes :
    • Veillez à utiliser le bon nom d'appareil au format suivant : "Nom de l'appareil - Nom de la pièce". En cas de doute, vérifiez le nom de votre appareil dans l'application Google Home.
    • Assurez-vous que votre appareil est compatible avec la fonction souhaitée. Vous pouvez également utiliser la saisie semi-automatique pour connaître les options disponibles.
    • Veillez à inclure une action. Pour s'exécuter, une automatisation nécessite des actions.
  • Si vous parvenez à enregistrer le script, mais que l'automatisation ne fonctionne pas comme prévu, vérifiez manuellement que chaque composant du script fonctionne. Par exemple, si vous avez écrit un script destiné à allumer la lumière et à modifier la luminosité au coucher du soleil, essayez d'effectuer ces tâches à l'aide d'une commande de l'Assistant pour vérifier que chaque opération fonctionne. Vous pouvez également vérifier les points suivants :
    • Votre appareil a été ajouté ou associé dans l'application Google Home.
    • Votre appareil est connecté et en ligne.
    • Le nom de l'appareil, les déclencheurs, les conditions et les actions sont écrits correctement.
    • Le retrait et la mise en forme de votre script sont corrects.
  • Avec Google Home pour le Web, vous pouvez également accéder aux journaux d'automatisation  en dessous de votre script pour consulter l'historique de vos automatisations et identifier les problèmes potentiels. Découvrez les types de messages qui apparaissent dans les journaux d'automatisation..
  • Utilisez la fonctionnalité expérimentale d'IA générative de l'éditeur de script pour décrire l'automatisation souhaitée. Vous obtiendrez un script que vous pourrez examiner et modifier.
  • Découvrez plus en détail les principes de base des routines et comment résoudre les problèmes.
  • Découvrez comment créer et modifier des scripts d'automatisation.

Ces informations vous-ont elles été utiles ?

Comment pouvons-nous l'améliorer ?

Vous avez encore besoin d'aide ?

Essayez les solutions ci-dessous :

Recherche
Effacer la recherche
Fermer le champ de recherche
Menu principal
9559274437432413707
true
Rechercher dans le centre d'aide
true
true
true
true
true
1633396
false
false