Home Assistant は、すべてのオートメーションを YAML で記述する必要があった時代から大きく進歩しました。最近では、コードを 1 行も表示することなく、オートメーション エディターでオートメーションを構築できます。オートメーション エディターでは選択できるアクションが非常に多いため、最も役立つアクションのいくつかを見逃しがちです。
私のオートメーションの多くには、同様のアクションがいくつか含まれています。たとえば、私の携帯電話と妻の携帯電話に通知を送信するオートメーションが複数あり、家にいて電源が入っている場合はスマート TV に通知を送信します。
3 つのデバイスすべての通知アクションを、必要な各オートメーションに追加することもできました。代わりに、メッセージを入力として要求し、そのメッセージを 3 つのデバイスすべてに送信するスクリプトを作成しました。
各オートメーションに 3 つの通知アクションを追加するのではなく、スクリプトを呼び出す利点は、通知の送信先デバイスを変更する場合、または携帯電話やテレビをアップグレードする場合に、スクリプトを変更するだけで済むことです。スクリプトが更新されると、そのスクリプトを呼び出すすべてのオートメーションが期待どおりに動作するため、修正するために複数のオートメーションをたどる必要がなくなりました。
スクリプトを作成するには、[設定]>[オートメーションとシーン]>[スクリプト]に移動し、[スクリプトの作成]ボタンをクリックします。この方法はオートメーション エディターでオートメーションを構築するのと似ていますが、3 点メニューの[フィールドの追加]オプションを使用して、通知メッセージのコンテンツなどの必須フィールドを追加できます。スクリプトを作成したら、オートメーション エディターでアクションとしてスクリプトを選択できます。

車輪を再発明する必要はありません。
条件に応じて 2 つの異なるアクション セットのいずれかを実行するオートメーションがある場合、「If-then」アクションでそのジョブを実行できます。条件が満たされた場合は 1 つのアクション セットに従い、条件が満たされない場合はもう 1 つのアクション セットに従います。ただし、場合によっては、2 つ以上のアクションのセットの中から選択したい場合があります。
そこで「選択」アクションが登場します。 2 つのオプション (「if」と「else」) だけを指定する代わりに、複数の条件セットを追加できます。すべての条件が満たされる最初のオプションが実行されます。どの条件も満たされない場合に実行されるデフォルトのアクションのセットを追加することもできます。
「選択」アクションを使用すると、多数の同様の自動化を 1 つまたは 2 つに削減できるなど、多くの利点があります。たとえば、オートメーションに複数のトリガーを含めて、それぞれにトリガー ID を与えることができます。 「選択」アクションを使用すると、オートメーションの実行をトリガーしたトリガー ID に応じて、さまざまなアクションのセットを実行できます。
ホーム アシスタントにはいくつかの「待機」アクションがあり、それぞれに独自の利点があります。 「時間が経過するまで待つ (遅延)」は、オートメーションに遅延を追加するために使用できるアクションです。たとえば、スマート スピーカーに 2 つの音声通知を次々に送信する場合、このアクションを使用して、最初の通知が終了する前に 2 番目の通知の再生を停止できます。
他にも 2 つの便利な「待機」アクションを使用できます。 「テンプレートを待つ」では、テンプレートが true と評価されるまで自動化が一時停止されます。そうでない場合、自動化は一時停止されたままになります。
テンプレートは、テンプレートが参照するエンティティの状態が変化するたびに再評価されます。それでもテンプレートが true でない場合、自動化は待機し続けます。テンプレートが true であると再評価された場合にのみ、残りのアクションが実行されます。
「トリガーを待つ」アクションを使用すると、特定のトリガー イベントが発生するまでオートメーションを一時停止できます。これらは、ボタンが押された場合やモーションが検出された場合など、ホーム アシスタント オートメーションを起動するために使用するトリガーと同じです。
すべての「待機」アクションに対して、設定された時間が経過した後に自動化を停止するオプションのタイムアウトを追加できます。これにより、たとえば「テンプレートを待つ」アクションによってオートメーションが無期限に停止することがなくなります。
「scene.create」アクションは非常に便利ですが、私は長い間意識していませんでした。これは、スマート ホーム内のデバイスの現在の状態のスナップショットを取得する効果的な方法です。その後、いつでもそのシーンを呼び出して、スマート ホームをスナップショットを撮ったときの正確な状態に戻すことができます。
たとえば、水漏れが検出された場合、家の照明を赤く点滅させて、問題についてすぐに知らせることができます。ただし、もともとテレビを見るためにリビング ルームの照明を暗くしていた場合、水漏れが止まった後で再び最大の明るさで照明を点灯することは望ましくありません。
「scene.create」アクションを使用すると、スナップショットを作成するすべてのエンティティを「エンティティ スナップショット」セクションにリストできます。希望の状態にないエンティティがある場合は、「エンティティの状態」セクションを使用して、シーンのエンティティの状態を手動で設定できます。次に、作成したシーンの ID を指定して「scene.activate」アクションを使用して、すべてのデバイスを以前の状態に戻すことができます。
ホーム アシスタントには、オートメーションで使用できる多数のアクションがあります。新しい「ターゲット」セレクターが導入されたとしても、利用可能な便利なアクションの一部を見逃しがちです。時間と労力を大幅に節約できるため、いくつか試してみる価値はあります。