Skriva automatiseringar med skriptredigeraren

Med skriptredigeraren kan du skriva egna automatiseringar och skapa avancerade hushållsrutiner med Google Home för webben eller i Google Home-appen. Om du vill skriva automatiseringsskript behöver du känna till grunderna i skriptspråket YAML, hur du strukturerar skriptet och hur du använder komponenterna som utgör skriptet.

Skriptredigeraren är för närvarande tillgänglig i den offentliga förhandsversionen. Du kan komma åt skriptredigeraren via Google Home för webben eller i den mobila Google Home-appen när du har gått med i programmet Offentlig förhandsversion.

Läs mer om hur du skapar automatiseringar med skriptredigeraren: Besök codelab
Obs! Alla medlemmar i hushållet kan kolla när de här rutinerna körs. Rutiner är avsedda att göra vardagen smidigare och ska inte användas i nödsituationer eller i säkerhetssyften. Skapa inte rutiner som kan leda till skador om de inte startas eller stoppas. För vissa rutiner krävs en fungerande internetanslutning, wifi och tillgängliga tjänster från både Google och de tredje parter som tillverkar enheterna som styrs med rutinerna. Rutiner kanske inte alltid fungerar och Google ansvarar inte för eventuella skador eller förluster till följd av detta.

Grunderna i YAML-skriptspråket

I skriptredigeraren används YAML, ett flexibelt skriptspråk som du kan använda för att ange anvisningar för varje rad om vad du vill att dina enheter ska göra och när du vill att det ska hända. Dessa anvisningar är skrivna i form av nyckel-värdepar.

Nyckel-värdepar

YAML är skrivet som en serie nyckel-värdepar:

name: TV on lights off

I det här exemplet är nyckeln = name och värdet = TV on lights off.

Nyckeln är i grunden sökordet för ett element som du vill använda. Alla nycklar måste vara unika, men ordningen på nycklarna spelar ingen roll. Varje nyckel-värdepar börjar på en ny rad.

Det värde som är kopplat till en nyckel kan ha formen av flera olika datatyper.

Datatyper

Primitiv datatyp

Den primitiva datatypen omfattar alla grundläggande datatyper som stöds av skriptredigeraren.

Primitiva former Typer av värden
Bool
  • true
  • false
Number Heltal eller decimaltal
String

Vanlig text

