ระบบอัตโนมัติ

automations Struct เป็นแกนหลักของสคริปต์การทำงานอัตโนมัติ ซึ่งเป็นจุดที่ระบุลักษณะการทำงานอัตโนมัติ รวมถึงเงื่อนไขเริ่มต้น เงื่อนไข และการดำเนินการ โดยรวมแล้วสิ่งเหล่านี้เรียกว่ากฎการทำงานอัตโนมัติ

automationsโครงสร้างประกอบด้วยกฎการทำงานอัตโนมัติอย่างน้อย 1 รายการ และกฎแต่ละรายการ จะมีชุดเงื่อนไขเริ่มต้นและการดำเนินการเสมอ กฎอาจมี เงื่อนไข (ไม่บังคับ) ซึ่งเป็นตัวระบุเพิ่มเติมที่ต้องมีเพื่อให้ สคริปต์ทำงานได้

คีย์ ประเภท คำอธิบาย

name

สตริง

ไม่บังคับ

ชื่อของการทำงานอัตโนมัติ

ซึ่งจะไม่แสดงต่อผู้ใช้ แต่มีไว้เพื่อเป็นข้อมูลอ้างอิงสำหรับนักพัฒนาแอปเท่านั้น

starters

[Starter]

ต้องระบุ

รายการเงื่อนไขเริ่มต้น

condition

Condition

ไม่บังคับ

เงื่อนไข

actions

[การดำเนินการ]

ต้องระบุ

รายการการดำเนินการ

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างเบื้องต้น 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

ดูรายการการดำเนินการทั้งหมด