Otomatisasi

automations Struct adalah inti dari skrip otomatisasi. Di sini, perilaku otomatisasi ditentukan, termasuk pemicu, kondisi, dan tindakan. Secara kolektif, hal ini juga disebut sebagai aturan otomatisasi.

automations Struct berisi satu atau beberapa aturan otomatisasi, dan setiap aturan selalu berisi serangkaian pemicu dan tindakan. Secara opsional, aturan dapat berisi kondisi, yang merupakan kualifikasi tambahan yang harus ada agar skrip dapat dieksekusi.

Key Jenis Deskripsi

name

String

Opsional

Nama otomatisasi.

Nama ini tidak ditampilkan kepada pengguna, hanya untuk referensi developer.

starters

[Starter]

Wajib

Daftar pemicu.

condition

Condition

Opsional

Kondisi

actions

[Action]

Wajib

Daftar tindakan

Contoh

Berikut adalah dua contoh pengantar automations Struct.

Pada contoh pertama, otomatisasi dimulai saat a TV bernama "TV Saya" diaktifkan.

Setelah dipicu, tindakan berikut akan dilakukan:

Dua LIGHT perangkat, yang bernama "Lampu A" dan "Lampu B", diaktifkan dan disetel ke tingkat kecerahan 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

Pada contoh kedua, otomatisasi yang sama dimulai saat matahari terbenam setiap hari Senin dan Kamis:

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

Pemicu

Starter Struct adalah tempat Anda menentukan pemicu yang menyebabkan skrip Otomatisasi dieksekusi. Setiap automation dapat berisi satu atau beberapa pemicu, dan setidaknya satu pemicu harus bernilai true agar kondisi berikutnya dapat dievaluasi.

Contoh pemicu time.schedule:

type: time.schedule
at: sunrise+30min
weekdays:
- MON
- TUE

Contoh pemicu pada perubahan status perangkat:

type: device.state.Volume
device: My TV - Living Room
state: currentVolume
greaterThan: 1
lessThan: 10

Contoh pemicu pada peristiwa perangkat:

type: device.event.DoorbellPress
device: My doorbell - Frontdoor

Contoh pemicu pada perubahan mode kehadiran di rumah:

type: home.state.HomePresence
state: homePresenceMode
is: HOME

Lihat daftar lengkap pemicu.

Kondisi

Kondisi dapat digabungkan dengan operator logis and, or, dan not untuk mengekspresikan logika yang lebih kompleks.

Dalam contoh berikut, ada condition Struct dengan satu kondisi time dan satu kondisi device.state. Struct ini memungkinkan skrip berjalan jika waktunya antara matahari terbenam dan matahari terbit pada hari Senin atau Selasa, atau, jika volume TV antara 1 dan 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

Contoh kondisi time dasar yang membatasi eksekusi skrip Otomatisasi hingga akhir pekan sebelum pukul 10.00:

type: time.between
before: 10am
weekdays:
- SAT
- SUN

Kondisi suhu sensor perangkat termostat:

type: device.state.TemperatureSetting
device: My Thermostat - Living Room
state: thermostatTemperatureAmbient
greaterThan: 65F

Contoh kondisi home.state.HomePresence:

type: home.state.HomePresence
state: homePresenceMode
is: AWAY

Lihat daftar lengkap kondisi.

Tindakan

Seperti pemicu dan kondisi, setiap tindakan memiliki type yang menunjukkan jenis tindakan yang ditentukan.

Jenis perintah yang paling penting dan paling berguna adalah device.command. Contoh tindakan mematikan lampu.

type: device.command.OnOff
devices:
- Light A - Living Room
on: false

Tindakan untuk menambahkan penundaan antara beberapa tindakan lainnya.

type: time.delay
for: 5min

Lihat daftar lengkap tindakan.