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