automations Yapısı, otomasyon komut dosyasının temelini oluşturur. Başlatıcılar, koşullar ve işlemler de dahil olmak üzere otomasyon davranışı burada belirtilir.
Bunlara toplu olarak otomasyon kuralı da denir.
automations Yapısı, bir veya daha fazla otomasyon kuralı içerir ve her kural her zaman bir dizi başlatıcı ve işlem içerir. Bir kural isteğe bağlı olarak koşullar içerebilir. Koşullar, komut dosyasının yürütülmesi için geçerli olması gereken ek niteleyicilerdir.
| Anahtar | Tür | Açıklama |
|---|---|---|
|
|
İsteğe bağlı Otomasyonun adı. Bu açıklama kullanıcılara gösterilmez, yalnızca geliştirici referansı içindir. |
|
|
|
[Starter] |
Zorunlu Başlangıç talimatlarının listesi. |
|
|
İsteğe bağlı Koşul |
|
|
|
[Action] |
Zorunlu İşlemlerin listesi |
Örnekler
Aşağıda automations Yapıları ile ilgili iki giriş örneği verilmiştir.
İlk örnekte, "TV'm" adlı bir TV açıldığında otomasyon başlatılıyor.
Tetiklendikten sonra aşağıdaki işlemler gerçekleştirilir:
"Işık A" ve "Işık B" adlı iki LIGHT cihazı açık ve parlaklık seviyesi 50'ye ayarlanmış.
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
İkinci örnekte, aynı otomasyon her pazartesi ve perşembe gün batımında başlatılıyor:
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
Başlangıçlar
Başlatıcı yapısı, otomasyon komut dosyasının yürütülmesine neden olan başlatıcıları belirttiğiniz yerdir. Her automation bir veya daha fazla başlatıcı içerebilir ve sonraki koşulların değerlendirilmesi için en az bir başlatıcının true olarak değerlendirilmesi gerekir.
time.schedule başlangıcı örneği:
type: time.schedule
at: sunrise+30min
weekdays:
- MON
- TUE
Cihaz durumu değişiklikleriyle ilgili bir başlangıç örneği:
type: device.state.Volume
device: My TV - Living Room
state: currentVolume
greaterThan: 1
lessThan: 10
Bir cihaz etkinliğinde başlatıcı örneği:
type: device.event.DoorbellPress
device: My doorbell - Frontdoor
Evde varlık modu değişiklikleriyle ilgili başlangıç örneği:
type: home.state.HomePresence
state: homePresenceMode
is: HOME
Başlangıç noktalarının tam listesini görüntüleyin.
Koşul
Koşullar, daha karmaşık mantığı ifade etmek için and, or ve not mantıksal operatörleriyle birleştirilebilir.
Aşağıdaki örnekte, bir time koşulu ve bir device.state koşulu içeren bir condition Struct vardır. Bu yapı, komut dosyasının aşağıdaki durumlarda çalışmasına olanak tanır:
Pazartesi veya salı günleri gün batımı ile gün doğumu arasında ya da TV'nin ses düzeyi 1 ile 10 arasındaysa:
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
Bir otomasyon komut dosyasının yürütülmesini hafta sonları sabah 10:00'dan önceyle sınırlayan temel bir time koşul örneği:
type: time.between
before: 10am
weekdays:
- SAT
- SUN
Termostat cihazı sensör sıcaklığı koşulu:
type: device.state.TemperatureSetting
device: My Thermostat - Living Room
state: thermostatTemperatureAmbient
greaterThan: 65F
home.state.HomePresence koşulu örneği:
type: home.state.HomePresence
state: homePresenceMode
is: AWAY
Koşulların tam listesini görüntüleyin.
İşlemler
Başlatıcılar ve koşullar gibi her işlemin, ne tür bir işlemin belirtildiğini gösteren bir type vardır.
En önemli ve en kullanışlı olanlar device.command komut türleridir. Işıkları kapatma işlemi örneği.
type: device.command.OnOff
devices:
- Light A - Living Room
on: false
Diğer işlemler arasına gecikme ekleme işlemi.
type: time.delay
for: 5min