Struct ของ automations
เป็นแกนหลักของสคริปต์การทำงานอัตโนมัติ นี่เป็นที่ที่จะระบุลักษณะการทำงานของการทำงานอัตโนมัติ รวมถึงเงื่อนไขเริ่มต้น เงื่อนไข และการดำเนินการ
กฎเหล่านี้รวมเรียกว่ากฎการทำงานอัตโนมัติ
โครงสร้าง automations
มีกฎอัตโนมัติอย่างน้อย 1 รายการ และกฎแต่ละข้อจะมีชุดเงื่อนไขเริ่มต้นและการดำเนินการเสมอ กฎอาจมีเงื่อนไขซึ่งเป็นตัวระบุเพิ่มเติมที่ต้องมีเพื่อให้เรียกใช้สคริปต์ได้
คีย์ | ประเภท | คำอธิบาย |
---|---|---|
|
ไม่บังคับ ชื่อการทำงานอัตโนมัติ ซึ่งจะไม่แสดงให้ผู้ใช้เห็น แต่ใช้เพื่อการอ้างอิงของนักพัฒนาซอฟต์แวร์เท่านั้น |
|
|
จำเป็น รายการเงื่อนไขเริ่มต้น |
|
|
ไม่บังคับ เงื่อนไข |
|
|
จำเป็น รายการการดำเนินการ |
ตัวอย่าง
ต่อไปนี้เป็นตัวอย่างเบื้องต้น 2 รายการของ automations
Structs
ในตัวอย่างแรก การทำงานอัตโนมัติจะเริ่มต้นเมื่อ TV
ชื่อ "ทีวีของฉัน" เปิดอยู่
เมื่อทริกเกอร์แล้ว ระบบจะดําเนินการต่อไปนี้
อุปกรณ์ LIGHT
2 เครื่องที่ชื่อว่า "Light A" และ "Light 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
ที่มีเงื่อนไข 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