Ohjelmoitujen automaatioiden kirjoittaminen skriptieditorilla

Skriptieditorilla voit kirjoittaa omia automaatioita ja luoda kodin ohjelmia Google Homen verkkoversiolla tai Google Home ‐sovelluksella. Skriptattujen automaatioiden kirjoittaminen edellyttää, että tunnet muutamia YAML-koodauskielen perusteita, osaat strukturoida skriptin ja tiedät, miten käyttää skriptin muodostavia komponentteja.

Skriptieditori on tällä hetkellä saatavilla julkisessa ennakkoversiossa. Voit käyttää skriptieditoria Google Homen verkkoversiossa tai Google Home ‐mobiilisovelluksessa, kun olet liittynyt julkiseen ennakkoversioon.

Lue lisää automaatioiden luomisesta skriptieditorilla: Siirry koodauslabraan
Tärkeää: Kaikki kodin jäsenet voivat tarkistaa, milloin automaatiot käynnistyvät. Automaatiot on tarkoitettu vain helpottamaan elämää, ei turvallisuuden tai tietoturvan kannalta kriittisiin käyttötapauksiin. Älä luo automaatioita, jotka voivat aiheuttaa loukkaantumisen tai vahinkoa, jos ne eivät käynnisty tai pysähdy. Automaatiot tarvitsevat toimivan internetyhteyden, Wi-Fi-yhteyden ja palvelut. Tämä koskee sekä Googlen että niiden kolmansien osapuolten palveluita, jotka ovat valmistaneet automaatioihin kuuluvat laitteet. Automaatiot eivät välttämättä toimi aina, eikä Google ole vastuussa vahingoista tai menetyksistä, jotka johtuvat automaatioiden virheistä.

YAML-koodauskielen perusteet

Skriptieditorissa käytetään YAML:ää. Se on joustava koodauskieli, jonka avulla voit kirjoittaa rivi kerrallaan ohjeita tehtäviin, joita haluat laitteiden tekevän, sekä niiden tekemisajat. Ohjeet kirjoitetaan avain-arvo-parien muodossa.

Avain-arvo-parit

YAML-koodi kirjoitetaan avain-arvo-parien sarjana:

name: TV on lights off

Tässä esimerkissä avain = name ja arvo = TV on lights off.

Avain on sen elementin avainsana, jota haluat käyttää. Jokaisen avaimen on oltava yksilöllinen, mutta avainten järjestyksellä ei ole merkitystä. Kukin avain-arvo-pari alkaa uudella rivillä.

Avaimeen liittyvä arvo voi olla useiden eri datatyyppien muodossa.

Datatyypit

Primitiivit

Primitiivinen datatyyppi sisältää kaikki skriptieditorin tukemat perusdatatyypit.

Primitiivimuodot Arvotyypit
Totuusarvo
  • true
  • false
Numero Kokonaisluku tai desimaaliluku
Merkkijono

Pelkkä teksti

