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:- Parempien kodin automaatioiden luominen skriptieditorilla
- Tuetut käynnistimet, ehdot ja toiminnot
- Katso koodauslabrasta ohjattu esimerkki ensimmäisen skriptin luomisesta
- Ohjelmoitujen automaatioiden kirjoitusharjoituksia ja esimerkkiskriptejä
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 |
|
| Numero | Kokonaisluku tai desimaaliluku |
| Merkkijono |
Pelkkä teksti Merkkijonoarvojen ympärillä on oltava lainausmerkit vain, jos niiden alussa on |
| Päivämäärä |
Kuukausi ja päivä. Muoto on KK-PP tai KK/PP.
|
| 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
|
| 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.
|
| Viikonpäivä |
|
| Kesto |
Aikaväli.
|
|
Väriheksadesimaali |
Väriä edustava kuusinumeroinen heksadesimaalikoodi. #-merkkiä ei ole alussa.
|
| Lämpötila |
Lämpötiladata. Lisää aina C tai F merkitsemään Celsius- tai Fahrenheit-arvoa.
|
| Värilämpötila |
Värilämpötila kelvineinä.
|
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
- 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ä |
state: on |
|
Sisennys Sisennys ilmaisee rakennetta ja hierarkiaa sekä määrittää sisäkkäiset avain-arvo-parit. Tässä esimerkissä ylätason avain = |
|
|
Yhdysmerkki Yhdysmerkki, jonka jälkeen tulee välilyönti, määrittelee listakohteen. |
|
|
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
assistant.command-käynnistimen avulla, jolloin Assistantin sisältävä laite aktivoituu, kun se kuulee "Hey Google" -komennon.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.
starters: - type: device.event.DoorbellPress device: Doorbell - Front door
starters: - type: device.event.PersonDetection device: Camera - Backyard
Esimerkki: Käynnistä automaatio, kun kamera havaitsee liikettä.
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
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.
device.state jälkeen. Voit esimerkiksi tarkistaa, onko laite päällä, komennolla device.state.OnOff.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 |
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 |
Merkkijono | Numero | Totuusarvo | Dynaaminen | greaterThan: 1 |
lessThanlessThanOrEqualTo |
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
home.state-käynnistintä, jos haluat skriptin käynnistyvän sen perusteella, oletko kotona vai muualla. Tämä voidaan havaita paikallaolotunnistimella.starters: - type: home.state.HomePresence state: homePresenceMode is: HOME
Aikakäynnistimet
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
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
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ä.device.state-kohdan jälkeen. Voit esimerkiksi tarkistaa, onko laite päällä, komennolla device.state.OnOff.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 |
Merkkijono | Numero | Totuusarvo | Dynaaminen | greaterThan: 1 |
lessThanlessThanOrEqualTo |
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
home.state.HomePresence-ehtoa, jos haluat rajoittaa skriptin alkamista sen perusteella, onko joku kotona vai poissa.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:
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
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.
actions: - type: assistant.command.OkGoogle okGoogle: Turn on living room lights devices: My Speaker - Room Name
actions: - type: assistant.command.OkGoogle okGoogle: Turn off all lights devices: My Speaker - Room Name
actions: - type: assistant.command.Broadcast devices: - My Speaker 1 - Room Name - My Speaker 2 - Room Name message: It’s dinner time.
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"
Laitteen toiminnot
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
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ä.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ä".
- Siirry osoitteeseen home.google.com/automations ja kirjaudu tilillesi.
- Valitse Lisää uusi
.
- Täytä metadatatiedot. Tässä skriptissä nimi =
TV on lights offja 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.
- 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.
- Voit luoda uuden rivin painamalla vaihto
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.
- Lisää
device.state-käynnistin. Muista, että jos haluat käyttää device.state-käynnistintä, tarvitset kolme avainta:type,devicejastate, 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: trueKatsotaan 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-tilanVolume-tilalla ja muutimme tilaksicurrentVolume, jotta se vastaisi uutta määritettä. Muutimme myös vertailuavain-arvo-parit kahdeksi sisäkkäiseksi pariksi, jotka luovat arvovälin:greaterThan: 1jalessThan: 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
- Tyyppi =
- Tallenna skripti milloin tahansa valitsemalla Tallenna. Kun tallennat skriptin, skriptieditori vahvistaa skriptin automaattisesti ja tarkistaa mahdolliset virheet. Virheellistä skriptiä ei voi suorittaa.
- 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: - Voit luoda uuden rivin painamalla vaihto
- 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 RoomjaOverhead 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
- Tyyppi =
- 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.