스크립트 자동화 만들기

1. 소개

학습할 내용

  • 자동화 스크립트를 계획하고 작성하는 방법
  • 자동화 스크립트를 테스트하는 방법

필요한 항목

  • Google Home 앱을 실행하는 Android 또는 iOS 휴대전화
  • Works with Google Home 인증을 받은 스마트 조명 또는 기타 기기(켜거나 끌 수 있음)

2. 기기 설정

아직 기기가 설정되지 않았다면 계속 진행하여 집에서 설정하세요.

기기가 Google Home 앱에 표시되는지, Home 앱을 사용하여 기기를 켜고 끌 수 있는지 확인합니다.

3. 자동화 스크립트 계획하기

먼저 자동화 스크립트의 용도에 대해 알아보겠습니다. 여기에는 다음과 같은 고려사항이 포함됩니다.

  • 자동화하려는 기기
  • 자동화 스크립트 실행을 트리거해야 하는 시작 조건 (또는 이벤트)
  • 추가 조건(있는 경우)은 스크립트 자동화 트리거 후 실행 여부를 제어합니다.
  • 수행할 작업

이 Codelab에서는 자동화 스크립트로 다음 두 가지 작업을 실행할 계획입니다.

  1. 특정 시간에 조명 (또는 다른 스마트 기기)을 켭니다.
  2. 특정 시간에 기기를 끕니다.

이제 스크립트 자동화의 기능이 무엇인지 명확히 이해했으므로 스크립트 편집기를 열고 자동화 스크립트를 작성해 보겠습니다.

4. 자동화 스크립트 작성하기

스크립트 자동화는 YAML 데이터 직렬화 언어를 사용하여 선언적 방식으로 작성됩니다.

자동화 스크립트의 두 가지 기본 섹션은 다음과 같습니다.

  1. 메타데이터 - 자동화 스크립트의 이름과 그 기능에 대한 설명입니다.
  2. 자동화 규칙 — 자동화의 시작 로직 및 동작을 정의합니다.

메타데이터

Google의 자동화 메타데이터는 사용자에게 자동화의 이름과 작동 방식을 알려줍니다. 메타데이터는 다음과 같이 metadata 블록에 지정됩니다.

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times

자동화 규칙

자동화 규칙은 실제 작업이 발생하는 위치입니다. 시작 조건, 조건, 작업의 세 부분으로 구성되며, 이러한 작업은 순서대로 평가됩니다.

1 시작 조건

2 조건

작업 3개

시작 조건을 설정하여 자동화를 시작합니다. 후속 조건을 평가하려면 시작 조건 중 하나 이상이 true로 평가되어야 합니다.

이는 선택사항이며 시작 조건이 활성화된 후 평가되는 하나 이상의 추가 제약조건으로 구성됩니다. 조건이 true로 확인되면 작업이 실행됩니다. false로 확인되면 작업이 실행되지 않습니다.

여러 제약 조건을 포함하는 경우 andor 키워드로 제약 조건을 구분해 단일 논리 표현식을 형성합니다. 자동화 작업을 진행하려면 이 표현식이 true로 확인되어야 합니다.

조건은 상태 변경 알림과 같지 않습니다.

  • 조건은 작업이 실행되려면 시작 조건이 '실행'되는 시점에 true여야 하는 사실을 나타냅니다.
  • 상태 변경 알림은 다른 기기가 켜지는 등의 이벤트입니다.

작업은 시작 조건과 제약 조건 조건이 충족될 때 수행되는 작업입니다.

자동화의 automations 블록에는 다음 두 가지 규칙이 포함됩니다.

automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false

다음에 유의하세요.

  1. automations 규칙이 두 개 있습니다. 첫 번째 버튼은 조명을 켜고 두 번째 커버는 조명을 끕니다.
  2. 각 규칙에는 단일 액션이 있습니다.
  3. on: true조명 켜기를 의미합니다. 마찬가지로 on: false조명 끄기를 의미합니다.
  4. 각 규칙에는 자동화를 시작할 시간을 자동화에 알려주는 단일 time.schedule 시작 조건이 있습니다.
  5. 이 자동화에는 조건이 없습니다.

