オートメーション

automations 構造体は、自動化スクリプトの中核です。ここでは、開始条件、条件、アクションなど、自動化の動作を指定します。これらを総称して自動化ルールとも呼ばれます。

automations 構造体には 1 つ以上の自動化ルールが含まれており、各ルールには常に開始条件とアクションのセットが含まれます。必要に応じて、ルールに条件を含めることができます。条件とは、スクリプトを実行するために必要な追加の修飾子です。

キー タイプ 説明

name

String

任意

自動化の名前。

これはユーザーには表示されず、デベロッパーの参照用としてのみ使用されます。

starters

[開始条件]

必須

開始条件のリスト。

condition

条件

任意

条件

actions

[アクション]

必須

アクションのリスト

以下に、automations 構造体の 2 つの導入例を示します。

最初の例では、「My TV」という名前の TV がオンになると自動化が開始されます。

トリガーされると、次のアクションが実行されます。

「ライト A」と「ライト B」という名前の 2 つの 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

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

開始条件

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

開始条件の一覧は、こちらをご覧ください

条件

条件を論理演算子 andornot と組み合わせて、より複雑なロジックを表現できます。

次の例では、1 つの time 条件と 1 つの device.state 条件を持つ condition 構造体があります。この構造体を使用すると、月曜日または火曜日の日の入りから日の出までの間、またはテレビの音量が 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

自動化スクリプトの実行を午前 10:00 より前の週末に制限する基本的な time 条件の例を次に示します。

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

詳しくは、アクションの一覧をご覧ください。