Skriv skriptbaserte automatiseringer med redigeringsverktøyet for skript

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: Gå til kodelaben
Viktig: Alle medlemmene i husstanden kan sjekke når disse rutinene kjører. Rutiner er bare laget for praktiske formål – ikke scenarioer knyttet til kritisk sikkerhet. Ikke opprett rutiner som kan føre til personskade eller materielle skader hvis de ikke starter eller stopper. Rutiner kan kreve fungerende internett og wifi, og i tillegg må tjenesten være tilgjengelig både fra Google og tredjepartene som har produsert enhetene som brukes i rutinene. Det er ikke sikkert at rutiner alltid fungerer, og Google er ikke ansvarlig for eventuelle skader eller tap som oppstår på grunn av rutiner som ikke fungerer.

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
  • true
  • false
Tall Heltall eller desimaltall
Streng

Ren tekst

Strengverdier trenger bare anførselstegn hvis de begynner med [, {, ", ', eller #, eller hvis strengen inneholder et kolon etterfulgt av ett eller to mellomrom. Anførselstegn må matche. Bruk for eksempel " " eller ‘ ‘,,, ikke " ‘.

Dato

Måned og dag. Formatet er MM-DD eller MM/DD.

  • 09/01
  • 09-01
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 sunrise og sunset etterfulgt av en varighet.

  • 12:30 am
  • 13:00:01
  • sunrise / sunset
  • sunset+30min / sunset-1hour
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.

  • 2022/01/01 14:00
  • 2022-12-31 sunrise+30min
Ukedag
  • MON eller MONDAY
  • TUE eller TUESDAY
  • WED eller WEDNESDAY
  • THU eller THURSDAY
  • FRI eller FRIDAY
  • SAT eller SATURDAY
  • SUN eller SUNDAY
Varighet

En tidsperiode.

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

Fargeheksadesimal

En 6-sifret heksadesimalkode som representerer en farge. Det brukes ikke # foran.

  • FFFFFF
  • B5D2A1
  • DFA100
Temperatur

Temperaturdata. Legg alltid til C eller F for å angi celsius eller fahrenheit.

  • 20.5C
  • 90F
Fargetemperatur

Fargetemperatur i kelvin.

  • 5000K

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

For mer komplekse automatiseringer kan verdien være en liste som inneholder flere flettede nøkkelverdi-par.
starters:
- 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 : etterfulgt av et mellomrom for å skille en nøkkel fra verdien.

state: on

Innrykk

Innrykkene viser strukturen og hierarkiet og definerer flettede nøkkelpar.

I eksempelet er den overordnede nøkkelen = metadata. Nøklene name og description er underordnede nøkler som er flettet under metadataene for den overordnede nøkkelen. De flettede nøklene er rykket inn med to mellomrom eller én tabulator for å indikere hierarkiet.

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

Bindestrek

En bindestrek etterfulgt av et mellomrom definerer et listeelement.
weekdays:
- MONDAY
- THURSDAY

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

Bruk en 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».
Merk: Hvis en automatisering startes av en talekommando og skriptet inneholder en Assistent-handling, utføres Assistent-handlingen på enheten som hører talekommandoen, selv om en annen enhet er spesifisert i skriptet.
Eksempel: Start automatiseringen når noen sier «Ok Google, på tide med fest».
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.

Eksempel: Start automatiseringen når noen trykker på ringeklokken.
starters:
- type: device.event.DoorbellPress
  device: Doorbell - Front door
Eksempel: Start automatiseringen når kameraet registrerer en person.
starters:
- type: device.event.PersonDetection
  device: Camera - Backyard 

Eksempel: Start automatiseringen når kameraet registrerer bevegelse.

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

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

Bruk en 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.
Merk: Du kan ignorere aktiveringsfunksjoner basert på enhetshendelser og enhetstilstander, slik at de ikke gjentas i en viss periode.
Legg til tilstanden for aktiveringsfunksjonen for enhetstilstand etter «device.state». Du kan for eksempel bruke device.state.OnOff for å sjekke om en enhet er på.
For å bruke en 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
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ø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
greaterThanOrEqualTo
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

Bruk home.state-aktiveringsfunksjonen for å starte skriptet basert på om du er hjemme eller borte. Dette kan registreres med registrering av tilstedeværelse.
Eksempel: Start automatiseringen når du er hjemme.
starters:
- type: home.state.HomePresence
  state: homePresenceMode
  is: HOME

Aktiveringsfunksjoner for tid

Bruk en aktiveringsfunksjon for 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

Betingelser er valgfrie begrensninger for når automatiseringene skal kjøres. Hvis du tar med betingelser, kjøres skriptet ditt bare hvis betingelsene er oppfylt. Mange aktiveringsfunksjoner kan også brukes som betingelser, og de kan kombineres med de logiske operatorene 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

Bruk en 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.
Legg til tilstanden for en betingelse for enhetstilstand etter «device.state». Du kan for eksempel bruke device.state.OnOff for å sjekke om en enhet er på.
For å bruke en 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
greaterThanOrEqualTo
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

Bruk en home.state.HomePresence-betingelse for å begrense når skriptet ditt kan kjøre, basert på om noen er hjemme eller ikke.
Merk: Før du oppretter et skript som bruker betingelsen 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:

Du kan bruke følgende nøkkel/verdi-par for sammenligning med 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

Bruk betingelsen 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.

Merk: Hvis en automatisering startes av en talekommando og skriptet inneholder en Assistent-handling, utføres Assistent-handlingen på enheten som hører talekommandoen, selv om en annen enhet er spesifisert i skriptet.
Eksempel: Bruk «Slå på lysene i stuen» for å slå på alle lysene i stuen.
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn on living room lights
  devices: My Speaker - Room Name 
Eksempel: Bruk «Slå av alle lysene» for å slå av alle lysene som er konfigurert i hjemmet ditt.
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn off all lights
  devices: My Speaker - Room Name 
Eksempel: Du kan få høyttalerne eller skjermene dine til å komme med kunngjøringer.
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.»
Merk: Assistent-handlinger som krever at Voice Match eller personlige resultater er slått på, fungerer ikke med husstandautomatiseringer som er laget med redigeringsverktøyet for skript.

Enhetshandlinger

Bruk 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

Bruk 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.
Eksempel: Slå på lysene, og slå dem av etter 30 sekunder.
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å».

Merk: Selv om du ikke har strømmeenheter, smartlys eller lignende enheter, kan du følge med for å forstå skriptprosessen, men skriptet ditt kjøres ikke på slutten.
  1. Åpne home.google.com/automations, og logg på kontoen din.
  2. Klikk på Legg til ny .
  3. 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.
  4. 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.
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.
  1. Legg til aktiveringsfunksjonen device.state. Husk at for å bruke en device.state-aktiveringsfunksjon trenger du tre nøkler: type, device og state 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 med Volume og endret tilstanden til currentVolume 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 og lessThan: 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
  2. 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.
  3. 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:
  4. 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 og Overhead 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
  5. 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.

Var dette nyttig for deg?

Hvordan kan vi forbedre den?
Søk
Slett søket
Lukk søkefunksjonen
Hovedmeny
9120344458098591493
true
Søk i brukerstøtte
true
true
true
true
true
1633396
false
false
false
false