스크립트 편집기를 사용하면 웹용 Google Home이나 Google Home 앱에서 맞춤 자동화를 작성하여 고급 가족 루틴을 만들 수 있습니다. 스크립트 기반 자동화를 작성하려면 YAML 스크립트 언어, 스크립트 구성 방법, 스크립트 구성요소를 사용하는 방법에 대한 몇 가지 기본사항을 알아야 합니다.
스크립트 편집기는 현재 공개 미리보기에서 사용할 수 있습니다. 공개 미리보기에 가입한 후 웹용 Google Home 또는 모바일 Google Home 앱에서 스크립트 편집기에 액세스할 수 있습니다.
스크립트 편집기를 사용하여 자동화를 작성하는 방법에 관해 자세히 알아보세요.
Codelab 방문하기
중요: 언제 루틴이 실행되는지 모든 가족 구성원이 확인할 수 있습니다. 루틴은 오직 편의를 위한 기능으로, 안전 또는 보안이 매우 중요한 상황에서는 사용할 수 없습니다. 예상대로 시작하지 않거나 멈추지 않을 경우 상해나 피해가 발생할 수 있는 루틴은 만들지 마세요. 루틴은 인터넷의 정상적인 작동, Wi-Fi, 루틴에 포함된 기기를 제조하는 서드 파티와 Google의 서비스 제공 여부의 영향을 받을 수 있습니다. 루틴은 때에 따라 제대로 작동하지 않을 수 있으며, Google에서는 루틴이 제대로 작동하지 않아 발생한 피해나 손해에 대해 책임을 지지 않습니다.
YAML 스크립트 언어 기본사항
스크립트 편집기는 기기에서 실행하려는 작업과 작업이 실행되기를 원하는 상황에 대한 지침을 한 줄씩 입력할 수 있는 유연한 스크립트 언어인 YAML을 사용합니다. 이러한 지침은 키-값 쌍 형식으로 작성됩니다.
키-값 쌍
YAML은 키-값 쌍의 모음으로 구성됩니다.
이 예에서 키는 name
, 값은 TV on lights off
입니다.
기본적으로 키는 사용하려는 요소를 나타내는 키워드입니다. 각 키는 고유해야 하지만 키의 순서는 중요하지 않습니다. 각 키-값 쌍은 새 줄에서 시작됩니다.
키와 연결된 값은 여러 가지 유형의 데이터일 수 있습니다.
데이터 유형
원시 데이터 유형에는 스크립트 편집기에서 지원하는 모든 기본 데이터 유형이 포함됩니다.
원시 데이터 형식 |
값 유형 |
불(Bool) |
|
숫자 |
정수 또는 소수입니다. |
문자열 |
일반 텍스트
문자열 값이 [ , { , " , ' , , # 으로 시작하는 경우에만 따옴표가 필요합니다. 그렇지 않은 경우 문자열에 콜론이 포함되며 그 뒤에 1~2개의 공백이 따라옵니다. 따옴표는 항상 한 쌍을 이루어야 합니다. 예를 들어 " " 또는 ‘ ‘ ,를 사용해야 하며 " ‘ 와 같이 사용할 수는 없습니다.
|
날짜 |
월 및 일입니다. 형식은 MM-DD 또는 MM/DD입니다.
|
시간 |
시간은 AM/PM 형식 또는 24H 형식 중 하나를 사용할 수 있습니다. 초는 선택사항입니다. 태양과 관련된 시간을 사용할 수도 있습니다. 예를 들어 sunrise 및 sunset 키워드 다음에 지속 시간을 사용할 수 있습니다.
12:30 am
13:00:01
sunrise / sunset
sunset+30min / sunset-1hour
|
날짜/시간 |
연도, 월, 일, 시간입니다.
날짜와 시간 사이에는 공백이 있어야 합니다.
날짜 형식은 YYYY-MM-DD 또는 YYYY/MM/DD입니다. 시간 형식은 위의 '시간'과 동일합니다. 시간대는 지원되지 않습니다.
2022/01/01 14:00
2022-12-31 sunrise+30min
|
요일 |
MON 또는 MONDAY
TUE 또는 TUESDAY
WED 또는 WEDNESDAY
THU 또는 THURSDAY
FRI 또는 FRIDAY
SAT 또는 SATURDAY
SUN 또는 SUNDAY
|
지속 시간 |
얼마간 지속되는 시간입니다.
30min
1hour
20sec
1hour10min20sec
|
16진수 색상
|
색상을 나타내는 6자리의 16진수 코드입니다. 맨 앞의 # 기호는 표시하지 않습니다.
|
온도 |
온도 데이터입니다. 항상 C 또는 F를 추가하여 섭씨 또는 화씨를 나타냅니다.
|
색상 온도 |
켈빈(K) 단위의 색상 온도입니다.
|
구조 데이터 유형은 여러 키-값 쌍을 포함하는 '블록' 또는 데이터 구조입니다. 이러한 키-값 쌍은 하나의 상위 키 아래에 중첩되며, 계층 구조를 나타내기 위해 각 수준의 중첩 항목은 동일한 수의 공백 또는 탭을 사용해 들여씁니다.
actions:
device: Light B - Living room
state: on
이 예에서 상위 키는 actions
입니다. actions
의 값은 다음과 같이 중첩된 2개의 키-값 쌍입니다.
- 1번 쌍: 하위 키 =
device
, 값 = Light B - Living room
- 2번 쌍: 하위 키 =
state
, 값 = on
하나의 키에 여러 값을 포함하려면 각 항목 앞에 하이픈이 있는 목록을 만드세요. 목록에서 구조 또는 원시 데이터 유형 값 중 하나를 사용할 수 있지만 두 값을 동시에 사용할 수는 없습니다.
weekdays:
- MONDAY
- THURSDAY
이 예에서 키는 weekdays
이고 값은 Monday
와 Thursday
를 포함하는 목록입니다.
고급 구조: 중첩된 쌍 및 목록 결합
더 복잡한 자동화의 경우 값은 여러 개의 중첩된 키-값 쌍이 포함된 목록이 될 수 있습니다.
starters:
- type: time.schedule
at: 10:00 am
weekdays:
- MONDAY
- THURSDAY
- type: time.schedule
at: SUNSET
weekdays:
- MONDAY
- THURSDAY
이 예에서 상위 키는 starters
입니다. 상위 키의 값은 항목마다 여러 개의 키-값 쌍이 포함된 목록입니다.
일부 키 유형은 값이 특정 형식이어야 하는 반면, 기기의 기능에 따라 특성을 상속하는 키도 있습니다. 특정 시작 조건, 조건, 작업이 구성되는 방식을 알아보세요.
YAML 언어 문법
스크립트 기반 루틴을 작성할 때는 다음과 같은 서식 개념을 사용하세요.
개념 |
예 |
콜론
YAML은 키와 해당 값을 분리하기 위해 콜론(: )을 사용하고 그 뒤에 공백을 추가합니다.
|
state: on |
들여쓰기
들여쓰기는 구조 및 계층 구조를 나타내며 중첩된 키-쌍을 정의합니다.
이 예에서 상위 키는 metadata 입니다. name 및 description 키는 상위 키 metadata 아래에 중첩된 하위 키입니다. 중첩된 키는 계층 구조를 나타내기 위해 각각 2개의 공백 또는 1개의 탭으로 들여씁니다.
|
metadata:
name: TV on lights off
description: Turn off lights when TV turns on
|
하이픈
뒤에 공백이 추가된 하이픈은 목록의 각 항목을 정의합니다. |
weekdays:
- MONDAY
- THURSDAY
|
주석
# 기호를 사용하여 스크립트에 주석이나 메모를 추가할 수 있습니다. 주석은 자동화 엔진에서 무시되며 자동화에 영향을 미치지 않습니다. |
# This is a comment. It will be ignored. |
스크립트 편집기 템플릿
새 자동화를 만들 때 스크립트 편집기에서는 다음과 같은 구조를 사용하여 스크립트를 작성할 수 있는 빈 템플릿을 제공합니다.
metadata |
자동화 이름 및 설명을 포함합니다. |
automations |
자동화 동작을 정의합니다. |
starters |
자동화를 시작하는 트리거를 정의합니다. |
condition |
자동화가 실행되어야 하는 경우에 대한 제한사항을 정의합니다(선택사항). |
actions |
자동화에서 실행되는 작업을 정의합니다. |
템플릿은 metadata와 automations라는 두 가지 주요 블록으로 나뉘며, 자동화는 다시 starters, conditions, actions 섹션으로 분류됩니다.
metadata 및 automations 블록
스크립트 편집기 템플릿에는 metadata
및 automations
라는 두 가지 최상위 상위 키 또는 블록이 포함되어 있습니다.
metadata
블록에는 자동화의 이름과 설명이 포함되지만 이는 사용자가 어떤 자동화인지 파악하는 것을 돕기 위해서만 사용됩니다.
metadata:
name: TV time
description: When TV is on, turn on lights
automations
블록은 자동화 스크립트의 핵심입니다. 여기에서 시작 조건, 조건, 작업을 사용하여 자동화의 동작을 정의합니다.
automations:
starters:
# e.g. Motion detected
condition:
# e.g. Between 2 times
actions:
# e.g. Turn on lights
스크립트 편집기를 사용하는 방법을 자세히 알아보려면 Codelab을 방문하거나, 예시 스크립트를 검토하거나, Google Home 개발자 센터에서 개별 시작 조건, 조건, 작업의 형식을 지정하는 방법을 알아보세요.
자동 완성
스크립트 편집기는 다음과 같은 경우에 사용 가능한 시작 조건, 조건, 작업을 기반으로 자동 완성 제안을 제공하여 스크립트 작성 과정을 안내해 줍니다.
- 유효한 옵션이 있는 위치에 커서가 위치합니다. 예를 들어 '
- type:
' 뒤에 커서가 있습니다.
- 사용자가 올바른 제안사항이 있는 코드를 입력합니다. 코드를 입력하면 제안 목록이 필터링됩니다.
Ctrl+스페이스 단축키를 사용해 자동 완성을 수동으로 시작할 수 있습니다.
Enter를 눌러 목록에서 제안사항을 선택합니다. 자동 완성 기능이 사용자가 선택한 구조에 따라 추가 필드를 채웁니다.
도움말: 자동 완성 기능을 사용하여 기기에서 사용할 수 있는 기기 상태나 명령어 및 특정 기기 상태나 명령어를 사용할 수 있는 기기를 확인할 수 있습니다.
기기에서 사용할 수 있는 기기 상태 또는 명령어를 찾으려면 스크립트를 작성할 때 먼저 'device:
' 키를 입력한 다음 'type:
' 키를 입력하세요. 자동 완성 기능이 해당 기기에서 사용할 수 있는 상태 또는 명령어 목록을 표시합니다.
예
starters:
- device: LED lights - Living Room
- type:
특정 기기 상태 또는 명령어를 사용할 수 있는 기기를 찾으려면 먼저 'type:
' 키를 입력한 다음 'device:
' 키를 입력하세요. 자동 완성 기능이 집에 있는 기기 중 해당 상태 또는 명령어를 지원하는 사용 가능한 기기 목록을 표시합니다.
예
starters:
- type: device.state.OnOff
- device:
시작 조건, 조건, 작업
자동화는 기기 시작 조건, 조건, 작업으로 구성됩니다. 이러한 구성요소가 자동화의 동작을 정의합니다.
일부 시작 조건, 조건, 작업에는 특정 유형의 비교 키-값 쌍이 있어야 자동화 로직을 완성하고 평가하려는 내용을 스크립트에 알릴 수 있습니다. 값은 호환되는 데이터 유형이어야 합니다. 예를 들어 조명의 on
상태는 true
또는 false
입니다. 조명이 켜진 상태에서 자동화를 시작하려면 다음의 값을 사용하세요.
아래에서 다양한 시작 조건, 조건, 작업에 관한 세부정보를 확인할 수 있습니다. 모든 시작 조건, 조건, 작업을 확인하려면 Google Home 개발자 센터를 방문하세요.
스크립트의 시작 조건 섹션에서는 스크립트를 실행하도록 유발하는 요인을 지정합니다. 시작 조건은 기기 상태, 시간, 기기 이벤트 등 기기가 수행할 수 있는 작업이나 변경될 수 있는 속성을 기반으로 합니다. 예를 들어 OnOff
, Brightness
, ColorSetting
상태가 있는 전구를 사용하고 있는 경우 시작 조건을 여러 개 포함하려면 각 시작 조건을 ' - type:
' 키로 시작하세요. 이 경우 스크립트가 실행되려면 시작 조건을 하나 이상 충족해야 합니다.
지원되는 시작 조건의 전체 목록을 확인하세요.
시작 조건 유형
어시스턴트 시작 조건
assistant.command
시작 조건을 사용하면 어시스턴트가 있는 기기에서 "Hey Google"로 시작하는 어시스턴트 명령어를 인식한 경우 스크립트가 시작됩니다.
참고: 음성 명령으로 자동화가 시작되고 스크립트에 어시스턴트 작업이 있으면, 스크립트에 다른 기기가 지정되어 있어도 음성 명령을 인식한 기기에서 어시스턴트 작업이 실행됩니다.
예: 누군가 "Hey Google 파티 시간"이라고 말하면 자동화를 시작합니다.
starters:
- type: assistant.command.OkGoogle
eventData: query
is: party time
기기 이벤트 시작 조건
device.event
시작 조건을 사용하면 누군가 초인종을 울리거나 센서가 무언가를 감지한 경우와 같이 특정 이벤트가 발생할 때 스크립트가 시작됩니다. 참고: 일부 이벤트는 지원되지 않습니다.
예: 초인종을 누르면 자동화가 시작됩니다.
starters:
- type: device.event.DoorbellPress
device: Doorbell - Front door
예: 카메라가 사람을 감지하면 자동화가 시작됩니다.
starters:
- type: device.event.PersonDetection
device: Camera - Backyard
예: 카메라가 움직임을 감지하면 자동화를 시작합니다.
starters:
- type: device.event.MotionDetection
device: Camera - Backyard
참고:
- 카메라 활동을 위해서는 호환되는 Nest 카메라, 초인종 또는 디스플레이와 활동 감지 설정이 필요합니다.
- 일부 카메라 활동의 경우 Nest Aware 요금제가 필요하거나 카메라가 유선으로 전원에 연결되어야 합니다. 예를 들어 Nest Cam(실내용 또는 실외용, 배터리)의 경우 소리 감지는 유선으로 연결된 경우에만 작동합니다.
- 기기 이벤트 및 기기 상태에 따라 시작 조건을 막아 일정 기간 반복되지 않도록 할 수 있습니다.
기기 상태 시작 조건
device.state
시작 조건을 사용하면 기기 상태에 따라 자동화가 시작됩니다. 상태는 기기의 특성으로, 온도 조절기의 온도가 특정 온도에 도달하는 경우, 조명이 켜지거나 꺼지는 경우, 지원되는 센서가 정해진 기준에 도달하는 경우 등을 나타냅니다.
참고: 기기 이벤트 및 기기 상태에 따라
시작 조건을 막아 일정 기간 반복되지 않도록 할 수 있습니다.
'device.state
' 뒤에 기기 상태 시작 조건의 상태를 추가합니다. 예를 들어 기기가 켜져 있는지 확인하려면 device.state.OnOff
를 사용하면 됩니다.
device.state
시작 조건을 사용하려면 type
, device
, state
의 3가지 키로 시작하고 그 뒤에 비교 키-값 쌍 1개 이상을 추가합니다.
키 |
값 |
예 |
type |
device.state 로 시작하는 기기 상태 시작 조건입니다. |
device.state.ArmDisarm |
device |
Google Home 앱에 표시되는 이름과 방 이름입니다. Device name - Room name |
Alarm - Front Door |
state |
확인하려는 시작 조건의 필드 또는 상태 데이터입니다.
Google Home 개발자 센터에서 사용하려는 시작 조건을 찾아 '지원되는 필드' 또는 '상태 데이터'를 확인하세요. |
isArmed |
도움말: 기기에서 사용할 수 있는 기기 상태를 찾으려면 스크립트에 먼저 'device: ' 키를 입력한 다음 'type: ' 키를 입력하세요.
자동 완성 기능이 기기에서 사용 가능한 상태 목록을 표시합니다.
다음과 같은 비교 키-값 쌍을 device.state 시작 조건과 함께 사용할 수 있습니다.
비교 키 |
지원되는 값 유형 |
예 |
is |
문자열 | 숫자 | 불 | 동적 |
is: on |
isNot |
문자열 | 숫자 | 불 | 동적 |
isNot: cast |
greaterThan
greaterThanOrEqualTo |
문자열 | 숫자 | 불 | 동적 |
greaterThan: 1 |
lessThan
lessThanOrEqualTo |
문자열 | 숫자 | 불 | 동적 |
lessThan: 10 |
suppressFor |
지속 시간 |
suppressFor: 1hour |
예: TV 볼륨이 1~10이면 자동화가 시작됩니다.
starters:
- type: device.state.Volume
device: TV - Living room
state: currentVolume
greaterThan: 1
lessThan: 10
집 상태 시작 조건
home.state
시작 조건을 사용하여 재택 또는 외출 여부에 따라 스크립트를 시작할 수 있습니다. 집의 상태는
인기척 감지로 감지됩니다.
예: 사용자가 집에 있으면 자동화가 시작됩니다.
starters:
- type: home.state.HomePresence
state: homePresenceMode
is: HOME
시간 시작 조건
time
시작 조건을 사용하면 특정 요일 및 시간을 기준으로 자동화를 시작할 수 있습니다. time 시작 조건과 함께 다음과 같은 비교 키-값 쌍을 사용할 수 있습니다.
비교 키 |
지원되는 값 유형 |
예 |
before |
시간 |
before: sunset |
after |
시간 |
after: 7:00 am |
weekdays |
요일 |
weekdays: MON |
예: 월요일과 화요일에 해가 뜨고 30분 지난 후 자동화를 시작합니다.
starters:
- type: time.schedule
at: sunrise+30min
weekdays:
- MON
- TUE
시작 조건을 막는 방법
비교 키 suppressFor
를 사용하여 일정 기간 시작 조건을 무시하도록 자동화에 지시합니다. 예를 들어 카메라가 누군가를 감지하면 '현관에 누가 있습니다'라고 말한 다음 해당 사람이 계속 감지되더라도 10분 동안은 다시 알리지 않습니다.
예: 누군가 아침에 처음으로 집 복도를 걸어가면 블라인드를 모두 열고 이후 20시간 동안 이 시작 조건을 막습니다.
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
조건은 자동화가 실행되어야 하는 경우에 대한 선택적 제한사항입니다. 조건을 포함하면 조건이 충족되는 경우에만 스크립트가 실행됩니다. 시작 조건 중에서는 조건으로 사용할 수 있는 것도 많으며, 여러 조건을 논리 연산자 and
, or
, not
과 함께 사용해 복잡한 조건 확인을 표현할 수도 있습니다.
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
이 예에는 time 조건 하나와 device.state
조건 하나가 있습니다. 스크립트는 월요일이나 화요일, 일몰과 일출 사이일 때 또는 TV 볼륨이 1~10인 경우 실행됩니다.
다음과 같은 조건 유형을 사용할 수 있습니다.
조건 연산자
AND 조건
and
조건을 사용하면 모든 하위 조건을 충족하는 경우에만 스크립트가 실행됩니다.
예: TV가 켜져 있고 동시에 시간이 오후 6시 이후인 경우 자동화가 시작됩니다.
condition:
type: and
conditions:
- type: device.state.OnOff
device: TV - Living Room
state: on
is: true
- type: time.between
after: 6:00 pm
OR 조건
or
조건을 사용하면 하위 조건 중 하나가 발생하는 경우 스크립트가 실행됩니다.
예: TV가 켜져 있거나 시간이 오후 6시 이후인 경우 자동화가 시작됩니다.
condition:
type: or
conditions:
- type: device.state.OnOff
device: TV - Living Room
state: on
is: true
- type: time.between
after: 6:00 pm
NOT 조건
not
조건을 사용하면 하위 조건이 발생하는 경우 스크립트가 실행되지 않습니다.
예: 시간이 오후 6시에서 8시 사이가 아니면 자동화가 시작됩니다.
condition:
type: not
condition:
type: time.between
after: 6:00pm
before: 8:00pm
device.state
조건을 사용해 스크립트가 시작될 때의 기기 상태에 따라 스크립트가 실행될 수 있는 상황을 제한할 수 있습니다. device.state
조건은 device.state
시작 조건과 비슷하지만, 스크립트가 시작되는 경우를 지정하는 대신 스크립트가 실행될 수 있는 상황을 제한한다는 점이 다릅니다.
'device.state
' 뒤에 기기 상태 조건의 상태를 추가합니다. 예를 들어 기기가 켜져 있는지 확인하려면 device.state.OnOff
를 사용하면 됩니다.
device.state
조건을 사용하려면 type
, device
, state
의 3가지 키로 시작하고 그 뒤에 비교 키-값 쌍 1개 이상을 추가합니다.
키 |
값 |
예 |
type |
device.state 로 시작하는 기기 상태 조건입니다. |
device.state.OnOff |
device |
Google Home 앱에 표시되는 이름과 방 이름입니다. Device name - Room name |
Chromecast - Living Room |
state |
확인하려는 시작 조건의 상태입니다.
Google Home 개발자 센터에서 사용하려는 기기 상태 조건을 알아보세요.
|
state: on |
도움말: 기기에서 사용할 수 있는 기기 상태를 찾으려면 스크립트에 먼저 'device:
' 키를 입력한 다음 'type:
' 키를 입력하세요. 자동 완성 기능이 기기에서 사용 가능한 상태 목록을 표시합니다.
다음과 같은 비교 키-값 쌍을 device.state
조건과 함께 사용할 수 있습니다.
비교 키 |
지원되는 값 유형 |
예 |
is |
문자열 | 숫자 | 불 | 동적 |
is: on |
isNot |
문자열 | 숫자 | 불 | 동적 |
isNot: cast |
greaterThan
greaterThanOrEqualTo |
문자열 | 숫자 | 불 | 동적 |
greaterThan: 1 |
lessThan
lessThanOrEqualTo |
문자열 | 숫자 | 불 | 동적 |
lessThan: 10 |
예: 온도 조절기에서 감지된 습도가 55%를 넘으면 자동화가 시작됩니다.
condition:
type: device.state.TemperatureSetting
device: My Thermostat - Living Room
state: thermostatHumidityAmbient
greaterThan: 55
home.state.HomePresence
조건을 사용하면 재택 또는 외출 중인지에 따라 스크립트가 실행될 수 있는 상황을 제한할 수 있습니다.
참고: home.state.HomePresence
조건을 사용하는 스크립트를 만들기 전에 Google Home 앱에서 인기척 감지를 설정하고 인기척 감지가 예상대로 작동하는지 확인하세요. 집에 사람이 있는지 여부는 가족의 휴대전화 위치, 일부 Nest 기기의 센서에 의해 결정되며, Google Home 앱에서 재택이나 외출을 수동으로 전환해도 됩니다.
인기척 감지와 재택 및 외출 루틴에 관해 자세히 알아보세요.
다음과 같은 비교 키-값 쌍을 home.state.HomePresence
조건과 함께 사용할 수 있습니다.
비교 키 |
지원되는 값 유형 |
예 |
is |
문자열('HOME' 또는 'AWAY') |
is: away |
isNot |
문자열('HOME' 또는 'AWAY') |
isNot: HOME |
for |
지속 시간 |
for: 30min |
suppressFor |
지속 시간 |
suppressFor: 1hour |
예: 현재 위치가 'HOME'으로 설정된 경우 home.state.HomePresence
조건이 자동화를 시작합니다.
condition:
type: home.state.HomePresence
state: homePresenceMode
is: HOME
시간 조건
time.between
조건을 사용하여 스크립트가 실행될 수 있는 시점을 제한합니다. time.between
조건과 함께 다음과 같은 비교 키-값 쌍을 사용할 수 있습니다.
비교 키 |
지원되는 값 유형 |
예 |
before |
시간 |
before: sunset |
after |
시간 |
after: 7:00 am |
weekdays |
요일 |
weekdays: MON |
예: 주말 오전 10시 전에만 자동화를 시작합니다.
condition:
type: time.between
before: 10am
weekdays:
- SAT
- SUN
스크립트의 작업 섹션에는 기기에서 실행할 작업을 입력합니다. 여러 작업을 포함하려면 각 작업을 '- type:
' 키로 시작하세요. 스크립트를 실행하려면 작업이 1개 이상 있어야 합니다. 대부분의 작업은 device.command
로 시작합니다.
다음과 같은 작업 유형을 사용할 수 있습니다.
어시스턴트 작업
스피커 또는 디스플레이에 assistant.command
작업을 사용해 어시스턴트가 "조명 전부 꺼 줘" 또는 "날씨 알려 줘"와 같은 작업을 완료하도록 할 수 있습니다.
어시스턴트 명령어를 사용하면 특정 기기 이름을 사용하지 않고도 방별 또는 집 전체의 기기에 작업을 명령할 수 있습니다. 이를 통해 이후에 Home 앱에 추가되는 기기에서도 이 명령어를 자동으로 실행할 수 있으므로 시간 절약이 가능합니다. 어시스턴트 명령어를 사용하려면 작업을 실행할 호환되는 스피커 또는 디스플레이가 필요합니다.
참고: 음성 명령으로 자동화가 시작되고 스크립트에 어시스턴트 작업이 있으면, 스크립트에 다른 기기가 지정되어 있어도 음성 명령을 인식한 기기에서 어시스턴트 작업이 실행됩니다.
예: "거실 조명 켜 줘"를 사용하여 거실에 있는 모든 조명을 켭니다.
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.
어시스턴트 작업을 통해 다음과 같은 맞춤 작업도 실행할 수 있습니다.
- "침실 스피커에서 YouTube Music으로 아델의 Hello 재생해 줘"
- "거실 디스플레이에서 YouTube로 재미있는 고양이 동영상 재생해 줘"
- "내일 날씨 어때?"
- "재미있는 얘기해 줘"
- "서재 디스플레이에서 진입로 카메라 보여 줘"
device.command
작업을 사용하여 기기를 제어하거나 조정합니다. 각각의 작업 명령어마다 고유한 특성과 구조가 있습니다. 'device.command
' 뒤에 기기의 명령어 작업을 추가하여 스크립트에 명령어를 추가할 수 있습니다. 예를 들어 기기를 켜려면 device.command.OnOff
를 사용하세요. device.command
작업에는 다음 정보가 포함되어야 합니다.
키 |
값 |
예 |
type |
device.command 로 시작하는 기기 작업입니다. |
device.command.OpenClose |
devices |
Google Home 앱에 표시되는 이름과 방 이름입니다. Device name - Room name. 여러 기기를 포함하려면 목록을 만드세요. |
Blinds - Bedroom |
도움말: 기기에서 사용할 수 있는 작업이나 명령어를 찾으려면 먼저 'device:' 키를 입력한 다음 'type:' 키를 입력하세요. 그러면 자동 완성 기능이 해당 기기에서 사용 가능한 작업 목록을 표시합니다.
많은 device.command
작업에는 명령어에 필요한 입력을 지정하는 추가 키가 있습니다. 예를 들어 device.command.ThermostatTemperatureSetpoint
는 thermostatTemperatureSetpoint
라는 키-값 쌍이 있어야 설정하려는 새 온도를 온도 조절기에 알려줄 수 있습니다.
명령어를 사용하는 방법을 자세히 알아보려면 Google Home 개발자 센터에서 관련 작업을 찾고 사용할 작업의 구조를 따르세요.
예: 거실 TV 켜기
actions:
type: device.command.OnOff
devices: TV - Living room
on: true
예: 조명을 켠 다음 5분 후에 끄기
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
알림 작업
스크립트에서 홈 구성원의 휴대기기에 알림을 전송하도록 하려면 home.command.Notification
작업을 사용합니다. 예를 들어 스마트 플러그에 연결된 기기가 꺼지거나 오프라인 상태가 되면 알림을 받을 수 있습니다.
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
시간 작업
time.delay
작업을 사용하면 목록에 있는 모든 작업을 한꺼번에 수행하는 대신 두 작업 사이에 사용자가 정의한 시간 동안 스크립트가 대기하도록 할 수 있습니다. 스크립트에 여러 차례의 지연을 추가할 수 있습니다. 예를 들어 스크립트가 각 작업 간에 10초 동안 대기하도록 할 수 있습니다.
예: 조명을 켠 다음 30초 후에 끄기
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
리소스
스크립트 작성 연습하기
먼저 간단하지만 많이 사용되는 자동화 기능인 'TV가 켜지면 조명 끄기'를 만들어 보겠습니다.
참고: 스트리밍 미디어 기기나 스마트 조명, 또는 그에 상응하는 기기를 사용하지 않는 경우에도 단계를 따라 스크립트 작성 프로세스를 이해할 수 있지만, 마지막에 스크립트 실행은 불가능합니다.
- home.google.com/automations를 열고 계정에 로그인합니다.
- 새로 추가
를 클릭합니다.
- 메타데이터 정보를 작성합니다. 이 스크립트에서 name은
TV on lights off
이고 description은 Turn off lights when TV turns on
입니다. 스크립트의 형식을 올바르게 지정해야 합니다.
metadata:
name: TV on lights off
description: Turn off lights when TV turns on.
- 시작 조건을 추가하려면 새 줄을 만들고 공백을 두 번 입력하거나 Tab 키를 한 번 눌러 들여쓴 뒤 '
starters:
'를 입력합니다. 그런 후 다음 줄에서 다시 들여쓰고 '- type:
'을 입력합니다.
도움말:
- 새 줄을 만들려면 Shift
Enter 키를 누릅니다.
- 시작 조건을 여러 개 포함하려면 각 시작 조건을 하이픈과 공백으로 시작해야 합니다.
metadata:
name: TV on lights off
description: Turn off lights when TV turns on
automations:
starters:
- type:
참고: 스크립트 편집기는 사용 가능한 시작 조건을 기반으로 자동 완성 제안을 제공하여 스크립트 구성 과정을 도와줍니다. 제안 중에서 선택하려면 키보드의 화살표 키를 사용하여 선택한 후 Enter 키를 눌러 삽입합니다.
device.state
시작 조건을 추가합니다. device.state 시작 조건을 사용하려면 type
, device
, state
라는 세 가지 키가 필요하며, 뒤에 한 개 이상의 비교 키-값 쌍이 있어야 합니다. 스크립트 편집기는 사용 가능한 시작 조건, 조건, 작업을 기반으로 자동 완성 제안을 제공하여 스크립트 구성 과정을 도와줍니다. 이 스크립트에서 각각의 키는 다음과 같습니다.
- 언제든지 저장을 클릭하여 스크립트를 저장할 수 있습니다. 스크립트를 저장하면 스크립트 편집기가 자동으로 스크립트의 유효성을 검사하고 오류를 확인합니다. 잘못된 스크립트는 실행할 수 없습니다.
- 이제 스크립트에 작업을 추가합니다. 작업을 추가하려면 새 줄을 만들고 공백을 두 번 입력하거나 Tab 키를 한 번 눌러 들여쓴 뒤 '
actions:
'를 입력합니다. 그런 후 다음 줄에서 다시 들여쓰고 '- type
'을 입력합니다.
도움말:
- 새 줄을 만들려면 Shift
Enter 키를 누릅니다.
- 추가 작업을 포함하려면 각 작업을 하이픈과 공백으로 시작해야 합니다.
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
작업을 사용합니다. device.command 작업을 사용하기 위해 다음과 같은 정보를 포함시킵니다.
- type은
device.command.OnOff
입니다. 명령어 또는 작업의 이름입니다.
참고: 기기 아래에 여러 개의 명령어가 중첩될 수 있으며, 각 명령어마다 상태가 있습니다.
- devices는
Floor Lamp - Living Room
및 Overhead Light - Living Room
이 포함된 목록입니다. Google Home 앱에 표시되는 조명 이름으로, 여러 개의 조명을 포함하기 위해 각각의 기기를 하이픈으로 시작하는 별도의 줄에 표시했습니다.
- 명령어에서 목표하는 state는
on: false
입니다. 이 줄은 조명을 끄라고 지시합니다.
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
- 저장을 클릭하여 스크립트를 저장합니다. 오류가 없으면 스크립트가 자동으로 활성화되어 TV를 켤 때마다 조명이 꺼집니다. 아직 스크립트를 실행할 준비가 되지 않았다면 활성화를 사용 중지하여 스크립트를 일시중지할 수 있습니다.
더 연습하려면 다른 시작 조건, 데이터 유형, 여러 개의 작업 또는 time.between
과 같은 추가적인 조건을 사용하도록 스크립트 중 일부를 변경해 보시기 바랍니다. 예시 스크립트를 검토하고 Codelab에서 자세한 내용을 알아볼 수도 있습니다. 시작 조건, 작업, 조건에 관한 자세한 내용은 Google Home 개발자 센터를 참고하세요.
스크립트 기반 자동화에 관한 도움말
- Google 홈 자동화 커뮤니티에서 스크립트에 대한 도움말을 찾아보고 다른 사람들이 어떤 작업을 하고 있는지 알아보세요.
- 자동화가 작동하려면 스크립트에서 올바른 코드를 사용해야 합니다. 오류가 있으면 메시지가 표시됩니다. 스크립트 편집기의 오류 및 경고에 관해 자세히 알아보세요.
- 코드를 확인하려면 스크립트 편집기에서 확인을 클릭 또는 탭하거나 스크립트를 저장하세요. 다음은 몇 가지 일반적인 오류입니다.
- Device name - Room name 형식으로 올바른 기기 이름을 사용해야 합니다. 잘 모르겠다면 Google Home 앱에서 기기 이름을 확인하세요.
- 기기가 실행하려는 기능을 지원하는지 확인합니다. 자동 완성을 사용하여 사용 가능한 옵션을 찾을 수도 있습니다.
- 작업을 포함해야 합니다. 자동화를 실행하려면 작업이 필요합니다.
- 스크립트는 저장되나 자동화가 예상대로 작동하지 않는 경우 스크립트의 각 구성요소가 작동하는지 수동으로 확인하세요. 예를 들어 해가 지면 조명을 켜고 조명의 밝기를 변경하는 스크립트를 작성한 경우, 어시스턴트 명령어로 이러한 작업을 완료하여 각각의 기능이 작동하는지 확인합니다. 다음 사항도 확인해 보세요.
- Google Home 앱에 기기가 추가 또는 연결되어 있습니다.
- 기기가 인터넷에 연결되어 있습니다.
- 기기 이름, 시작 조건, 조건, 작업이 올바르게 작성되어 있습니다.
참고: 제조업체에서 업데이트를 실행할 때 기기 특성을 변경할 수 있으며, 이로 인해 스크립트 작동이 중지될 수 있습니다. 자동 완성을 사용해 영향을 받는 스크립트를 업데이트할 수 있습니다.
- 스크립트에 들여쓰기 및 서식이 올바르게 적용되어 있습니다.
- 웹용 Google Home을 사용하면 스크립트 아래에 있는 자동화 로그
에 액세스하여 자동화 기록을 확인하고 잠재적인 문제를 식별할 수 있습니다. 자동화 로그에 표시되는 메시지 유형을 자세히 알아보세요.
- 스크립트 편집기의 실험용 생성형 AI 기능을 사용하여 원하는 자동화를 설명하면 스크립트 초안이 생성되어 검토하고 수정할 수 있습니다.
- 루틴 기본 사항 및 문제 해결 방법에 관해 자세히 알아보세요.
- 스크립트 기반 자동화 생성 및 수정에 관해 자세히 알아보세요.