5. 전체 스크립트 자동화

이 모든 요소를 종합해 보면 자동화 스크립트의 전체 모습은 다음과 같습니다.

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times
automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false
  1. 위의 자동화를 복사합니다.
  2. 웹용 Google Home으로 이동합니다.
  3. 별표 3개가 표시된 아이콘으로 표시된 자동화 탭을 선택합니다.
    자동화 탭
  4. + 새로 추가를 클릭합니다.
  5. 스크립트 편집기에서 자동화 템플릿을 삭제합니다.
  6. 자동화를 붙여넣습니다.
  7. Desk light - Office를 기기의 이름과 위치로 바꿉니다.
  8. 유효성 검사를 클릭합니다. 스크립트 편집기에서는 자동화 스크립트에서 오류가 포함된 섹션에 밑줄을 표시합니다. 발생하는 모든 오류를 해결하고 더 이상 오류가 사라질 때까지 검사와 수정을 계속합니다. 예를 들어 기기 이름이 다를 수 있습니다. 이 경우 자동 완성 기능을 사용하여 유효한 기기 이름을 선택할 수 있습니다.
  9. 저장을 클릭합니다.
  10. 스크립트 텍스트 아래에 있는 활성화 스위치가 켜짐 위치에 있는지 확인합니다. 완전히 검증되고 활성화된 스크립트 자동화 기능이 포함된 스크립트 편집기

6. 자동화 테스트

  1. 기기가 연결되어 있고 Google Home 앱에 표시되어 있는지 확인합니다.
  2. 기기가 현재 켜져 있으면 전원을 끕니다.
  3. 웹용 Google Home자동화 페이지에서 자동화 옆에 있는 '실행' 버튼을 클릭합니다.
    스크립트 실행 버튼
  4. 기기가 켜집니다.

이제 자동화를 테스트해 보겠습니다.

  1. 기기를 끕니다.
  2. 자동화를 수정하고 7행의 '기기 켜기' 시간을 향후 5분 후로 변경합니다.
  3. 14번 줄의 '기기 꺼짐' 시간을 '정시 운항' 직후의 시간으로 변경합니다.
  4. 유효성 검사를 클릭합니다. 발생할 수 있는 오류를 해결합니다.
  5. 저장을 클릭합니다.
  6. 활성화 스위치가 사용 위치에 있는지 확인합니다.
  7. 시작 조건 시간이 두 번 지날 때까지 기다립니다. 기기는 지정된 시간에 켜졌다가 꺼져야 합니다.

7. 수고하셨습니다

자동화 스크립트를 만들었습니다. 훌륭합니다.

이 Codelab을 통해 학습한 내용은 다음과 같습니다.

  • 자동화 설계 및 작성 방법
  • 자동화를 테스트하는 방법

다음 단계

이 Codelab에서는 매우 간단한 자동화를 만들었습니다. 자동화는 전원 스위치 전환 예약 이상의 작업을 할 수 있습니다. 자동화 만들기의 기본사항을 알아보았으므로 이제 Google Home 생태계에서 사용할 수 있는 다양한 유형의 시작 조건, 조건, 작업을 살펴보겠습니다.

다음 실습을 해 보세요.

  • 자동화에 time.schedule 시작 조건을 더 추가합니다.
  • 같은 일정에 따라 다른 기기를 켜고 끄도록 자동화를 수정합니다.
  • time.schedule 시작 조건을 삭제하지 않고 다른 기기의 전원이 켜져 있을 때만 기기가 켜지도록 자동화를 수정합니다. condition 절을 사용하는 스크립트 예시 참조
  • 누군가 집에 있을 때만 기기를 켤 수 있도록 자동화를 수정합니다.

추가 자료

Google Home 자동화에 관해 자세히 알아보려면 자동화 참조 문서를 확인하세요.