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 :
Accéder à l'atelier de programmation
Important : Tous les membres de la maison peuvent vérifier à 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 peuvent dépendre de la disponibilité d'Internet, du Wi-Fi et des services fournis à la fois par Google et les fabricants tiers des appareils inclus dans les routines. Il peut arriver qu'elles ne fonctionnent pas, 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 :
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
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 |
|
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.
|
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 le même que pour "Heure" ci-dessus. Les fuseaux horaires ne sont pas pris en charge.
2022/01/01 14:00
2022-12-31 sunrise+30min
|
Jour de la 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 #.
|
Température |
Données de température. Ajoutez toujours C ou F pour indiquer s'il s'agit de degrés Celsius ou Fahrenheit.
|
Température de couleur |
Température de couleur en Kelvin.
|
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 de deux espaces ou d'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 2 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 tapez 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 :
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.
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 "Hey 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 : Les événements ne sont pas tous pris en charge.
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.
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 "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 :
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
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, 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 la condition device.state
:
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
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.
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 d'appareil de streaming, 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.
- Accédez à home.google.com/automations et connectez-vous à votre compte.
- Cliquez sur Ajouter
.
- 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.
- Pour ajouter des déclencheurs, créez une ligne, mettez-la en retrait de deux espaces ou appuyez une fois sur Tabulation, puis saisissez
starters:
. Mettez aussi la ligne suivante en retrait, puis saisissez dessus - type:
.
Conseil :
- Pour créer une ligne, appuyez sur Maj
Entrée.
- 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:
Remarque : L'éditeur de script vous aidera à structurer votre script en vous proposant des suggestions de saisie semi-automatique en fonction des déclencheurs disponibles. Pour sélectionner une des suggestions, utilisez les touches fléchées de votre clavier, puis appuyez sur Entrée pour l'insérer.
- 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
- 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.
- Ajoutez maintenant une action à votre script. Pour ajouter des actions, créez une ligne, mettez-la en retrait de deux espaces ou appuyez une fois sur Tabulation, puis saisissez
actions:
. Mettez aussi la ligne suivante en retrait, puis saisissez dessus - type
.
Conseil :
- Pour créer une ligne, appuyez sur Maj
Entrée.
- 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:
- 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.
Remarque : Les commandes peuvent avoir plusieurs commandes imbriquées sous vos appareils et 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
- 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 essayez d'enregistrer 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 est 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.
Remarque : les fabricants peuvent modifier les caractéristiques des appareils lors des mises à jour, ce qui peut empêcher les scripts de fonctionner. Vous pouvez utiliser la saisie semi-automatique pour mettre à jour les scripts concernés.
- 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.