自動化

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

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

キー タイプ 説明

name

String

省略可

自動化の名前。

ユーザーには表示されず、デベロッパーの参照用です。

starters

[Starter]

必須

開始条件のリスト。

condition

Condition

省略可

条件

actions

[Action]

必須

アクションのリスト

例

以下に、automations 構造体の簡単な例を 2 つ示します。

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

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

「Light A」と「Light 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

開始条件の完全なリストをご覧ください。

条件

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

次の例では、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 時より前に制限する基本的な 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

アクションの完全なリストをご覧ください。