Cấu trúc automations
là thành phần cốt lõi của một tập lệnh tự động hoá. Đây là nơi hành vi tự động hoá được chỉ định, bao gồm điều kiện khởi động, điều kiện và hành động.
Những quy tắc này còn được gọi chung là một quy tắc tự động hoá.
Cấu trúc automations
chứa một hoặc nhiều quy tắc tự động hoá và mỗi quy tắc luôn chứa một tập hợp các điều kiện khởi động và hành động. Một quy tắc có thể tuỳ ý chứa các điều kiện là các bộ hạn định bổ sung phải có để thực thi tập lệnh.
Khóa | Loại | Mô tả |
---|---|---|
|
Không bắt buộc Tên của quy trình tự động hoá. Người dùng không thấy tên này mà chỉ để nhà phát triển tham khảo. |
|
|
[Khởi đầu] |
Bắt buộc Danh sách điều bắt đầu. |
|
Không bắt buộc Điều kiện |
|
|
Bắt buộc Danh sách hành động |
Ví dụ
Sau đây là hai ví dụ giới thiệu về Cấu trúc automations
.
Trong ví dụ đầu tiên, quá trình tự động hoá được bắt đầu khi TV
có tên là "TV của tôi" được bật.
Sau khi được kích hoạt, các thao tác sau sẽ được thực hiện:
Hai thiết bị LIGHT
có tên là "Light A" và "Light B" được bật và đặt ở mức độ sáng 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
Trong ví dụ thứ hai, quá trình tự động hoá tương tự sẽ bắt đầu lúc hoàng hôn vào mỗi thứ Hai và thứ Năm:
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
Món khai vị
Cấu trúc Starter (Bắt đầu) là nơi bạn chỉ định các điều kiện khởi động khiến tập lệnh Tự động hoá được thực thi. Mỗi automation
có thể chứa một hoặc nhiều điều kiện khởi động và ít nhất một điều kiện khởi động phải đánh giá là true
để các điều kiện tiếp theo được đánh giá.
Ví dụ về điều kiện khởi động time.schedule
:
type: time.schedule
at: sunrise+30min
weekdays:
- MON
- TUE
Ví dụ về một điều kiện khởi động trên trạng thái thay đổi của thiết bị:
type: device.state.Volume
device: My TV - Living Room
state: currentVolume
greaterThan: 1
lessThan: 10
Ví dụ về điều kiện khởi động trong một sự kiện trên thiết bị:
type: device.event.DoorbellPress
device: My doorbell - Frontdoor
Ví dụ về điều kiện khởi động khi chế độ có mặt ở nhà thay đổi:
type: home.state.HomePresence
state: homePresenceMode
is: HOME
Xem danh sách đầy đủ các điều kiện khởi động.
Điều kiện
Bạn có thể kết hợp các điều kiện với các toán tử logic and
, or
và not
để biểu thị logic phức tạp hơn.
Trong ví dụ sau, có một Cấu trúc condition
với một điều kiện time
và một điều kiện device.state
. Struct này cho phép tập lệnh chạy nếu vào thời gian từ lúc mặt trời lặn đến lúc mặt trời mọc vào thứ Hai hoặc thứ Ba, hoặc nếu âm lượng TV nằm trong khoảng từ 1 đến 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
Ví dụ về điều kiện time
cơ bản giới hạn việc thực thi một tập lệnh Tự động hoá trong những ngày cuối tuần trước 10 giờ sáng:
type: time.between
before: 10am
weekdays:
- SAT
- SUN
Điều kiện nhiệt độ của cảm biến thiết bị điều nhiệt:
type: device.state.TemperatureSetting
device: My Thermostat - Living Room
state: thermostatTemperatureAmbient
greaterThan: 65F
Ví dụ về điều kiện home.state.HomePresence
:
type: home.state.HomePresence
state: homePresenceMode
is: AWAY
Xem danh sách đầy đủ các điều kiện.
Thao tác
Giống như điều kiện khởi động và điều kiện, mỗi hành động đều có một type
cho biết loại hành động đang được chỉ định.
Tuỳ chọn quan trọng nhất và hữu ích nhất là các loại lệnh device.command
. Ví dụ về hành động tắt đèn.
type: device.command.OnOff
devices:
- Light A - Living Room
on: false
Một thao tác thêm độ trễ giữa nhiều thao tác khác.
type: time.delay
for: 5min