Merkkijonoarvojen ympärillä on oltava lainausmerkit vain, jos niiden alussa on [, {, ", ', tai # tai merkkijono sisältää kaksoispisteen ja sen jälkeen yhden tai kaksi välilyöntiä. Lainausmerkkien on vastattava toisiaan. Voit käyttää esimerkiksi näitä: " " tai ‘ ‘, mutta et näitä:" ‘.

Päivämäärä

Kuukausi ja päivä. Muoto on KK-PP tai KK/PP.

  • 09/01
  • 09-01
Aika

Aika voi olla joko 12 tai 24 tunnin kellon muodossa. Sekunnit ovat valinnaisia. Voit myös käyttää aikaa suhteessa auringonvaloon. Voit esimerkiksi käyttää avainsanoja sunrise ja sunset ja sen jälkeen kestoa.

  • 12:30 am
  • 13:00:01
  • sunrise / sunset
  • sunset+30min / sunset-1hour
Päivämäärä ja aika

Vuosi, kuukausi, päivä ja vuorokaudenaika.

Päivämäärän ja kellonajan välissä on oltava välilyönti.

Päivämäärän muoto on VVVV-KK-PP tai VVVV/KK/PP. Ajan esitystapa on sama kuin yllä oleva aika. Aikavyöhykkeitä ei tueta.

  • 2022/01/01 14:00
  • 2022-12-31 sunrise+30min
Viikonpäivä
  • MON tai MONDAY
  • TUE tai TUESDAY
  • WED tai WEDNESDAY
  • THU tai THURSDAY
  • FRI tai FRIDAY
  • SAT tai SATURDAY
  • SUN tai SUNDAY
Kesto

Aikaväli.

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

Väriheksadesimaali

Väriä edustava kuusinumeroinen heksadesimaalikoodi. #-merkkiä ei ole alussa.

  • FFFFFF
  • B5D2A1
  • DFA100
Lämpötila

Lämpötiladata. Lisää aina C tai F merkitsemään Celsius- tai Fahrenheit-arvoa.

  • 20.5C
  • 90F
Värilämpötila

Värilämpötila kelvineinä.

  • 5000K

Rakenteet: Sisäkkäiset avain-arvo-parit

Rakenteen datatyyppi on lohko- tai datarakenne, joka sisältää useita avain-arvo-pareja. Nämä avain-arvo-parit ovat sisäkkäin yksittäisen ylätason avaimen alla. Kukin sisäkkäistaso on sisennetty samalla määrällä välilyöntejä tai sarkaimia hierarkian ilmaisemiseksi.

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

Tässä esimerkissä ylätason avain = actions. Actions-arvo on kaksi sisäkkäistä avain-arvo-paria:

  • Pari 1: alatason avain = device; arvo = Light B - Living room
  • Pari 2: alatason avain = state; arvo = on

Listat: Avaimet, joilla on useita arvoja

Jos haluat lisätä useita arvoja yhdellä avaimella, luo lista, jossa jokaista kohtaa edeltää yhdysmerkki. Listassa voidaan käyttää joko rakenteen tai primitiivisen datatyypin arvoja, mutta ei molempia samanaikaisesti.

weekdays:
- MONDAY
- THURSDAY

Tässä esimerkissä avain = weekdays ja arvo = lista, joka sisältää arvot Monday ja Thursday.

Edistyneet rakenteet: yhdistetyt sisäkkäiset parit ja listat

Jos kyseessä on monimutkaisempi automaatio, arvo voi olla lista, joka sisältää useita sisäkkäisiä avain-arvo-pareja.
starters:
- type: time.schedule
  at: 10:00 am
  weekdays:
  - MONDAY
  - THURSDAY
- type: time.schedule
  at: SUNSET
  weekdays:
  - MONDAY
  - THURSDAY

Tässä esimerkissä ylätason avain = starters. Tämän ylätason avaimen arvo = lista, jossa jokainen kohta sisältää useita avain-arvo-pareja.

Jotkin avaintyypit edellyttävät, että arvot ovat tietyssä muodossa. Toiset avaimet perivät ominaisuuksia laitteen ominaisuuksien perusteella. Lue lisää tiettyjen käynnistimien, ehtojen ja toimintojen rakenteesta.

YAML-kielen syntaksi

Kun kirjoitat ohjelmoituja ohjelmia, käytä näitä muotoilukonsepteja:

Konsepti Esimerkki

Kaksoispiste

YAML-kielessä käytetään avaimen ja sen arvon erottamiseen kaksoispistettä :, jota seuraa välilyönti.

state: on

Sisennys

Sisennys ilmaisee rakennetta ja hierarkiaa sekä määrittää sisäkkäiset avain-arvo-parit.

Tässä esimerkissä ylätason avain = metadata. Avaimet name ja description ovat alatason avaimia, jotka ovat sisäkkäin ylätason "metadata"-avaimen alla. Kukin sisäkkäinen avain on sisennetty kahdella välilyönnillä tai yhdellä sarkaimella hierarkian ilmaisemiseksi.

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

Yhdysmerkki

Yhdysmerkki, jonka jälkeen tulee välilyönti, määrittelee listakohteen.
weekdays:
- MONDAY
- THURSDAY

Kommentit

Voit lisätä kommentteja tai muistiinpanoja skriptiin käyttämällä risuaitamerkkiä #. Automaatiomoottori ohittaa kommentit, eivätkä ne vaikuta automaatioosi.
# This is a comment. It will be ignored.

Skriptieditorin malli

Kun luot uuden automaation, skriptieditori tarjoaa tyhjän mallin, jolla skripti voidaan kirjoittaa. Sen rakenne on tämä:

metadata sisältää automaation nimen ja kuvauksen
automations määrittää automaation toiminnan
starters määrittää triggerit, jotka käynnistävät automaation
condition määrittelee ehdot, milloin automaation pitäisi toimia (valinnainen)
actions määrittää automaatiossa tapahtuvat toiminnot

Malli on jaettu kahteen päälohkoon: metadataan ja automaatioihin (automations). Automaatiot jaetaan sitten tarkemmin käynnistimiin (starters), ehtoihin (conditions) ja toimintoihin (actions).

Metadatan ja automaatioiden lohkot

Skriptieditorin malli sisältää kaksi ylätason avainta eli lohkoa: metadata ja automations.

Metadata-lohko sisältää automaation nimen ja kuvauksen. Tätä käytetään vain automaation tunnistamiseen.

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

Automations-lohko on automaatioskriptin ydin. Siellä voit määritellä automaation käyttäytymisen käynnistimillä, ehdoilla ja toiminnoilla.

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

Jos haluat ymmärtää skriptieditorin käyttöä paremmin, avaa koodauslabra, katso esimerkkiskriptejä tai katso, miten voit muotoilla yksittäisiä käynnistimiä, ehtoja ja toimintoja Google Home ‐kehittäjäkeskuksessa.

Automaattinen täydennys

Skriptieditori auttaa skriptin kirjoittamisessa tarjoamalla automaattisia täydennysehdotuksia saatavilla olevien käynnistimien, ehtojen ja toimintojen perusteella seuraavissa tapauksissa:

  • Kohdistin on sellaisessa kohdassa, jossa on kelvollisia vaihtoehtoja. Esimerkki: - type: ‑kohdan jälkeen.
    • Kirjoitat koodia, johon on kelvollisia ehdotuksia. Näet ehdotuslistan kirjoittaessasi.

Aloitat automaattisen täydennyksen manuaalisesti painamalla Ctrl+välilyönti.

Valitse ehdotus listalta painamalla Enter. Automaattinen täydennys täyttää lisäkentät valitsemasi rakenteen mukaan.

Vinkki: Automaattisen täydennyksen avulla voit tarkistaa, mitkä laitteen tilat tai komennot ovat käytettävissä laitteellasi ja mitkä laitteet ovat käytettävissä tietyn tilan tai komennon yhteydessä.

Jos haluat nähdä, mitkä laitteen tilat tai komennot ovat käytettävissä laitteellasi, kirjoita skriptin kirjoittamisen aikana device: ‑avain ensin ja sitten type: ‑avain. Automaattinen täydennysominaisuus näyttää sinulle kyseiselle laitteelle saatavilla olevat tilat ja komennot.

Esimerkki

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

Jos haluat selvittää, mitkä laitteet ovat käytettävissä tietyn tilan tai komennon yhteydessä, kirjoita ensin type: ‑avain ja sitten device: ‑avain. Automaattinen täydennysominaisuus näyttää listan kotisi laitteista, jotka tukevat tätä tilaa tai komentoa.

Esimerkki

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

Käynnistimet, ehdot ja toiminnot

Automaatiot koostuvat käynnistimistä, ehdoista ja toiminnoista. Nämä osat määrittelevät automaation toiminnan.

Jotkin käynnistimet, ehdot ja toiminnot edellyttävät tietyntyyppistä vertailuavain-arvo-paria, jotta automaatiologiikka voidaan viimeistellä ja skripti tietää, mitä haluat arvioida. Arvon on oltava yhteensopiva datatyyppi. Esimerkiksi valon on-tila voi olla joko true tai false. Jos haluat käynnistää automaation, kun valo on päällä, tee näin:

state: on
is: true

Alla on lisätietoa saatavilla olevista käynnistimistä, ehdoista ja toiminnoista. Käynnistimien, ehtojen ja toimintojen täysi lista löytyy Google Home ‐kehittäjäkeskuksesta.

Käynnistimet

Skriptin käynnistinosiossa määrität, mikä käynnistää skriptin. Käynnistimet perustuvat laitteesi mahdollisiin toimintoihin tai muutettaviin ominaisuuksiin, esimerkiksi laitteen tiloihin, aikaan ja laitetapahtumiin. Voit esimerkiksi käyttää hehkulamppua, jonka mahdolliset tilat ovat OnOff, Brightness ja ColorSetting. Jos haluat lisätä useita käynnistimiä, kirjoita kunkin käynnistimen alkuun avain " - type: ". Skriptin on täytettävä vähintään yksi käynnistinehto, jotta se voidaan suorittaa.

Katso tuettujen käynnistimien täysi lista.

Käynnistintyypit

Assistantin käynnistimet

Aloita skripti assistant.command-käynnistimen avulla, jolloin Assistantin sisältävä laite aktivoituu, kun se kuulee "Hey Google" -komennon.
Jos automaatio käynnistetään äänikomennolla ja skriptissä on Assistant-toiminto, Assistant-toiminto tapahtuu laitteella, joka kuulee äänikomennon, vaikka skriptissä olisi määritetty toinen laite.
Esimerkki: Aloita automaatio, kun joku sanoo "Hey Google, party time".
starters:
- type: assistant.command.OkGoogle
  eventData: query
  is: party time

Laitteen tapahtumien käynnistimet

Käytä device.event-käynnistintä, kun haluat käynnistää skriptin tietyn tapahtuman aikana, esimerkiksi kun ovikello soi tai anturi havaitsee jotain.

Vinkki: Kaikkia tapahtumia ei tueta.

Esimerkki: Käynnistä automaatio, kun joku soittaa ovikelloa.
starters:
- type: device.event.DoorbellPress
  device: Doorbell - Front door
Esimerkki: Käynnistä automaatio, kun kamera havaitsee henkilön.
starters:
- type: device.event.PersonDetection
  device: Camera - Backyard 

Esimerkki: Käynnistä automaatio, kun kamera havaitsee liikettä.

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

Vinkkejä:

  • Kameratapahtumat edellyttävät yhteensopivaa Nest-kameraa, ‐ovikelloa tai ‐näyttöä ja tapahtumien tunnistuksen käyttöönottoa.
  • Jotkin kameratapahtumat voivat edellyttää Google Home Premium ‐tilausta tai johdollista kameraa. Esimerkiksi äänentunnistus toimii Nest Camilla (ulko- tai sisäkäyttöön, akkukäyttöinen) vain sähköverkkoon asennettuna.
  • Voit estää laitetapahtumiin ja ‑tiloihin perustuvia käynnistimiä käynnistymästä tiettyyn aikaan.

Laitteen tilan käynnistimet

Käytä device.state-käynnistintä, jos haluat automaation käynnistyvän laitteen tilan perusteella. Tilat ovat laitteen ominaisuuksia, esimerkiksi kun termostaatin lämpötila saavuttaa tietyn lämpötilan, valo syttyy tai sammuu tai kun tuettu anturi saavuttaa määritetyn rajan.
Lisää laitteen tilan käynnistimen tila kohdan device.state jälkeen. Voit esimerkiksi tarkistaa, onko laite päällä, komennolla device.state.OnOff.
Jos haluat käyttää device.state-käynnistintä, aloita kolmella avaimella: type, device ja state. Lisää sen jälkeen vähintään yksi vertailuavain-arvo-pari.
Avain Arvo Esimerkki
type Laitteen tilan käynnistin, jonka alussa on device.state device.state.ArmDisarm
device Nimi, joka näkyy Google Home ‐sovelluksessa huoneen nimen kanssa: Device name - Room name Alarm - Front Door
state

Käynnistimen kenttä- tai tiladata, jonka haluat tarkistaa.

Etsi käynnistin, jota haluat käyttää, Google Home ‐kehittäjäkeskuksesta löytääksesi "tuetut kentät" tai "tiladatan".
isArmed
Vinkki: Jos haluat nähdä, mitkä laitetilat ovat käytettävissä laitteellasi, lisää skriptiin ensin "device: "‑avain ja sitten "type: "‑avain. Automaattinen täydennys näyttää tilat, jotka ovat käytettävissä kyseisellä laitteella.

Voit käyttää seuraavia avain-arvo-pareja device.state-käynnistimen kanssa:

Vertailuavaimet Tuetut arvotyypit Esimerkki
is Merkkijono | Numero | Totuusarvo | Dynaaminen is: on
isNot Merkkijono | Numero | Totuusarvo | Dynaaminen isNot: cast
greaterThan
greaterThanOrEqualTo
Merkkijono | Numero | Totuusarvo | Dynaaminen greaterThan: 1
lessThan
lessThanOrEqualTo
Merkkijono | Numero | Totuusarvo | Dynaaminen lessThan: 10
suppressFor Kesto suppressFor: 1hour

Esimerkki: Aloita automaatio, jos televisiosi äänenvoimakkuus on 1–10.

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

Kodin tilan käynnistimet

Käytä home.state-käynnistintä, jos haluat skriptin käynnistyvän sen perusteella, oletko kotona vai muualla. Tämä voidaan havaita paikallaolotunnistimella.
Esimerkki: Aloita automaatio, kun olet kotona.
starters:
- type: home.state.HomePresence
  state: homePresenceMode
  is: HOME

Aikakäynnistimet

Käytä time-käynnistintä, jos haluat käynnistää automaation tiettyinä päivinä ja kellonaikoina. Voit käyttää seuraavia vertailuavain-arvo-pareja aikakäynnistimen kanssa:
Vertailuavaimet Tuetut arvotyypit Esimerkki
before Aika before: sunset
after Aika after: 7:00 am
weekdays Viikonpäivä weekdays: MON

Esimerkki: Aloita automaatio maanantaisin ja tiistaisin 30 minuuttia auringonnousun jälkeen.

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

Käynnistimien estäminen

Vertailuavaimen suppressFor avulla voit määrittää automaation ohittamaan käynnistimen tietyn aikaa. Kun kamera esimerkiksi havaitsee jonkun ja ilmoittaa "Someone is at the door", voit määrittää, että kamera ei tämän jälkeen tee ilmoitusta uudelleen 10 minuuttiin, vaikka se edelleen havaitsisi jonkun.

Esimerkki: Kun joku kävelee aamulla käytävässä ensimmäistä kertaa, avaa kaikki kaihtimet ja estä tämä käynnistin seuraavat 20 tuntia.

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

Ehdot

Ehdot ovat valinnaisia rajoituksia automaatioiden käytölle. Jos lisäät ehtoja, skripti suoritetaan vain, jos ehdot täyttyvät. Useita käynnistimiä voidaan käyttää myös ehtoina, ja niitä voidaan yhdistää loogisiin operaattoreihin and, or ja not ilmaistaessa monimutkaisempia ehtotarkistuksia.
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

Tässä esimerkissä on yksi aikaehto ja yksi device.state-ehto. Tämä skripti suoritetaan vain maanantaina ja tiistaina auringonlaskun ja auringonnousun välillä tai jos TV:n äänenvoimakkuus on 1–10.

Voit käyttää seuraavia ehtotyyppejä:

Ehto-operaattorit

AND-ehto

Kun käytät and-ehtoa, skripti suoritetaan vain, jos kaikki alatason ehdot täyttyvät.

Esimerkki: Käynnistä automaatio, jos TV on päällä JA kellonaika on 18.00 jälkeen.

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

OR-ehto

Kun käytät or-ehtoa, skripti suoritetaan, kun jokin alatason ehdoista täyttyy.

Esimerkki: Käynnistä automaatio, jos TV on päällä TAI kellonaika on 18.00 jälkeen.

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

NOT-ehto

Kun käytät not-ehtoa, skriptiä ei voi suorittaa, jos alatason ehto täyttyy.

Esimerkki: Käynnistä automaatio, jos kellonaika ei ole 18–20.

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

Laitteen tilan ehdot

Käytä device.state-ehtoa, jos haluat rajoittaa skriptin alkamista laitteen tilan perusteella skriptin alkamisen aikaan. Device.state-ehdot muistuttavat device.state-käynnistimiä, paitsi skriptin käynnistyksen sijaan ne rajoittavat tilanteita, jolloin skripti voi käynnistyä.
Lisää laitteen tilan ehdon tila device.state-kohdan jälkeen. Voit esimerkiksi tarkistaa, onko laite päällä, komennolla device.state.OnOff.
Jos haluat käyttää device.state-ehtoa, aloita kolmella avaimella: type, device ja state. Lisää sen jälkeen vähintään yksi vertailuavain-arvo-pari.
Avain Arvo Esimerkki
type Laitteen tilan ehto, jonka alussa on device.state device.state.OnOff
device Nimi, joka näkyy Google Home ‐sovelluksessa huoneen nimen kanssa: Device name - Room name Chromecast - Living Room
state

Käynnistintila, jonka haluat tarkistaa.

Etsi laitteen tilan ehto, jota haluat käyttää, Google Home ‐kehittäjäkeskuksesta.

state: on

Vinkki: Jos haluat nähdä, mitkä laitetilat ovat käytettävissä laitteellasi, lisää skriptiin ensin device: ‑avain ja sitten type: ‑avain. Automaattinen täydennys näyttää tilat, jotka ovat käytettävissä kyseisellä laitteella.

Voit käyttää seuraavia avain-arvo-pareja device.state-ehdon kanssa:

Vertailuavaimet Tuetut arvotyypit Esimerkki
is Merkkijono | Numero | Totuusarvo | Dynaaminen is: on
isNot Merkkijono | Numero | Totuusarvo | Dynaaminen isNot: cast
greaterThan
greaterThanOrEqualTo
Merkkijono | Numero | Totuusarvo | Dynaaminen greaterThan: 1
lessThan
lessThanOrEqualTo
Merkkijono | Numero | Totuusarvo | Dynaaminen lessThan: 10

Esimerkki: Käynnistä automaatio, jos termostaatti havaitsee kosteustason olevan yli 55 %.

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

Kodin tilan ehdot

Käytä home.state.HomePresence-ehtoa, jos haluat rajoittaa skriptin alkamista sen perusteella, onko joku kotona vai poissa.
Ennen kuin luot skriptin, joka käyttää home.state.HomePresence-ehtoa, varmista, että olet ottanut paikallaolotunnistimen käyttöön Google Home ‐sovelluksessa ja että paikallaolotunnistin toimii odotetulla tavalla. Kodissa paikallaolo voidaan määrittää kotitalouden puhelimien sijainnin ja joidenkin Nest-laitteiden antureiden avulla tai vaihtamalla Kotona- tai Poissa-tilan manuaalisesti Google Home ‐sovelluksessa.

Lue lisää paikallaolotunnistimesta sekä Kotona- ja Poissa-ohjelmista:

Voit käyttää seuraavia vertailuavain-arvo-pareja home.state.HomePresence-ehdon kanssa:
Vertailuavaimet Tuetut arvotyypit Esimerkki
is Merkkijono ("HOME" tai "AWAY") is: away
isNot Merkkijono ("HOME" tai "AWAY") isNot: HOME
for Kesto for: 30min
suppressFor Kesto suppressFor: 1hour

Esimerkki: home.state.HomePresence-ehto käynnistää automaation, jos paikallaolosi arvo on HOME.

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

Aikaehdot

Käytä time.between-ehtoa, jos haluat rajoittaa, milloin skripti voi käynnistyä. Voit käyttää seuraavia vertailuavain-arvo-pareja time.between-ehdon kanssa:
Vertailuavaimet Tuetut arvotyypit Esimerkki
before Aika before: sunset
after Aika after: 7:00 am
weekdays Viikonpäivä weekdays: MON

Esimerkki: Aloita automaatio vain viikonloppuisin ennen klo 10.

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

Toiminnot

Skriptin toiminto-osiossa voit luetella, mitä haluat laitteiden tekevän. Jos haluat lisätä useita toimintoja, kirjoita kunkin toiminnon alkuun avain - type: . Skriptissä on oltava vähintään yksi toiminto, jotta se voidaan suorittaa. Useimpien toimintojen alussa on device.command.

Voit käyttää seuraavia toimintotyyppejä:

Assistantin toiminnot

Kun käytät assistant.command-toimintoa kaiuttimilla tai näytöllä, voit pyytää Assistantia suorittamaan toimintoja, esim. "Turn off all lights" tai "Tell me the weather".

Assistantin komennoilla voit ohjata laitteita huoneittain tai koko kodissa käyttämättä laitteiden nimiä. Tämä voi säästää aikaa, koska Home-sovellukseen lisätyt laitteet voivat toimia automaattisesti tämän komennon kanssa. Assistantin komennot edellyttävät yhteensopivaa kaiutinta tai näyttöä toiminnon suorittamiseen.

Jos automaatio käynnistetään äänikomennolla ja skriptissä on Assistant-toiminto, Assistant-toiminto tapahtuu laitteella, joka kuulee äänikomennon, vaikka skriptissä olisi määritetty toinen laite.
Esimerkki: Laita kaikki olohuoneen valot päälle komennolla "Turn on living room lights".
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn on living room lights
  devices: My Speaker - Room Name 
Esimerkki: Sammuta kaikki kotisi valot komennolla "Turn off all lights".
actions:
- type: assistant.command.OkGoogle
  okGoogle: Turn off all lights
  devices: My Speaker - Room Name 
Esimerkki: Voit pyytää kaiuttimia tai näyttöjä antamaan ilmoituksen.
actions:
- type: assistant.command.Broadcast
  devices:
  - My Speaker 1 - Room Name
  - My Speaker 2 - Room Name
  message: It’s dinner time.

Voit myös tehdä omia toimintoja Assistantin avulla.

  • "Play Hello by Adele from YouTube Music on bedroom speaker"
  • "Play funny cat videos from YouTube on Living Room Display"
  • "What's the weather like tomorrow?"
  • "Tell me a joke"
  • "Show me the driveway camera on home office display"
Assistantin toiminnot eivät toimi skriptieditorilla luoduissa kodin automaatioissa, jos ne edellyttävät, että Voice Match tai henkilökohtaiset tulokset ovat päällä.

Laitteen toiminnot

Käytä device.command-toimintoa laitteen hallinnointiin tai säätämiseen. Jokaisella toimintokomennolla on omat ominaisuutensa ja rakenteensa. Voit lisätä skriptiin komentoja lisäämällä laitteelle komentotoiminnon device.command-kohdan jälkeen. Voit esimerkiksi käynnistää laitteen komennolla device.command.OnOff. Device.command-toiminnon on sisällettävä seuraavat tiedot:
Avain Arvo Esimerkki
type Laitteen toiminto, jonka alussa on device.command device.command.OpenClose
devices Laitteen nimi, joka näkyy Google Home ‐sovelluksessa huoneen nimen kanssa: Device name - Room name. Jos haluat lisätä useita laitteita, luo lista. Blinds - Bedroom

Vinkki: Jos haluat nähdä, mitkä toiminnot tai komennot ovat käytettävissä laitteellasi, lisää ensin "device:"-avain ja sitten "type:"-avain, jonka jälkeen automaattinen täydennys näyttää kaikki kyseiselle laitteelle käytettävissä olevat toiminnot.

Monissa device.command-toiminnoissa on lisäavaimia, jotka määrittävät komennon pakollisen syötteen. Esimerkiksi device.command.ThermostatTemperatureSetpoint edellyttää thermostatTemperatureSetpoint-avain-arvo-paria, joka kertoo termostaatille uuden lämpötilan, jonka haluat sille asettaa.

Saat lisätietoja komentojen käyttämisestä etsimällä samankaltaisen toiminnon Google Home ‑kehittäjäkeskuksesta ja seuraamalla haluamasi toiminnon rakennetta.

Esimerkki: Käynnistä olohuoneen TV.

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

Esimerkki: Laita valo päälle ja sammuta se viiden minuutin kuluttua.

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

Ilmoitustoiminnot

Kun käytät home.command.Notification-toimintoa, skripti voi lähettää ilmoituksia kodin jäsenten mobiililaitteisiin. Voit esimerkiksi saada ilmoituksia, kun älypistokkeisiin yhdistetyt laitteet sammuvat tai siirtyvät offline-tilaan.

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

Aikatoiminnot

Käytä time.delay-toimintoa, jos haluat, että skripti odottaa jonkin aikaa listan kahden toiminnon välillä sen sijaan, että se suorittaisi kaikki toiminnot kerralla. Voit lisätä skriptiin useita viiveitä. Voit esimerkiksi antaa skriptin odottaa 10 sekuntia kunkin toiminnon välillä.
Esimerkki: Sytytä valot ja sammuta ne 30 sekunnin viiveen jälkeen.
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

Lisätietoa

Skriptin kirjoittamisen harjoittelu

Luomme aluksi erittäin yksinkertaisen mutta suositun automaation: "Sammuta valot TV:n käynnistyessä".

Jos sinulla ei ole striimauslaitetta, älyvaloja tai tämänkaltaisia laitteita, voit silti seurata mukana ymmärtääksesi skriptiprosessia (et vain pysty testaamaan skriptiä).
  1. Siirry osoitteeseen home.google.com/automations ja kirjaudu tilillesi.
  2. Valitse Lisää uusi Lisää-kuvake.
  3. Täytä metadatatiedot. Tässä skriptissä nimi = TV on lights off ja kuvaus = Turn off lights when TV turns on. Varmista, että skripti on muotoiltu oikein.
    metadata:
      name: TV on lights off
      description: Turn off lights when TV turns on.
  4. Jos haluat lisätä käynnistimiä, luo uusi rivi, sisennä se kahdella välilyönnillä tai paina sarkainta kerran. Kirjoita starters: . Sisennä sitten seuraava rivi ja kirjoita - type: .
    Vinkki:
    • Voit luoda uuden rivin painamalla vaihto Enter.
    • Jos haluat sisällyttää useita käynnistimiä, kunkin käynnistimen alussa on oltava yhdysmerkki ja välilyönti.
metadata:
  name: TV on lights off
  description: Turn off lights when TV turns on
automations:
  starters:
  - type:
Skriptieditori auttaa sinua rakenteen määrittämisessä antamalla automaattisia täydennysehdotuksia, jotka perustuvat käytettävissä oleviin käynnistimiin. Valitse ehdotuksista haluamasi näppäimistön nuolinäppäimillä ja lisää se painamalla Enter.
  1. Lisää device.state-käynnistin. Muista, että jos haluat käyttää device.state-käynnistintä, tarvitset kolme avainta: type, device ja state, ja sen jälkeen vähintään yksi vertailuavain-arvo-pari. Skriptieditori auttaa sinua rakenteen määrittämisessä antamalla automaattisia täydennysehdotuksia, jotka perustuvat käytettävissä oleviin käynnistimiin, ehtoihin ja toimintoihin. Tässä skriptissä:
    • Tyyppi = device.state.OnOff. Tämä on laitteen tila, joka arvioidaan automaation aloittamiseksi.
    • Laite = Chromecast - Living Room. Tämä on laitteen nimi siinä muodossa, jossa se näkyy Google Home ‐sovelluksessa.
    • Tila = on. "On" on tuettu kenttä tai tilan data OnOff-laitetilalle.
    • Vertailuavain-arvo-pari = is: true. Tämän vertailuavaimen arvo on primitiivinen datatyyppi. Skripti suoritetaan, jos TV on päällä.
      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

      Katsotaan vertailun vuoksi samanlaista skriptiä, jossa on eri käynnistin. Alla olevassa skriptissä automaatio alkaa, kun äänenvoimakkuus on 1–10 eikä TV:n käynnistyessä. Muutoksen tekemiseksi korvasimme OnOff-tilan Volume-tilalla ja muutimme tilaksi currentVolume, jotta se vastaisi uutta määritettä. Muutimme myös vertailuavain-arvo-parit kahdeksi sisäkkäiseksi pariksi, jotka luovat arvovälin: greaterThan: 1 ja lessThan: 10. Jos haluat nähdä lisää esimerkkejä, tässä on täysi lista käynnistimistä, joita voit käyttää.

      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. Tallenna skripti milloin tahansa valitsemalla Tallenna. Kun tallennat skriptin, skriptieditori vahvistaa skriptin automaattisesti ja tarkistaa mahdolliset virheet. Virheellistä skriptiä ei voi suorittaa.
  3. Lisää sitten skriptiin toiminto. Jos haluat lisätä toimintoja, luo uusi rivi, sisennä se kahdella välilyönnillä tai paina sarkainta kerran. Kirjoita actions: . Sisennä sitten seuraava rivi ja kirjoita - type: .
    Vinkki:
    • Voit luoda uuden rivin painamalla vaihto Enter.
    • Jos haluat sisällyttää lisää toimintoja, kunkin toiminnon alussa on oltava yhdysmerkki ja välilyönti.
    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. Käytämme valojen sammuttamiseen device.command-toimintoa. Jotta voimme käyttää device.command-toimintoa, sisällytämme siihen seuraavat tiedot:
    • Tyyppi = device.command.OnOff. Tämä on komennon tai toiminnon nimi.
      Komennoilla voi olla useita komentoja sisäkkäin laitteiden alapuolella, ja kullakin komennolla on oma tilansa.
    • Laitteet = lista, jossa on Floor Lamp - Living Room ja Overhead Light - Living Room. Nämä ovat valojen nimiä sellaisena kuin ne näkyvät Google Home ‐sovelluksessa. Jos haluat sisällyttää useita valoja, jokainen laite on erillisellä rivillä yhdysmerkillä alkaen.
    • Komennon haluttu tila = on: false. Tämä komento pyytää valoja sammumaan.
      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. Valitse Tallenna tallentaaksesi skriptin. Jos virheitä ei löydy, skripti aktivoituu automaattisesti: aina kun TV käynnistyy, valo sammuu. Jos et ole vielä valmis käyttämään skriptiä, keskeytä skripti laittamalla Aktivoi-asetus pois päältä.

Jos haluat harjoitella enemmän, kokeile muuttaa skriptisi osia ja käytä eri käynnistimiä, datatyyppejä, useita toimintoja tai lisää ehtoja, esim. time.between. Voit myös katsoa esimerkkiskriptejä ja oppia lisää koodauslabrassa. Tarkempia tietoja käynnistimistä, toiminnoista ja ehdoista saat Google Home ‐kehittäjäkeskuksesta.

Ohjelmoitujen automaatioiden ohjeet

  • Google Home ‐automaatioyhteisöstä saat apua skriptien käyttöön ja lisätietoja muiden työn alla olevista projekteista.
  • Automaatiot toimivat vain, jos skripteissä on käytetty kelvollista koodia. Jos skriptissä on virhe, siitä tulee ilmoitus. Lue lisää skriptieditorin virheistä ja varoituksista.
  • Vahvista koodi klikkaamalla tai napauttamalla skriptieditorissa Vahvista tai yrittämällä tallentaa skripti. Tässä on joitakin yleisiä virheitä:
    • Varmista, että käytät oikeaa laitteen nimeä muodossa "Laitteen nimi – Huoneen nimi". Jos et ole varma, tarkista laitteesi nimi Google Home ‐sovelluksesta.
    • Varmista, että laitteesi tukee haluamaasi toimintoa. Voit myös etsiä saatavilla olevia vaihtoehtoja automaattisen täydennyksen avulla.
    • Muista lisätä toiminto. Toiminnot ovat pakollisia automaation toiminnan kannalta.
  • Jos skripti tallentuu, mutta automaatio ei toimi odotetulla tavalla, varmista manuaalisesti, että kaikki skriptin osat toimivat oikein. Jos esimerkiksi kirjoitit skriptin, joka sytyttää valon ja muuttaa kirkkautta auringonlaskun aikaan, kokeile suorittaa nämä tehtävät Assistant-komennolla varmistaaksesi, että jokainen yksittäinen toiminto toimii. Voit myös tarkistaa nämä:
    • Laite on lisätty tai linkitetty Google Home ‐sovellukseen.
    • Laitteesi on yhteydessä verkkoon.
    • Laitteen nimi, käynnistimet, ehdot ja toiminnot on kirjoitettu oikein.
      Vinkki:  Valmistajat voivat muuttaa laitteen ominaisuuksia päivitysten yhteydessä, mikä voi estää skriptien toiminnan. Voit päivittää skriptit, joihin ongelma vaikuttaa, käyttämällä automaattista täydennystä.
    • Skriptissä on oikea sisennys ja muotoilu.
  • Google Homen verkkoversiossa voit myös käyttää skriptin alla olevia automaatiolokeja , joiden avulla voit tarkastella automaation historiaa ja tunnistaa mahdollisia ongelmia. Lue lisää automaatiolokeissa näkyvistä viestityypeistä.
  • Kokeile kuvailla haluamaasi automaatiota skriptieditorin kokeelliselle generatiiviselle tekoälyominaisuudelle, niin se luo skriptin, jonka voit tarkistaa ja muokata.
  • Lue lisää ohjelmien perusteista ja niiden ongelmien korjaamisesta.
  • Lue lisää ohjelmoitujen automaatioiden luomisesta ja muokkaamisesta.

Oliko tästä apua?

Miten sivua voisi parantaa?
Haku
Tyhjennä haku
Sulje haku
Google-sovellukset
Päävalikko
6868562217654100263
true
Ohjekeskushaku
false
true
true
true
true
true
1633396
false
false
false
false