automations Struct là cốt lõi của một tập lệnh tự động hoá. Đây là nơi bạn chỉ định hành vi tự động hoá, bao gồm cả các yếu tố khởi động, điều kiện và hành động.
Những thông tin này được gọi chung là quy tắc tự động hoá.
automations Struct 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 nhóm các điều kiện bắt đầu và hành động. Một quy tắc có thể chứa các điều kiện (không bắt buộc). Đây là những điều kiện bổ sung phải được đáp ứng để tập lệnh được thực thi.
| Khóa | Loại | Nội dung mô tả |
|---|---|---|
|
|
Không bắt buộc Tên của quy trình tự động hoá. Người dùng sẽ không thấy tên này, tên này chỉ dành cho nhà phát triển tham khảo. |
|
|
|
[Starter] |
Bắt buộc Danh sách các món khai vị. |
|
|
Không bắt buộc Điều kiện |
|
|
|
Bắt buộc Danh sách các thao tác |
Ví dụ
Sau đây là 2 ví dụ giới thiệu về Struct automations.
Trong ví dụ đầu tiên, quy trình tự động hoá sẽ bắt đầu khi TV có tên "TV của tôi" được bật.
Sau khi được kích hoạt, các hành động sau sẽ được thực hiện:
Hai thiết bị LIGHT, có tên là "Đèn A" và "Đèn 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, cùng một quy trình tự động hoá được bắt đầu vào lúc hoàng hôn 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
Đội hình ra sân
Starter Struct là nơi bạn chỉ định các starter khiến Automation script được thực thi. Mỗi automation có thể chứa một hoặc nhiều starter và ít nhất một starter phải đánh giá thành true để các điều kiện tiếp theo được đánh giá.
Ví dụ về một time.schedule khởi động:
type: time.schedule
at: sunrise+30min
weekdays:
- MON
- TUE
Ví dụ về điều kiện khởi động khi trạng thái thiết bị thay đổi:
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 cho 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ế độ hiện diện ở nhà thay đổi:
type: home.state.HomePresence
state: homePresenceMode
is: HOME
Xem danh sách đầy đủ các nhà sáng tạo mới.
Điều kiện
Bạn có thể kết hợp các điều kiện với toán tử logic and, or và not để thể hiện logic phức tạp hơn.
Trong ví dụ sau, có một Struct 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 đó là khoảng 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á vào các ngày cuối tuần trước 10:00 sáng:
type: time.between
before: 10am
weekdays:
- SAT
- SUN
Điều kiện nhiệt độ của cảm biến trê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 và điều kiện bắt đầu, mỗi hành động đều có một type cho biết loại hành động đang được chỉ định.
Các loại lệnh device.command là quan trọng và hữu ích nhất. 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