Med redigeringsverktøyet for skript kan du skrive dine egne automatiseringer for å lage avanserte husstandsrutiner med Google Home på nettet eller i Google Home-appen. Før du kan skrive skriptbaserte automatiseringer, må du ha grunnleggende kunnskap om YAML-skriptspråket, hvordan du strukturerer skript, og hvordan du bruker komponentene som utgjør skriptet.
Redigeringsverktøyet for skript er tilgjengelig i den offentlige forhåndsversjonen. Du kan åpne redigeringsverktøyet for skript med Google Home på nettet eller i Google Home-mobilappen etter at du har begynt å bruke den offentlige forhåndsversjonen.
Finn ut mer om hvordan du oppretter automatiseringer med redigeringsverktøyet for skript:- Opprett avanserte automatiseringer for smarthjem med redigeringsverktøyet for skript.
- Støttede aktiveringsfunksjoner, betingelser og handlinger
- Gå til kodelaben for å se et eksempel med en veiledning om hvordan du lager ditt første skript.
- Øvelser i å skrive skriptbaserte automatiseringer og eksempler på skript
Grunnleggende informasjon om YAML-skriptspråket
Redigeringsverktøyet for skript bruker YAML, som er et fleksibelt skriptspråk som gjør det mulig å legge inn instrukser linje for linje for ting du vil enhetene skal gjøre og når. Disse instruksjonene er skrevet i form av nøkkelverdi-par.
Nøkkel/verdi-par
YAML skrives som en serie med nøkkel/verdi-par:
name: TV on lights off
I dette eksempelet er nøkkelen = name
og verdien = TV on lights off
.
Nøkkelen er i bunn og grunn nøkkelordet for et element du vil bruke. Hver nøkkel må være unik, men rekkefølgen på nøklene har ingen betydning. Hvert nøkkel/verdi-par starter på en ny linje.
Verdien som er tilknyttet en nøkkel, kan være i form av flere ulike datatyper.
Datatyper
Primitiver
Den primitive datatypen omfatter alle de grunnleggende datatypene som støttes av redigeringsverktøyet for skript.
Primitive former | Verdityper |
---|---|
Boolsk |
|
Tall | Heltall eller desimaltall |
Streng |
Ren tekst Strengverdier trenger bare anførselstegn hvis de begynner med |
Dato |
Måned og dag. Formatet er MM-DD eller MM/DD.
|
Klokkeslett |
Klokkeslett kan være i enten AM/PM-format eller 24-timersformat. Sekunder er valgfritt. Du kan også bruke tidsbenevnelser tilknyttet solen. Du kan for eksempel bruke nøkkelordene
|
Dato og klokkeslett |
År, måned, dag og klokkeslett. Du må ta med et mellomrom mellom datoen og klokkeslettet. Datoformatet er ÅÅÅÅ-MM-DD eller ÅÅÅÅ/MM/DD. Tidsformatet er det samme som «Klokkeslett» ovenfor. Tidssoner støttes ikke.
|
Ukedag |
|
Varighet |
En tidsperiode.
|
Fargeheksadesimal |
En 6-sifret heksadesimalkode som representerer en farge. Det brukes ikke # foran.
|
Temperatur |
Temperaturdata. Legg alltid til C eller F for å angi celsius eller fahrenheit.
|
Fargetemperatur |
Fargetemperatur i kelvin.
|
Strukturer: flettede nøkkelverdi-par
Strukturdatatypen er en «blokk» eller datastruktur som inneholder flere nøkkelverdi-par. Disse nøkkel/verdi-parene er flettet under én enkelt overordnet nøkkel, der hvert flettenivå er rykket inn med det samme antallet mellomrom eller tabulatorer for å angi hierarkiet.
actions: device: Light B - Living room state: on
I dette eksempelet er den overordnede nøkkelen = actions
. Verdien for actions
er to flettede nøkkel/verdi-par:
- Par 1: underordnet nøkkel =
device
; verdi =Light B - Living room
- Par 2: underordnet nøkkel =
state
; verdi =on
Lister: nøkler med flere verdier
For å inkludere flere verdier i én nøkkel oppretter du en liste. Legg inn bindestrek før hvert element i listen. En liste kan bruke verdier fra enten strukturdatatyper eller primitive datatyper, men ikke begge samtidig.
weekdays: - MONDAY - THURSDAY
I eksempelet er nøkkelen = weekdays
og verdien = en liste som inkluderer Monday
og Thursday
.
Avanserte strukturer: kombinerte flettede par og lister
- type: time.schedule at: 10:00 am weekdays: - MONDAY - THURSDAY - type: time.schedule at: SUNSET weekdays: - MONDAY - THURSDAY
I dette eksempelet er den overordnede nøkkelen = starters
. Verdien til denne overordnede nøkkelen = en liste der hvert listeelement inneholder flere nøkkelverdi-par.
Noen typer nøkler krever at verdiene angis i bestemte formater, mens andre nøkler arver karakteristikker basert på enhetens egenskaper. Finn ut hvordan bestemte aktiveringsfunksjoner, betingelser og handlinger er strukturert.
YAML-språksyntaks
Når du skriver skriptbaserte rutiner, kan du bruke disse formateringskonseptene:
Konsept | Eksempel |
---|---|
Kolon YAML bruker et kolon |
state: on |
Innrykk Innrykkene viser strukturen og hierarkiet og definerer flettede nøkkelpar. I eksempelet er den overordnede nøkkelen = |
|
Bindestrek En bindestrek etterfulgt av et mellomrom definerer et listeelement. |
|
Kommentarer Bruk firkanttegnet # for å legge til kommentarer eller notater i skriptet. Kommentarer ignoreres av automatiseringsmotoren og har ingen innvirkning på automatiseringen. |
# This is a comment. It will be ignored. |
Malen for redigeringsverktøyet for skript
Når du oppretter en ny automatisering, gir redigeringsverktøyet for skript deg en tom mal til å skrive skriptet i ved hjelp av denne strukturen:
metadata |
inneholder navnet på automatiseringen og en beskrivelse |
automations |
definerer hva automatiseringen gjør |
starters |
definerer utløserne som starter automatiseringen |
condition |
definerer begrensninger for når automatiseringen skal kjøre (valgfritt) |
actions |
definerer handlingene som utføres i automatiseringen |
Malen er delt inn i to hovedblokker: metadata og automatiseringer. Automatiseringen blir deretter delt inn ytterligere i aktiveringsfunksjoner, betingelser og handlinger.
Metadata- og automatiseringsblokker
Malen for redigeringsverktøyet for skript inneholder to overordnede nøkler eller blokker: metadata
og automations
.
Metadata
-blokken inneholder navnet til og beskrivelsen av automatiseringen. Den brukes bare for å identifisere automatiseringen.
metadata: name: TV time description: When TV is on, turn on lights
Automations
-blokken er kjernen i automatiseringsskriptet. Det er her du definerer hva automatiseringen gjør, med aktiveringsfunksjoner, betingelser og handlinger.
automations: starters: # e.g. Motion detected condition: # e.g. Between 2 times actions: # e.g. Turn on lights
Du kan få en bedre forståelse av hvordan du bruker redigeringsverktøyet for skript, ved å gå til kodelaben, se eksempler på skript eller finne ut hvordan du formaterer aktiveringsfunksjoner, betingelser og handlinger enkeltvis i utviklersenteret for Google Home.
Autofullføring
Redigeringsverktøyet for skript hjelper deg med å skrive skriptet ditt ved å komme med forslag basert på tilgjengelige aktiveringsfunksjoner, betingelser og handlinger når
- markøren befinner seg på steder der det finnes gyldige alternativer – for eksempel etter «
- type:
»- du skriver inn kode med gyldige forslag – forslagsfilteret vises mens du skriver
du starter funksjonen for autofullføring manuelt med Ctrl+mellomrom-hurtigtasten
Trykk på Enter for å velge et forslag fra listen. Autofullføring fyller ut flere felt basert på strukturen du velger.
Tips: Du kan bruke autofullføring for å finne ut hvilke enhetstilstander eller -kommandoer som er tilgjengelige for enheten, og hvilke enheter som er tilgjengelige for en bestemt enhetstilstand eller -kommando.
For å finne ut hvilke enhetstilstander eller -kommandoer som er tilgjengelige for enheten din, skriv inn «device:
»-nøkkelen først og deretter «type:
»-nøkkelen når du skriver skriptet. Funksjonen for autofullføring viser en liste over tilstandene og kommandoene som er tilgjengelige for enheten.
Eksempel
starters: - device: LED lights - Living Room - type:
For å finne ut hvilke enheter som er tilgjengelige for en bestemt enhetstilstand eller -kommando, skriv inn «type:
»-nøkkelen først og deretter «device:
»-nøkkelen. Funksjonen for autofullføring viser en liste over tilgjengelige enheter i hjemmet som støtter den aktuelle tilstanden eller kommandoen.
Eksempel
starters: - type: device.state.OnOff - device:
Aktiveringsfunksjoner, betingelser og handlinger
Automatiseringer består av aktiveringsfunksjoner, betingelser og handlinger. Disse komponentene definerer hvordan automatiseringen fungerer.
Enkelte aktiveringsfunksjoner, betingelser og handlinger krever en bestemt type nøkkel/verdi-par for sammenligning for å fullføre automatiseringslogikken og fortelle skriptet hva du vil ha evaluert. Verdien må være en kompatibel datatype. Lysets on
-tilstand kan for eksempel være enten true
eller false
. For å starte automatiseringen hvis lyset er på, bruker du:
state: on is: true
Nedenfor finner du informasjon om de ulike aktiveringsfunksjonene, betingelsene og handlingene som er tilgjengelige. Du finner en fullstendig liste over aktiveringsfunksjoner, betingelser og handlinger i utviklersenteret for Google Home.
Aktiveringsfunksjoner
Delen for aktiveringsfunksjoner i skriptet er der du angir hva som skal få skriptet til å kjøre. Aktiveringsfunksjoner er basert på ting enheten din kan gjøre, eller attributter som kan endres, inkludert enhetstilstander, tidspunkter og enhetshendelser. Du kan for eksempel bruke en lyspære som har tilstandene OnOff
, Brightness
og ColorSetting
. Hvis du vil ta med flere aktiveringsfunksjoner, oppgir du alle aktiveringsfunksjonene med nøkkelen « - type:
» først. Skriptet ditt må oppfylle minst én betingelse for aktiveringsfunksjon for å kunne kjøre.
Se den fullstendige listen over aktiveringsfunksjoner som støttes.
Typer aktiveringsfunksjoner
Aktiveringsfunksjoner for assistenten
assistant.command
-aktiveringsfunksjon for å starte et skript når en enhet med assistenten hører en assistentkommando som begynner med «Ok Google» eller «Hey Google».starters: - type: assistant.command.OkGoogle eventData: query is: party time
Aktiveringsfunksjoner for enhetshendelser
Bruk en device.event
-aktiveringsfunksjon for å få skriptet til å starte når en bestemt hendelse skjer, for eksempel når noen ringer på ringeklokken eller når en sensor registrerer noe. Merk: Ikke alle hendelser støttes.
starters: - type: device.event.DoorbellPress device: Doorbell - Front door
starters: - type: device.event.PersonDetection device: Camera - Backyard
Eksempel: Start automatiseringen når kameraet registrerer bevegelse.
Merk:
- For å bruke kamerahendelser må du ha et kompatibelt Nest-kamera og en ringeklokke eller skjerm. I tillegg må hendelsesregistrering være konfigurert.
- Noen kamerahendelser kan kreve at du abonnerer på Nest Aware, eller at kameraet får strøm via ledning. Lydregistrering fungerer for eksempel bare på Nest Cam (utendørs eller innendørs, med batteri) når det er koblet til med ledning.
- Du kan ignorere aktiveringsfunksjoner basert på enhetshendelser og enhetstilstander, slik at de ikke gjentas i en viss periode.
Aktiveringsfunksjoner for enhetstilstand
device.state
-aktiveringsfunksjon for å få automatiseringen til å starte basert på tilstanden til enheten. Tilstander er karakteristikker for enheten, for eksempel når temperaturen på termostaten oppnår en bestemt temperatur, når lys slås av eller på eller når en støttet sensor oppnår en definert terskel.
device.state
». Du kan for eksempel bruke device.state.OnOff
for å sjekke om en enhet er på.device.state
-aktiveringsfunksjon begynner du med tre nøkler: type
, device
og state
etterfulgt av minst ett nøkkelverdi-par for sammenligning.Nøkkel | Verdi | Eksempel |
type |
Aktiveringsfunksjonen for enhetstilstand, som begynner med device.state |
device.state.ArmDisarm |
device |
Navnet som vises i Google Home-appen, med romnavnet: Device name - Room name |
Alarm - Front Door |
state |
Feltet eller tilstandsdataene for aktiveringsfunksjonen du vil sjekke. Finn aktiveringsfunksjonen du vil bruke, i utviklersenteret for Google Home for å finne «Støttede felt» eller «Tilstandsdata». |
isArmed |
Du kan bruke følgende nøkkelverdipar for sammenligning med device.state-aktiveringsfunksjonen:
Sammenligningsnøkler | Støttede verdityper | Eksempel |
---|---|---|
is |
Streng | Tall | Boolsk | Dynamisk | is: on |
isNot |
Streng | Tall | Boolsk | Dynamisk | isNot: cast |
greaterThan |
Streng | Tall | Boolsk | Dynamisk | greaterThan: 1 |
lessThan lessThanOrEqualTo |
Streng | Tall | Boolsk | Dynamisk | lessThan: 10 |
suppressFor |
Varighet | suppressFor: 1hour |
Eksempel: Start automatiseringen hvis TV-volumet er mellom 1 og 10.
starters: - type: device.state.Volume device: TV - Living room state: currentVolume greaterThan: 1 lessThan: 10
Aktiveringsfunksjoner for hjemtilstand
home.state
-aktiveringsfunksjonen for å starte skriptet basert på om du er hjemme eller borte. Dette kan registreres med registrering av tilstedeværelse.starters: - type: home.state.HomePresence state: homePresenceMode is: HOME
Aktiveringsfunksjoner for tid
time
for å starte automatiseringen basert på bestemte dager og klokkeslett. Du kan bruke følgende nøkkelverdi-par for sammenligning med aktiveringsfunksjonen for tid:Sammenligningsnøkler | Støttede verdityper | Eksempel |
---|---|---|
before |
Klokkeslett | before: sunset |
after |
Klokkeslett | after: 7:00 am |
weekdays |
Ukedag | weekdays: MON |
Eksempel: Start automatiseringen på mandager og tirsdager 30 minutter etter soloppgang.
starters: - type: time.schedule at: sunrise+30min weekdays: - MON - TUE
Slik ignorerer du aktiveringsfunksjoner
Bruk sammenligningsnøkkelen suppressFor
for å be automatiseringen om å ignorere en aktiveringsfunksjon i en viss periode. Eksempel: Kunngjør «Noen er ved døren» når kameraet registrerer noen, og ikke kunngjør det igjen de neste 10 minuttene, selv om kameraet fortsatt registrerer noen.
Eksempel: Åpne alle persiennene når noen går i gangen for første gang om morgenen, og slå deretter av denne aktiveringsfunksjonen for de neste 20 timene.
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
Betingelser
and
, or
og not
for å uttrykke mer komplekse betingelser.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
I dette eksempelet er det én tidsbetingelse og én device.state
-betingelse. Dette skriptet kjøres hvis det er mellom solnedgang og soloppgang på mandag eller tirsdag, eller hvis TV-volumet er mellom 1 og 10.
Du kan bruke følgende typer betingelser:
Operatorer for betingelser
Oi-gno/re-dbetingelse
Når du bruker and
-betingelsen, kjøres skriptet bare hvis alle de underordnede betingelsene er oppfylt.
Eksempel: Start automatiseringen hvis TV-en er på OG klokkeslettet er etter 18:00.
condition: type: and conditions: - type: device.state.OnOff device: TV - Living Room state: on is: true - type: time.between after: 6:00 pm
ELLER-betingelse
Når du bruker or
-betingelsen, kjøres skriptet når minst én av de underordnede betingelsene er oppfylt.
Eksempel: Start automatiseringen hvis TV-en er på ELLER klokkeslettet er etter 18:00.
condition: type: or conditions: - type: device.state.OnOff device: TV - Living Room state: on is: true - type: time.between after: 6:00 pm
IKKE-betingelse
Når du bruker not
-betingelsen, kan ikke skriptet kjøres hvis den underordnede betingelsen er oppfylt.
Eksempel: Start automatiseringen hvis klokkeslettet ikke er mellom 18:00 og 20:00.
condition: type: not condition: type: time.between after: 6:00pm before: 8:00pm
Betingelser for enhetstilstand
device.state
-betingelse for å begrense når skriptet ditt kan kjøre, basert på enhetens tilstand når skriptet starter. Device.state
-betingelsene ligner på device.state
-aktiveringsfunksjonene, men i stedet for å fortelle skriptet når det skal starte, begrenser de situasjonene der skriptet kan kjøres.device.state
». Du kan for eksempel bruke device.state.OnOff
for å sjekke om en enhet er på.device.state
-betingelse begynner du med tre nøkler: type
, device
og state
etterfulgt av minst ett nøkkelverdi-par for sammenligning.Nøkkel | Verdi | Eksempel |
---|---|---|
type |
Betingelsen for enhetens tilstand, som begynner med device.state |
device.state.OnOff |
device |
Navnet som vises i Google Home-appen, med romnavnet: Device name - Room name |
Chromecast - Living Room |
state |
Tilstanden for aktiveringsfunksjon som du vil sjekke Finn betingelsen for enhetstilstand du vil bruke, i utviklersenteret for Google Home. |
state: on |
Tips: Du kan finne ut hvilke enhetstilstander som er tilgjengelige for enheten din, ved å skrive inn «device:
»-nøkkelen først og deretter «type:
»-nøkkelen i skriptet ditt. Autofullføring viser en liste over statuser som er tilgjengelige for enheten.
Du kan bruke følgende nøkkelverdi-par for sammenligning med device.state
-betingelsen:
Sammenligningsnøkler | Støttede verdityper | Eksempel |
---|---|---|
is |
Streng | Tall | Boolsk | Dynamisk | is: on |
isNot |
Streng | Tall | Boolsk | Dynamisk | isNot: cast |
greaterThan |
Streng | Tall | Boolsk | Dynamisk | greaterThan: 1 |
lessThan lessThanOrEqualTo |
Streng | Tall | Boolsk | Dynamisk | lessThan: 10 |
Eksempel: Start automatiseringen hvis termostaten registrerer et luftfuktighetsnivå på mer enn 55 %.
condition: type: device.state.TemperatureSetting device: My Thermostat - Living Room state: thermostatHumidityAmbient greaterThan: 55
Betingelser for hjemtilstand
home.state.HomePresence
-betingelse for å begrense når skriptet ditt kan kjøre, basert på om noen er hjemme eller ikke.home.state.HomePresence
, må du konfigurere registrering av tilstedeværelse i Google Home-appen og sjekke at det fungerer som forventet. Tilstedeværelse i hjemmet kan fastslås av hvor telefonene til husstanden er, sensorene i enkelte Nest-enheter eller manuelt ved å bytte mellom Hjemme og Borte i Google Home-appen.Finn ut mer om registrering av tilstedeværelse og Hjemme- og Borte-rutiner:
home.state.HomePresence
-betingelsen:Sammenligningsnøkler | Støttede verdityper | Eksempel |
---|---|---|
is |
Streng («HJEMME» eller «BORTE») | is: away |
isNot |
Streng («HJEMME» eller «BORTE») | isNot: HOME |
for |
Varighet | for: 30min |
suppressFor |
Varighet | suppressFor: 1hour |
Eksempel: home.state.HomePresence
-betingelsen starter automatiseringen hvis tilstedeværelsen din er satt til HJEMME.
condition: type: home.state.HomePresence state: homePresenceMode is: HOME
Tidsbetingelser
time.between
til å begrense når skriptet kan kjøres. Du kan bruke følgende nøkkelverdi-par for sammenligning med time.between
-betingelsen:Sammenligningsnøkler | Støttede verdityper | Eksempel |
---|---|---|
before |
Klokkeslett | before: sunset |
after |
Klokkeslett | after: 7:00 am |
weekdays |
Ukedag | weekdays: MON |
Eksempel: Start automatiseringen bare i helgene før klokken 10.00.
condition: type: time.between before: 10am weekdays: - SAT - SUN
Handlinger
I Handlinger-delen av skriptet ditt fører du opp hva du vil at enhetene dine skal gjøre. Hvis du vil ta med flere handlinger, må du liste opp hver handling med nøkkelen «- type:
» først. Skriptet må ha minst én handling for å kunne kjøre. De fleste handlinger begynner med device.command
.
Du kan bruke følgende handlingstyper:
Assistent-handlinger
Bruk assistant.command
-handlingen med høyttalerne eller skjermene dine for å få assistenten til å utføre handlinger som «Slå av alle lysene» eller «Fortell meg været».
Med Assistent-kommandoer kan du styre enheter i bestemte rom eller hele hjemmet uten å bruke spesifikke enhetsnavn. Dermed kan du spare tid, siden enheter som legges til i Home-appen senere, automatisk kan fungere med slike kommandoer. For å bruke Assistent-kommandoer må du ha en kompatibel høyttaler eller skjerm for å kjøre handlingen.
actions: - type: assistant.command.OkGoogle okGoogle: Turn on living room lights devices: My Speaker - Room Name
actions: - type: assistant.command.OkGoogle okGoogle: Turn off all lights devices: My Speaker - Room Name
actions: - type: assistant.command.Broadcast devices: - My Speaker 1 - Room Name - My Speaker 2 - Room Name message: It’s dinner time.
Med Assistent-handlinger kan du også utføre egendefinerte handlinger, for eksempel
- «Spill Hello av Adele fra YouTube Music på høyttaleren på soverommet»
- «Spill morsomme kattevideoer fra YouTube på skjermen i stuen.»
- «Hvordan blir været i morgen?»
- «Fortell meg en vits.»
- «Vis meg kameraet i oppkjørselen på skjermen på hjemmekontoret.»
Enhetshandlinger
device.command
-handlingen til å kontrollere eller justere en enhet. Hver handlingskommando har et eget sett med egenskaper og struktur. Du kan legge til kommandoer i skriptet ditt ved å legge til kommandohandlingen for en enhet etter «device.command
». Du kan for eksempel bruke device.command.OnOff
for å slå på en enhet. En device.command
-handling må inneholde følgende informasjon:Nøkkel | Verdi | Eksempel |
---|---|---|
type |
Enhetshandlingen, som begynner med device.command |
device.command.OpenClose |
devices |
Navnet på enheten slik det vises i Google Home-appen, med romnavnet: enhetsnavn – romnavn. For å inkludere flere enheter, opprett en liste. | Blinds - Bedroom |
Tips: For å finne ut hvilke handlinger eller kommandoer som er tilgjengelige for enheten din, skriv inn «device:»-nøkkelen først og så «type:»-nøkkelen. Automatisk fullføring viser en liste over tilgjengelige handlinger for enheten.
Mange device.command
-handlinger har flere nøkler som spesifiserer de obligatoriske inndataene for kommandoen. device.command.ThermostatTemperatureSetpoint
krever for eksempel et nøkkelverdi-par for thermostatTemperatureSetpoint
for å fortelle termostaten den nye temperaturen du vil ha.
Hvis du vil finne ut mer om hvordan du bruker kommandoer, kan du finne den relaterte handlingen i utviklersenteret for Google Home og følge strukturen for handlingen du vil bruke.
Eksempel: Slå på TV-en i stuen.
actions: type: device.command.OnOff devices: TV - Living room on: true
Eksempel: Slå på et lys og slå det av etter fem minutter.
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
Varselhandlinger
Bruk home.command.notification
-handlingen for å få skriptet til å sende varsler til mobilenhetene til medlemmer av hjemmet. Du kan for eksempel motta varsler når apparater som er koblet til smarte stikkontakter, slås av eller blir uten nett.
actions: - type: home.command.Notification members: - Alex - [email protected] - Kim - [email protected] title: It’s movie time! body: Join me in the living room
Tidshandlinger
time.delay
-handlingen til å få skriptet til å vente en bestemt tid mellom to handlinger i listen i stedet for å utføre alle handlingene samtidig. Du kan legge til flere forsinkelser i skriptet. Du kan for eksempel få skriptet til å vente ti sekunder mellom hver handling.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
Ressurser
Øv deg på å skrive skript
For å komme i gang oppretter vi en veldig enkel, men populær automatisering: «Slå av lysene når TV-en slås på».
- Åpne home.google.com/automations, og logg på kontoen din.
- Klikk på Legg til ny
.
- Fyll ut metadataene. I dette skriptet er navn =
TV on lights off
og beskrivelsen =Turn off lights when TV turns on.
Sjekk at du har formatert skriptet riktig.metadata: name: TV on lights off description: Turn off lights when TV turns on.
- For å legge til aktiveringsfunksjoner, opprett en ny linje, rykk inn linjen med to mellomrom eller trykk på tabulatortasten én gang, og skriv inn «
starters:
». På den neste linjen rykker du inn igjen og skriver inn «- type:
».Tips:- For å opprette en ny linje, trykk på Shift
Enter.
- For å inkludere flere aktiveringsfunksjoner må alle starte med en bindestrek og et mellomrom.
- For å opprette en ny linje, trykk på Shift
metadata: name: TV on lights off description: Turn off lights when TV turns on automations: starters: - type:Merk: Redigeringsverktøyet for skript hjelper deg med strukturen ved å komme med forslag basert på tilgjengelige aktiveringsfunksjoner. For å velge blant forslagene, bruk piltastene på tastaturet til å velge et, og trykk på Enter for å sette det inn.
- Legg til aktiveringsfunksjonen
device.state
. Husk at for å bruke en device.state-aktiveringsfunksjon trenger du tre nøkler:type
,device
ogstate
etterfulgt av minst ett nøkkelverdi-par for sammenligning. Redigeringsverktøyet for skript hjelper deg med strukturen ved å komme med forslag basert på tilgjengelige aktiveringsfunksjoner, betingelser og handlinger. I dette skriptet:- Type =
device.state.OnOff
. Dette er enhetens tilstand som evalueres for å starte automatiseringen. - Enhet =
Chromecast - Living Room
. Dette er navnet på enheten slik det vises i Google Home-appen. - Tilstand =
on
. På er de støttede felt- eller tilstandsdataene for av/på-enhetstilstanden. - Nøkkelverdi-paret for sammenligning =
is: true
. Verdien for denne sammenligningsnøkkelen er en primitiv datatype. Skriptet kjøres hvis TV-en er på.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
La oss se på et lignende skript med en annen aktiveringsfunksjon for å sammenligne. I skriptet nedenfor starter automatiseringen når volumet er mellom 1 og 10, og ikke når TV-en slås på. For å gjøre denne endringen erstattet vi
OnOff
-tilstanden medVolume
og endret tilstanden tilcurrentVolume
for å passe med det nye attributtet. Vi har også endret nøkkel/verdi-parene for sammenligning til to flettede par som danner et område:greaterThan: 1
oglessThan: 10
. Her er en komplett liste over aktiveringsfunksjoner du kan bruke.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
- Type =
- Du kan når som helst klikke på Lagre for å lagre skriptet. Når du lagrer skriptet, validerer redigeringsverktøyet for skript skriptet og ser etter feil automatisk. Et ugyldig skript kan ikke kjøres.
- Legg til en handling i skriptet ditt. For å legge til handlinger, opprett en ny linje, rykk inn linjen med to mellomrom eller trykk på tabulatortasten én gang, og skriv inn «
actions:
». På den neste linjen rykker du inn igjen og skriver inn «- type:
».Tips:- For å opprette en ny linje, trykk på Shift
Enter.
- For å inkludere flere handlinger må hver handling begynne med en bindestrek og et mellomrom.
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:
- For å opprette en ny linje, trykk på Shift
- For å slå av lysene bruker vi
device.command
-handlingen. For å bruke device.command-handlingen inkluderer vi følgende informasjon:- Type =
device.command.OnOff
. Dette er navnet på kommandoen eller handlingen.Merk: Kommandoer kan ha flere kommandoer flettet under enhetene dine, og hver kommando har sin egen tilstand. - Enheter = en liste som inneholder
Floor Lamp - Living Room
ogOverhead Light - Living Room
. Dette er navnene på lysene slik de vises i Google Home-appen. For å inkludere flere lys har vi oppført hver enhet på en egen linje og med bindestrek. - Kommandoens foretrukne tilstand er =
on: false
. Denne linjen forteller lysene at de skal slå seg av.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
- Type =
- Klikk på Lagre for å lagre skriptet. Hvis det ikke finnes noen feil, aktiveres skriptet automatisk. Når TV-en slås på, slås lyset av. Hvis du ikke er klar til å kjøre skriptet ennå, stopper du skriptet midlertidig ved å slå av Aktiver.
Hvis du vil øve mer, kan du prøve å endre deler av skriptet med andre aktiveringsfunksjoner, datatyper, flere handlinger eller flere betingelser som time.between
. Du kan også gå gjennom eksempler på skript og ta en titt på kodelaben for å finne ut mer. Du finner detaljert informasjon om aktiveringsfunksjoner, handlinger og betingelser i utviklersenteret for Google Home.
Hjelp med skriptbaserte automatiseringer
- Få hjelp med skript og finn ut hva andre jobber med, i brukerfellesskapet for Google Home-automatisering.
- Skript må bruke gyldig kode for at automatiseringer skal fungere. Hvis det finnes feil, vises en melding. Finn ut mer om feil og varsler i redigeringsverktøyet for skript.
- For å validere koden, klikk eller trykk på Valider i redigeringsverktøyet for skript, eller prøv å lagre skriptet. Her er noen vanlige feil:
- Sjekk at du bruker riktig enhetsnavn i formatet enhetsnavn – romnavn. Hvis du ikke er sikker, kan du sjekke navnet på enheten i Google Home-appen.
- Sørg for at enheten støtter funksjonen du vil at den skal utføre. Du kan også bruke autofullføring til å finne tilgjengelige alternativer.
- Sørg for at du inkluderer en handling. Automatiseringer trenger handlinger for å kunne kjøre.
- Hvis skriptet lagres, men automatiseringen ikke fungerer som forventet, må du sjekke manuelt at alle komponentene i skriptet fungerer. Hvis du for eksempel har skrevet et skript for å slå på lyset og endre lysstyrken ved solnedgang, kan du prøve å utføre disse oppgavene med en assistentkommando for å sjekke at hver enkelt funksjon fungerer. Du kan også sjekke at
- enheten er lagt til eller tilknyttet i Google Home-appen
- enheten er tilkoblet og på nettet
- enhetsnavnet, aktiveringsfunksjonene, betingelsene og handlingene er skrevet på riktig måte
Merk: Produsenter kan endre enhetsegenskaper når de utfører oppdateringer, og dette kan føre til at skript slutter å fungere. Du kan bruke autofullføring for å oppdatere berørte skript. - skriptet har riktig innrykk og formatering
- Med Google Home på nettet kan du sjekke Automatisering-loggene
under skriptet for å sjekke automatiseringsloggen og identifisere mulige problemer. Finn ut mer om hvilke typer meldinger du ser i automatiseringsloggene.
- Prøv å bruke funksjonen for generativ AI (på forsøksstadiet) til redigeringsverktøyet for skript for å beskrive automatiseringen du vil ha, så lager den et utkast av et skript som du kan gå gjennom og redigere.
- Finn ut mer om grunnleggende informasjon om rutiner og hvordan du feilsøker dem.
- Finn ut mer om hvordan du oppretter og redigerer skriptede automatiseringer.