Strängvärden behöver endast citattecken om de börjar med [, {, ", ' eller #, eller om strängen innehåller ett kolon följt av ett eller två blanksteg. Citattecknen måste matcha varandra. Använd exempelvis " " eller ' ', inte " '.

Date

Månad och dag. Formatet är MM-DD eller MM/DD.

  • 09/01
  • 09-01
Time

Du kan använda antingen 12-timmarsformat eller 24-timmarsformat. Det är valfritt att inkludera sekunder. Du kan även använda tid i förhållande till solen. Du kan till exempel använda sökorden sunrise och sunset följt av en varaktighet.

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

År, månad, dag och tid på dagen.

Du måste ange ett mellanslag mellan datumet och tiden.

Datumformatet är ÅÅÅÅ-MM-DD eller ÅÅÅÅ/MM/DD. Tidsformatet är samma som Tid ovan. Tidszoner stöds inte.

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

En tidsperiod.

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

ColorHex

En sexsiffrig kod i det hexadecimala talsystemet som representerar en färg. Den har inget inledande #.

  • FFFFFF
  • B5D2A1
  • DFA100
Temperature

Temperaturdata. Lägg alltid till C eller F för att beteckna Celsius eller Fahrenheit.

  • 20.5C
  • 90F
ColorTemperature

Färgtemperatur i Kelvin.

  • 5000K

Strukturer: Kapslade nyckel-värdepar

Strukturdatatypen är ett block eller en datastruktur som innehåller flera nyckel-värdepar. Nyckel-värdeparen är kapslade under en enda överordnad nyckel. Varje nivå av kapsling är indragen med samma antal blanksteg eller tabbar för att visa hierarkin.

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

I det här exemplet är den överordnade nyckeln = actions. Värdet för actions är två kapslade nyckel-värdepar:

  • Par 1: underordnad nyckel = device; värde = Light B - Living room
  • Par 2: underordnad nyckel = state; värde = on

Listor: Nycklar med flera värden

Om du vill inkludera flera värden med en enda nyckel skapar du en lista med ett bindestreck före varje listobjekt. En lista kan använda värden av antingen strukturdatatyp eller primitiv datatyp, men inte båda samtidigt.

weekdays:
- MONDAY
- THURSDAY

I exemplet är nyckeln = weekdays och värdet = en lista som innehåller Monday och Thursday.

Avancerade strukturer: Kombinerade kapslade par och listor

För mer komplexa automatiseringar kan värdet vara en lista som innehåller flera kapslade nyckel-värdepar.
starters:
- type: time.schedule
  at: 10:00 am
  weekdays:
  - MONDAY
  - THURSDAY
- type: time.schedule
  at: SUNSET
  weekdays:
  - MONDAY
  - THURSDAY

I det här exemplet är den överordnade nyckeln = starters. Den överordnade nyckelns värde är en lista där varje post innehåller flera nyckel-värdepar.

Vissa typer av nycklar kräver att värdena har specifika format, medan andra nycklar ärver egenskaper baserat på enhetens kapacitet. Läs mer om hur specifika utlösare, villkor och åtgärder är strukturerade.

Språksyntax för YAML

Använd följande formateringskoncept när du skriver skript med rutiner:

Koncept Exempel

Kolon

YAML använder ett kolon : följt av ett mellanslag för att separera en nyckel från dess värde.

state: on

Indrag

Indrag anger struktur och hierarki och definierar kapslade nyckelpar.

I exemplet är den överordnade nyckeln = metadata. Nycklarna name och description är underordnade nycklar som kapslas in under den överordnade nyckeln metadata. De kapslade nycklarna är indragna med två blanksteg eller en Tabb för att visa hierarkin.

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

Bindestreck

Ett bindestreck följt av ett mellanslag definierar ett listobjekt.
weekdays:
- MONDAY
- THURSDAY

Kommentarer

Använd nummertecknet # för att lägga till kommentarer eller anteckningar i skriptet. Automatiseringsmotorn ignorerar kommentarer och de påverkar inte automatiseringen.
# This is a comment. It will be ignored.

Mallen för skriptredigeraren

När du skapar en ny automatisering genererar skriptredigeraren en tom mall för dig att skriva skriptet i, med hjälp av den här strukturen:

metadata innehåller namnet på din automatisering och en beskrivning
automations definierar automatiseringsbeteendet
starters definierar vilka utlösare som inleder automatiseringen
condition definierar begränsningar för när automatiseringen ska köras (valfritt)
actions definierar vilka åtgärder som utförs i automatiseringen

Mallen är uppdelad i två huvudblock: metadata och automatiseringar. Automatiseringen delas sedan upp i delarna starters (utlösare), conditions (villkor) och actions (åtgärder).

Blocken metadata och automations

Skriptredigerarmallen innehåller två överordnade nycklar, eller block: metadata och automations.

Blocket metadata innehåller automatiseringens namn och beskrivning. Detta används endast för att hjälpa dig att identifiera automatiseringen.

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

Blocket automations är kärnan i ditt automatiseringsskript. Här definierar du automatiseringens beteende med hjälp av utlösare, villkor och åtgärder.

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

För att få en bättre inblick i hur du använder skriptredigeraren kan du besöka vårt codelab, titta på exempelskript eller lära dig hur du formaterar individuella utlösare, villkor och åtgärder i utvecklarcentret för Google Home.

Autoslutförande

Skriptredigeraren hjälper dig att skriva skriptet genom att tillhandahålla förslag på autoslutförande utifrån tillgängliga utlösare, villkor och åtgärder vid följande tillfällen:

  • När markören finns där det finns giltiga alternativ, till exempel efter - type: .
    • När du skriver kod med giltiga förslag. Listan över förslag filtreras allt eftersom du skriver.

Du startar autoslutförande manuellt med kortkommandot Ctrl + blanksteg.

Tryck på Retur för att välja ett förslag i listan. Med autoslutförande så fylls ytterligare fält i baserat på den struktur du väljer.

Tips! Med hjälp av autoslutförande kan du se vilka enhetsstatusar eller kommandon som är tillgängliga för din enhet och vilka enheter som är tillgängliga för en viss enhetsstatus eller ett visst kommando.

Om du vill se vilka enhetsstatusar eller kommandon som är tillgängliga för din enhet anger du device: när du skriver skriptet och sedan nyckeln type: . Funktionen för automatisk ifyllning visar en lista över statusar eller kommandon som enheten har tillgång till.

Exempel

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

Om du vill se vilka enheter som är tillgängliga för en viss enhetsstatus eller ett visst kommando anger du nyckeln type: först och sedan device: . Med funktionen autoslutförande visas en lista över tillgängliga enheter i hemmet som har stöd för statusen eller kommandot.

Exempel

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

Utlösare, villkor och åtgärder

Automatiseringar utgörs av enhetsutlösare, villkor och åtgärder. Dessa komponenter definierar automatiseringens beteenden.

Vissa utlösare, villkor och åtgärder kräver en specifik typ av nyckel-värdepar för jämförelse för att slutföra automatiseringslogiken och för att skriptet ska veta vad du vill utvärdera. Värdet måste vara en kompatibel datatyp. Till exempel kan lampans on-status vara antingen true eller false. Om du vill starta automatiseringen om lampan är tänd använder du följande:

state: on
is: true

Nedan finns information om de olika tillgängliga utlösarna, villkoren och åtgärderna. En fullständig lista över utlösare, villkor och åtgärder finns i utvecklarcentret för Google Home.

Utlösare

I utlösaravsnittet i skriptet anger du vad som ska göra att skriptet körs. Utlösarna baseras på saker enheten kan göra eller attribut som kan ändras, inklusive enhetsstatus, tid och enhetshändelser. Du kan till exempel använda en glödlampa som har statusen OnOff, Brightness eller ColorSetting. Om du vill inkludera flera utlösare anger du alla utlösare som börjar med nyckeln - type: . Skriptet måste uppfylla minst ett utlösarvillkor för att det ska köras.

Se hela listan över utlösare som stöds.

Utlösartyper

Assistent-utlösare

Använd en assistant.command-utlösare för att starta ett skript när en enhet med assistenten hör ett assistentkommando som börjar med ”Hey Google”.
Obs! Om en automatisering startas med ett röstkommando och det finns en Assistent-åtgärd i skriptet sker Assistent-åtgärden på enheten som hör röstkommandot, även om en annan enhet har angetts i skriptet.
Exempel: Starta automatiseringen när någon säger ”Hey Google, dags för fest”.
starters:
- type: assistant.command.OkGoogle
  eventData: query
  is: party time

Utlösare för enhetshändelse

Använd en device.event-utlösare så att skriptet startas när en viss händelse sker, till exempel när någon ringer på eller när en sensor registrerar något. Obs! Alla händelser stöds inte.

Exempel: Starta automatiseringen när någon ringer på dörrklockan.
starters:
- type: device.event.DoorbellPress
  device: Doorbell - Front door
Exempel: Starta automatiseringen när kameran detekterar en person.
starters:
- type: device.event.PersonDetection
  device: Camera - Backyard 

Exempel: Starta automatiseringen när kameran detekterar en rörelse.

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

Obs!

  • För kamerahändelser krävs en kompatibel Nest-kamera, dörrklocka eller skärm, och du måste ha konfigurerat händelsedetektering.
  • För vissa kamerahändelser kan det krävas en Nest Aware-prenumeration eller en kamera med strömförsörjning via kabel. Ljuddetektering fungerar till exempel bara med Nest Cam (utomhus eller inomhus, med batteri) när kabelanslutning används.
  • Du kan ignorera utlösare utifrån enhetshändelser och enhetslägen så att de inte upprepas under en viss tidsperiod.

Utlösare för enhetsstatus

Använd en device.state-utlösare när du vill att automatiseringen ska baseras på enhetens status. Statusar är egenskaper hos en enhet, till exempel när din termostat når en viss temperatur, om en lampa tänds eller släcks eller när en sensor som stöds når ett visst gränsvärde.
Obs! Du kan ignorera utlösare utifrån enhetshändelser och enhetsstatusar så att de inte upprepas under en viss tidsperiod.
Lägg till statusen för en utlösare för enhetsstatus efter device.state. Om du till exempel vill kontrollera om en enhet är på kan du använda device.state.OnOff.
Om du vill använda en device.state-utlösare börjar du med tre nycklar: type, device och state följt av minst ett nyckel-värdepar för jämförelse.
Nyckel Värde Exempel
type Utlösaren för enhetsstatus, som börjar med device.state device.state.ArmDisarm
device Namn som visas i Google Home-appen med rumsnamn: Device name - Room name Alarm - Front Door
state

Utlösarens fält- eller statusdata som du vill kontrollera.

Hitta utlösaren du vill använda i utvecklarcentret för Google Home för att hitta Fält som stöds eller Statusdata.
isArmed
Tips! Om du vill ta reda på vilka enhetsstatusar som är tillgängliga för din enhet skriver du nyckeln device: och sedan nyckeln type: i skriptet. Autofyll visar en lista över tillgängliga statusar för enheten.

Du kan använda följande nyckel-värdepar för jämförelse med device.state-utlösaren:

Jämförelsenycklar Värdetyper som stöds Exempel
is Sträng | Nummer | Bool | Dynamisk is: on
isNot Sträng | Nummer | Bool | Dynamisk isNot: cast
greaterThan
greaterThanOrEqualTo
Sträng | Nummer | Bool | Dynamisk greaterThan: 1
lessThan
lessThanOrEqualTo
Sträng | Nummer | Bool | Dynamisk lessThan: 10
suppressFor Duration suppressFor: 1hour

Exempel: Starta automatiseringen om volymen på tv:n är mellan 1 och 10.

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

Utlösare för hemstatus

Använd home.state-utlösaren om du vill att skriptet ska starta baserat på om du är hemma eller borta. Detta kan identifieras med närvarodetektering.
Exempel: Starta automatiseringen när du är hemma.
starters:
- type: home.state.HomePresence
  state: homePresenceMode
  is: HOME

Tidsutlösare

Använd en time-utlösare för att starta automatiseringen på specifika dagar och tider. Du kan använda följande nyckel-värdepar för jämförelse med tidsutlösaren:
Jämförelsenycklar Värdetyper som stöds Exempel
before Time before: sunset
after Time after: 7:00 am
weekdays Weekday weekdays: MON

Exempel: Starta automatiseringen på måndagar och tisdagar, 30 minuter efter soluppgången.

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

Så här ignorerar du utlösare

Använd jämförelsenyckeln suppressFor för att instruera automatiseringen att ignorera en utlösare under en viss tid. Exempel: När kameran identifierar någon får du meddelandet ”Någon står vid dörren” och sedan får du inte meddelandet igen på 10 minuter, även om kameran fortfarande identifierar någon.

Exempel: Öppna alla persienner när någon går ut i hallen för första gången på morgonen och ignorera sedan denna utlösare under de närmaste 20 timmarna.

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

Villkor

Villkor är valfria begränsningar för när automatiseringar ska köras. Om du inkluderar villkor körs skriptet bara om villkoren uppfylls. Många utlösare kan också användas som villkor och de kan kombineras med de logiska operatorerna and, or och not för att uttrycka mer komplexa villkorskontroller.
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 det här exemplet finns det ett tidsvillkor och ett device.state-villkor. Detta skript körs om det är mellan solnedgång och soluppgång på en måndag eller tisdag, eller om tv-volymen är mellan 1 och 10.

Du kan använda följande villkorstyper:

Villkorsoperatorer

AND-villkor

När du använder villkoret and körs skriptet endast om samtliga underordnade villkor är uppfyllda.

Exempel: Starta automatiseringen om tv:n är på OCH klockan är mer än 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

OR-villkor

När du använder villkoret or körs skriptet när något av de underordnade villkoren uppfylls.

Exempel: Starta automatiseringen om tv:n är på ELLER klockan är mer än 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

NOT-villkor

När du använder villkoret not kan inte skriptet köras om det underordnade villkoret uppfylls.

Exempel: Starta automatiseringen om klockan inte är mellan 18.00 och 20.00.

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

Villkor för enhetsstatus

Använd ett device.state-villkor om du vill begränsa när skriptet kan ske baserat på en enhets status när skriptet startar. Device.state-villkor liknar device.state-utlösare, men i stället för att ange när skriptet ska startas begränsar de situationer där skriptet kan förekomma.
Lägg till statusen för ett enhetsstatusvillkor efter device.state. Om du till exempel vill kontrollera om en enhet är på kan du använda device.state.OnOff.
Om du vill använda ett device.state-villkor börjar du med tre nycklar: type, device och state följt av minst ett nyckel-värdepar för jämförelse.
Nyckel Värde Exempel
type Villkoret för enhetsstatusen, som börjar med device.state device.state.OnOff
device Namn som visas i Google Home-appen med rumsnamn: Device name - Room name Chromecast – Vardagsrum
state

Utlösarstatusen som du vill kontrollera

Leta reda på villkåret för enhetsstatus som du vill använda i utvecklarcentret för Google Home.

state: on

Tips! Om du vill ta reda på vilka enhetsstatusar som är tillgängliga för din enhet skriver du nyckeln device: och sedan nyckeln type: i skriptet. Autofyll visar en lista över tillgängliga statusar för enheten.

Du kan använda följande nyckel-värdepar för jämförelse med villkoret device.state:

Jämförelsenycklar Värdetyper som stöds Exempel
is Sträng | Nummer | Bool | Dynamisk is: on
isNot Sträng | Nummer | Bool | Dynamisk isNot: cast
greaterThan
moreThanOrEqualTo
Sträng | Nummer | Bool | Dynamisk greaterThan: 1
lessThan
lessThanOrEqualTo
Sträng | Nummer | Bool | Dynamisk lessThan: 10

Exempel: Starta automatiseringen om termostaten upptäcker en luftfuktighet som är högre än 55 %.

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

Villkor för hemstatus

Använd ett home.state.HomePresence-villkor för att begränsa när skriptet kan ske baserat på om någon är hemma eller borta.
Obs! Innan du skapar ett skript med villkoret home.state.HomePresence kontrollerar du att närvarodetektering har ställts in i Google Home-appen och att det fungerar som det ska. Närvaro i hemmet kan avgöras av var i hemmet hushållets telefoner befinner sig, av sensorer som sitter på vissa Nest-enheter eller genom att manuellt byta läge mellan Hemma eller Borta i Google Home-appen.

Läs mer om närvarodetektering och rutinerna Hemma och Borta:

Du kan använda följande nyckel-värdepar för jämförelse med villkoret home.state.HomePresence:
Jämförelsenycklar Värdetyper som stöds Exempel
is String (”HOME” eller ”AWAY”) is: away
isNot String (”HOME” eller ”AWAY”) isNot: HOME
for Duration for: 30min
suppressFor Duration suppressFor: 1hour

Exempel: Villkoret home.state.HomePresence utlöser automatiseringen om din närvaro är inställd på HOME.

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

Tidsvillkor

Använd villkoret time.between för att begränsa när skriptet kan förekomma. Du kan använda följande nyckel-värdepar för jämförelse med villkoret time.between:
Jämförelsenycklar Värdetyper som stöds Exempel
before Time before: sunset
after Time after: 7:00 am
weekdays Weekday weekdays: MON

Exempel: Starta endast automatiseringen på helger före kl. 10.00.

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

Åtgärder

I skriptets åtgärdsavsnitt anger du vad du vill att enheterna ska göra. Om du vill lägga till flera åtgärder listar du varje åtgärd separat och börjar med nyckeln - type: . Skriptet måste ha minst en åtgärd för att köras. De flesta åtgärder börjar med device.command.

Du kan använda följande åtgärdstyper:

Assistent-åtgärder

Använd åtgärden assistant.command med högtalare eller skärmar för att låta assistenten slutföra åtgärder som ”Släck alla lampor” eller ”Berätta vad det är för väder”.

Med Assistent-kommandon kan du styra enheter i olika rum eller för hela hemmet utan att använda specifika enhetsnamn. Detta kan spara tid eftersom framtida enheter som läggs till i Home-appen automatiskt kan använda det här kommandot. För Assistent-kommandon krävs en kompatibel högtalare eller skärm för att utföra åtgärden.

Obs! Om en automatisering startas med ett röstkommando och det finns en Assistent-åtgärd i skriptet sker Assistent-åtgärden på enheten som hör röstkommandot, även om en annan enhet har angetts i skriptet.
Exempel: Använd ”Turn on living room lights” för att tända alla lampor i vardagsrummet.
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn on living room lights
  devices: My Speaker - Room Name 
Exempel: Använd ”Turn off all lights” för att släcka alla lampor i hemmet.
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn off all lights
  devices: My Speaker - Room Name 
Exempel: Du kan spela upp ett meddelande på dina högtalare eller skärmar.
actions:
- type: assistant.command.Broadcast
  devices:
  - My Speaker 1 - Room Name
  - My Speaker 2 - Room Name
  message: It’s dinner time.

Assistent-åtgärder gör det även möjligt att utföra anpassade åtgärder som följande:

  • ”Spela upp Hello av Adele från YouTube Music på högtalaren i sovrummet.”
  • ”Spela upp roliga kattvideor från YouTube på skärmen i vardagsrummet.”
  • ”Vad blir det för väder i morgon?”
  • ”Dra ett skämt.”
  • ”Visa kameran för uppfarten på skärmen i hemmakontoret.”
Obs! Assistent-åtgärder som kräver att Voice Match eller personliga resultat är aktiverade fungerar inte med hushållsautomatiseringar som skapats med skriptredigeraren.

Enhetsåtgärder

Styr eller justera en enhet med hjälp av åtgärden device.command. Varje åtgärdskommando har sin egen uppsättning egenskaper och struktur. Du kan lägga till kommandon i skriptet genom att lägga till kommandoåtgärden för en enhet efter device.command. Om du till exempel vill aktivera en enhet kan du använda device.command.OnOff. En device.command-åtgärd måste innehålla följande information:
Nyckel Värde Exempel
type Enhetsåtgärden, som börjar med device.command. device.command.OpenClose
devices Namn på enheten som visas i Google Home-appen med rumsnamn: Enhetsnamn – Rumsnamn. Om du vill lägga till flera enheter skapar du en lista. Blinds - Bedroom

Tips! Om du vill ta reda på vilka åtgärder eller kommandon som är tillgängliga för enheten anger du först nyckeln device: och sedan nyckeln type:. Autoslutförande visar då en lista över åtgärder som är tillgängliga för enheten.

Många device.command-åtgärder har ytterligare nycklar som anger inmatningen som behövs för kommandot. För device.command.ThermostatTemperatureSetpoint krävs till exempel ett nyckel-värdepar för thermostatTemperatureSetpoint som talar om för termostaten vilken ny temperatur som ska ställas in.

Om du vill veta mer om hur du använder kommandon hittar du den relaterade åtgärden i utvecklarcentret för Google Home och följer strukturen för åtgärden du vill använda.

Exempel: Slå på tv:n i vardagsrummet.

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

Exempel: Tänd en lampa och släck den efter fem minuter.

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

Åtgärder för aviseringar

Använd åtgärden home.command.Notification om du vill att skriptet ska skicka aviseringar till mobil enheter för medlemmar i hemmet. Du kan till exempel få aviseringar när apparater som är anslutna till smarta kontakter stängs av eller blir offline.

actions:
- type: home.command.Notification
  members:
  - Alex - [email protected]
  - Kim - [email protected]
  title: It’s movie time!
  body: Join me in the living room
 

Tidsåtgärder

Använd åtgärden time.delay om du vill att skriptet ska vänta en vangiven tid mellan två åtgärder i listan i stället för att utföra alla åtgärder samtidigt. Du kan lägga till flera fördröjningar i skriptet. Du kan till exempel se till att skriptet väntar i tio sekunder mellan varje åtgärd.
Exempel: Tänd lamporna och släck dem efter 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

Resurser

Öva på att skriva ett skript

Vi börjar med att skapa en mycket enkel, men vanlig, automatisering: ”Släck lamporna när tv:n slås på”.

Obs! Om du inte har någon streamingenhet, några smarta lampor eller liknande enheter kan du fortfarande följa stegen för att förstå skriptprocessen, men skriptet körs inte i slutet.
  1. Öppna home.google.com/automations och logga in på ditt konto.
  2. Klicka på Lägg till ny .
  3. Fyll i metadata. I det här skriptet är namnet = TV on lights off och beskrivningen = Turn off lights when TV turns on. Kontrollera att du har formaterat skriptet korrekt.
    metadata:
      name: TV on lights off
      description: Turn off lights when TV turns on.
  4. För att lägga till utlösare skapar du en ny rad, gör ett indrag med två blanksteg eller en Tabb och anger starters: . Gör sedan ett nytt indrag på nästa rad och ange - type: .
    Tips!
    • Skapa en ny rad genom att trycka på Skift Retur.
    • Om du inkluderar flera utlösare ska varje utlösare börja med ett bindestreck och ett blanksteg.
metadata:
  name:  TV on lights off
  description:  Turn off lights when TV turns on
automations:
  starters:
  - type:
Obs! Skriptredigeraren hjälper dig med strukturen genom att ge förslag på autoslutförande baserat på tillgängliga utlösare. Välj bland förslagen genom att använda piltangenterna på tangentbordet och tryck sedan på Retur för att infoga det.
  1. Lägg till utlösaren device.state. Kom ihåg att du behöver tre nycklar för att använda device.state-utlösaren: type, device och state, följt av minst ett nyckel-värdepar för jämförelse. Skriptredigeraren hjälper dig med strukturen genom att ge förslag på autoslutförande baserat på tillgängliga utlösare, villkor och åtgärder. I det här skriptet:
    • Type = device.state.OnOff. Det här är enhetens status som utvärderas för att starta automatiseringen.
    • Device = Chromecast - Living Room. Det här är namnet på enheten så som det visas i Google Home-appen.
    • State = on. On är fältet som stöds eller statusdata för OnOff-enhetsstatusen.
    • The comparison key-value pair = is: true. Värdet för denna jämförelsenyckel är en primitiv datatyp. Skriptet körs om tv:n är 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

      Som jämförelse tar vi en titt på ett liknande skript med en annan utlösare. I skriptet nedan startar automatiseringen när volymen är mellan 1 och 10, snarare än när tv:n slås på. För att göra den här ändringen ersatte vi statusen OnOff med Volume och ändrade statusen till currentVolume för att matcha det nya attributet. Vi ändrade även nyckel-värdeparen för jämförelse till två kapslade par som skapar ett intervall: greaterThan: 1 och lessThan: 10. Här finns en fullständig lista över utlösare som du kan använda.

      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 klicka på Spara för att spara skriptet. När du sparar ett skript validerar skriptredigeraren automatiskt skriptet och letar efter fel. Ett ogiltigt skript kan inte köras.
  3. Lägg nu till en åtgärd i skriptet. För att lägga till åtgärder skapar du en ny rad, gör ett indrag med två blanksteg eller en Tabb och anger actions: . Gör sedan ett nytt indrag på nästa rad och ange - type .
    Tips!
    • Skapa en ny rad genom att trycka på Skift Retur.
    • Om du inkluderar ytterligare åtgärder ska varje åtgärd börja med ett bindestreck och ett blanksteg.
    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. Vi använder åtgärden device.command för att släcka lamporna. För att använda åtgärden device.command inkluderar vi följande information:
    • Type = device.command.OnOff. Det här är namnet på kommandot eller åtgärden.
      Obs! Kommandon kan ha flera kapslade kommandon under dina enheter och varje kommando har sin egen status.
    • Devices = en lista med Floor Lamp - Living Room och Overhead Light - Living Room. Det här är namnen på våra lampor, så som de visas i Google Home-appen. Vi har angett flera lampor på separata rader och var och en börjar med ett bindestreck.
    • Kommandots önskade status = on: false. Den här raden säger till våra lampor att släckas.
      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. Klicka på Spara för att spara skriptet. Om det inte finns några fel aktiveras skriptet automatiskt. Lampan släcks när tv:n slås på. Om du inte vill att skriptet ska köras ännu kan du pausa skriptet genom att inaktivera Aktivera.

Om du vill öva mer kan du testa att ändra skriptet så att det använder olika utlösare, datatyper, flera åtgärder eller ytterligare villkor som time.between. Du kan även titta på exempelskript och kolla in codelab. Detaljerad information om utlösare, åtgärder och villkor finns i utvecklarcentret för Google Home.

Hjälp med automatiseringsskript

  • Få hjälp med skript och ta reda på vad andra gör i communityn för hemautomatisering med Google Home.
  • För att automatiseringar ska fungera måste skripten bestå av giltig kod. Om det finns ett fel visas ett meddelande. Läs mer om fel och varningar i skriptredigeraren.
  • Validera koden genom att klicka eller trycka på Validera i skriptredigeraren eller försöka spara skriptet. Här är några vanliga fel:
  • Om skriptet sparas men automatiseringen inte fungerar som förväntat kontrollerar du manuellt att varje komponent i skriptet fungerar. Om du till exempel skrev ett skript för att tända lampan och ändra ljusstyrkan vid solnedgången kan du prova att utföra dessa uppgifter med ett assistentkommando för att bekräfta att varje enskild funktion fungerar. Du kan också kontrollera att
    • enheten läggs till eller länkas i Google Home-appen
    • enheten är ansluten och online
    • enhetens namn, utlösare, villkor och åtgärder är korrekt angivna
      Obs! Tillverkare kan ändra enheters egenskaper när de utför uppdateringar, vilket kan leda till att skript slutar fungera. Du kan använda autoslutförande för att uppdatera berörda skript.
    • skriptet har korrekt indrag och formatering.
  • Med Google Home för webben kan du även komma åt automatiseringsloggar under skriptet för att kontrollera automatiseringens historik och identifiera potentiella problem. Läs mer om typer av meddelanden som visas i automatiseringsloggarna.
  • Testa att beskriva önskad automatisering med skriptredigerarens experimentella generativa AI-funktion. Då skapas ett skript som du kan granska och redigera.
  • Läs mer om grunderna i rutiner och hur du felsöker dem.
  • Läs mer om hur du skapar och redigerar automatiseringar med skript.

Var det här till hjälp?

Hur kan vi förbättra den?
Sök
Rensa sökning
Stäng sökrutan
Huvudmeny
6001500266568103926
true
Sök i hjälpcentret
true
true
true
true
true
1633396
false
false
false
false