بنية automations
هي جوهر النص البرمجي للتشغيل الآلي. وهنا يتم تحديد سلوك التشغيل الآلي، بما في ذلك إجراءات التفعيل والشروط والإجراءات.
ويُشار إلى هذه القواعد مجتمعةً باسم قاعدة التشغيل الآلي.
تحتوي بنية automations
على قاعدة مبرمَجة واحدة أو أكثر، وتحتوي كل قاعدة دائمًا على مجموعة من إجراءات التفعيل والإجراءات. قد تحتوي القاعدة اختياريًا على شروط، وهي مؤهِّلات إضافية يجب وضعها حتى يتم تنفيذ النص البرمجي.
المفتاح | النوع | الوصف |
---|---|---|
|
إجراء اختياري اسم ملف التشغيل الآلي. لن يظهر هذا الاسم للمستخدمين، بل كمرجع لمطوّري البرامج فقط. |
|
|
مطلوبة تمثّل هذه السمة قائمة بالبدايات. |
|
|
إجراء اختياري الشرط |
|
|
[الإجراء] |
مطلوبة قائمة بالإجراءات |
أمثلة
في ما يلي مثالان تمهيديان لهيكل automations
.
في المثال الأول، تبدأ عملية التشغيل الآلي عند تشغيل
TV
باسم "تلفزيوني".
وبعد تفعيلها، يتم تنفيذ الإجراءات التالية:
تم تشغيل جهازين من LIGHT
، باسم "الضوء أ" و "الضوء ب"، وتم ضبطهما على
مستوى السطوع 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
في المثال الثاني، تبدأ نفس عملية التشغيل الآلي عند الإيقاف كل اثنين وخميس:
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
المقبلات
بنية Starter هي المكان الذي تُحدد فيه البدايات التي تؤدي إلى تنفيذ النص البرمجي التلقائي. يمكن أن تحتوي كل automation
على إجراء تفعيل واحد أو أكثر، ويجب تقييم إجراء تفعيل واحد على الأقل إلى 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
واحد وشرط device.state
واحد. تسمح هذه البنية بتشغيل النص البرمجي إذا كان الوقت بين غروب الشمس وشروقها يوم الاثنين أو الثلاثاء، أو إذا كان مستوى صوت التلفزيون
بين 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