automations Struct เป็นแกนหลักของสคริปต์การทำงานอัตโนมัติ ซึ่งเป็นจุดที่ระบุลักษณะการทำงานอัตโนมัติ รวมถึงเงื่อนไขเริ่มต้น เงื่อนไข และการดำเนินการ
โดยรวมแล้วสิ่งเหล่านี้เรียกว่ากฎการทำงานอัตโนมัติ
automationsโครงสร้างประกอบด้วยกฎการทำงานอัตโนมัติอย่างน้อย 1 รายการ และกฎแต่ละรายการ
จะมีชุดเงื่อนไขเริ่มต้นและการดำเนินการเสมอ กฎอาจมี
เงื่อนไข (ไม่บังคับ) ซึ่งเป็นตัวระบุเพิ่มเติมที่ต้องมีเพื่อให้
สคริปต์ทำงานได้
| คีย์ | ประเภท | คำอธิบาย |
|---|---|---|
|
|
ไม่บังคับ ชื่อของการทำงานอัตโนมัติ ซึ่งจะไม่แสดงต่อผู้ใช้ แต่มีไว้เพื่อเป็นข้อมูลอ้างอิงสำหรับนักพัฒนาแอปเท่านั้น |
|
|
|
[Starter] |
ต้องระบุ รายการเงื่อนไขเริ่มต้น |
|
|
ไม่บังคับ เงื่อนไข |
|
|
|
ต้องระบุ รายการการดำเนินการ |
ตัวอย่าง
ต่อไปนี้เป็นตัวอย่างเบื้องต้น 2 ตัวอย่างของ automations Struct
ในตัวอย่างแรก การทำงานอัตโนมัติจะเริ่มต้นเมื่อเปิด
TVชื่อ "ทีวีของฉัน"
เมื่อมีการเรียกใช้ ระบบจะดำเนินการต่อไปนี้
เปิดอุปกรณ์ LIGHT 2 เครื่องซึ่งชื่อว่า "หลอดไฟ A" และ "หลอดไฟ B" และตั้งค่าความสว่างเป็นระดับ 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
ในตัวอย่างที่ 2 การทำงานอัตโนมัติเดียวกันจะเริ่มเมื่อพระอาทิตย์ตกในวันจันทร์และวันพฤหัสบดี
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
จานเรียกน้ำย่อย
Struct Starter คือจุดที่คุณระบุเงื่อนไขเริ่มต้นที่จะทำให้ระบบเรียกใช้
สคริปต์การทำงานอัตโนมัติ automation แต่ละรายการอาจมีเงื่อนไขเริ่มต้นอย่างน้อย 1 รายการ และเงื่อนไขเริ่มต้นอย่างน้อย 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 เพื่อ
แสดงตรรกะที่ซับซ้อนมากขึ้น
ในตัวอย่างต่อไปนี้ มี condition Struct ที่มีtime
เงื่อนไข 1 รายการและเงื่อนไข device.state 1 รายการ Struct นี้ช่วยให้สคริปต์
ทำงานได้หากเวลาอยู่ระหว่างช่วงพระอาทิตย์ตกจนถึงพระอาทิตย์ขึ้นในวันจันทร์หรือวันอังคาร หรือหากระดับเสียงของทีวีอยู่ระหว่าง 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
ตัวอย่างtimeเงื่อนไขพื้นฐานที่จำกัดการเรียกใช้สคริปต์การทำงานอัตโนมัติ
ในช่วงสุดสัปดาห์ก่อนเวลา 10:00 น.
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