자동화

automations 구조체는 자동화 스크립트의 핵심입니다. 여기에서 시작 조건, 조건, 작업을 포함한 자동화 동작을 지정합니다. 이러한 규칙을 총칭하여 자동화 규칙이라고도 합니다.

automations 구조체에는 1개 이상의 자동화 규칙이 포함되며, 각 규칙에는 항상 시작 조건과 작업 세트가 포함됩니다. 규칙은 스크립트가 실행되기 위해 있어야 하는 추가 한정자인 조건을 선택적으로 포함할 수 있습니다.

유형 설명

name

String

선택사항

자동화 이름입니다.

개발자에게는 표시되지 않으며 개발자 참고용입니다.

starters

[시작 조건]

필수

시작 조건 목록입니다.

condition

조건

선택사항

조건

actions

[조치]

필수

작업 목록

다음은 automations 구조체의 도입적인 두 가지 예입니다.

첫 번째 예에서는 '내 TV'라는 TV가 켜지면 자동화가 시작됩니다.

트리거되면 다음 작업이 수행됩니다.

'Light A'와 'Light B'라는 두 대의 LIGHT 기기가 켜져 있으며 밝기 수준 50으로 설정되어 있습니다.

automations:
- name: Dim the lights
  starters:
  - type: device.state.OnOff
    device: My TV - Living Room
    state: on
    is: true
  actions:
  - type: device.command.OnOff
    devices:
    - Light A - Living Room
    - Light B - Living Room
    on: true
  - type: device.command.BrightnessAbsolute
    devices:
    - Light A - Living Room
    - Light B - Living Room
    brightness: 50

두 번째 예에서는 동일한 자동화가 매주 월요일과 목요일 일몰에 시작됩니다.

automations:
- name: Dim the lights
  starters:
  - type: time.schedule
    at: SUNSET
    weekday:
    - MONDAY
    - THURSDAY
    state: on
    is: true
  actions:
  - type: device.command.OnOff
    devices:
    - Light A - Living Room
    - Light B - Living Room
    on: true
  - type: device.command.BrightnessAbsolute
    devices:
    - Light A - Living Room
    - Light B - Living Room
    brightness: 50

시작 조건

Starter 구조체는 자동화 스크립트를 실행하도록 하는 시작 조건을 지정하는 곳입니다. 각 automation에는 시작 조건이 1개 이상 포함될 수 있으며, 후속 조건을 평가하려면 시작 조건이 하나 이상 true로 평가되어야 합니다.

time.schedule 시작 조건의 예는 다음과 같습니다.

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

기기 상태 변경 시 시작 조건에 대한 예는 다음과 같습니다.

type: device.state.Volume
device: My TV - Living Room
state: currentVolume
greaterThan: 1
lessThan: 10

기기 이벤트의 시작 조건 예:

type: device.event.DoorbellPress
device: My doorbell - Frontdoor

인기척 감지 모드 시작 조건의 예는 다음과 같습니다.

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

시작 조건의 전체 목록 보기

조건

조건을 논리 연산자 and, or, not와 결합하여 더 복잡한 로직을 표현할 수 있습니다.

다음 예에는 time 조건 하나와 device.state 조건이 하나인 condition 구조체가 있습니다. 이 Struct를 사용하면 월요일이나 화요일에 일몰과 일출 사이에 있거나 TV 볼륨이 1~10인 경우 스크립트가 실행되도록 할 수 있습니다.

type: or
conditions:
- type: time.between
  before: sunrise
  after: sunset
  weekdays:
  - MON
  - TUE
- type: device.state
  device: My TV - Living Room
  trait: Volume
  state: currentVolume
  greaterThanOrEqualTo: 1
  lessThanOrEqualTo: 10

다음은 자동화 스크립트 실행을 주말 오전 10시 이전으로 제한하는 기본 time 조건의 예시입니다.

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

온도 조절기 기기 센서 온도 조건은 다음과 같습니다.

type: device.state.TemperatureSetting
device: My Thermostat - Living Room
state: thermostatTemperatureAmbient
greaterThan: 65F

home.state.HomePresence 조건의 예:

type: home.state.HomePresence
state: homePresenceMode
is: AWAY

전체 조건 목록 보기

작업

시작 조건 및 조건과 마찬가지로 각 작업에는 지정되는 작업의 종류를 나타내는 type가 있습니다.

가장 중요하고 유용한 것은 device.command 명령어 유형입니다. 조명을 끄는 동작의 예

type: device.command.OnOff
devices:
- Light A - Living Room
on: false

다른 여러 작업 사이에 지연을 추가하는 작업입니다.

type: time.delay
for: 5min

작업의 전체 목록을 확인합니다.