automations
구조체는 자동화 스크립트의 핵심입니다. 여기에서 시작 조건, 조건, 작업을 포함한 자동화 동작을 지정합니다.
이러한 규칙을 총칭하여 자동화 규칙이라고도 합니다.
automations
구조체에는 1개 이상의 자동화 규칙이 포함되며, 각 규칙에는 항상 시작 조건과 작업 세트가 포함됩니다. 규칙은 스크립트가 실행되기 위해 있어야 하는 추가 한정자인 조건을 선택적으로 포함할 수 있습니다.
키 | 유형 | 설명 |
---|---|---|
|
선택사항 자동화 이름입니다. 개발자에게는 표시되지 않으며 개발자 참고용입니다. |
|
|
[시작 조건] |
필수 시작 조건 목록입니다. |
|
선택사항 조건 |
|
|
[조치] |
필수 작업 목록 |
예
다음은 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