automations
構造体は自動化スクリプトの中核です。ここでは、開始条件、条件、アクションなど、自動化の動作を指定します。これらをまとめて自動化ルールとも呼びます。
automations
構造体には 1 つ以上の自動化ルールが含まれ、各ルールには常に開始条件とアクションのセットが含まれます。ルールには、スクリプトを実行するために満たす必要のある追加の修飾子である条件を任意で含めることができます。
キー | タイプ | 説明 |
---|---|---|
|
省略可 自動化の名前。 これはユーザーには表示されず、デベロッパーの参照専用です。 |
|
|
[スターター] |
必須 スターターのリスト。 |
|
省略可 条件 |
|
|
[Action] |
必須 アクションのリスト |
例
以下に、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
構造体があります。この Struct を使用すると、月曜日または火曜日の日没から日の出までの間、またはテレビの音量が 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