automations
構造体は、自動化スクリプトの中核です。ここでは、開始条件、条件、アクションなど、自動化の動作を指定します。これらを総称して自動化ルールとも呼ばれます。
automations
構造体には 1 つ以上の自動化ルールが含まれており、各ルールには常に開始条件とアクションのセットが含まれます。必要に応じて、ルールに条件を含めることができます。条件とは、スクリプトを実行するために必要な追加の修飾子です。
キー | タイプ | 説明 |
---|---|---|
|
任意 自動化の名前。 これはユーザーには表示されず、デベロッパーの参照用としてのみ使用されます。 |
|
|
[開始条件] |
必須 開始条件のリスト。 |
|
任意 条件 |
|
|
[アクション] |
必須 アクションのリスト |
例
以下に、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
条件
条件を論理演算子 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: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
詳しくは、アクションの一覧をご覧ください。