Home Assistant
Macro Deck に同梱Home Assistant のライトの切り替え、シーンやスクリプトの実行を行い、ライブの状態をデッキに表示します。
「アドレス」と「長期間有効なアクセストークン」の入力欄がある「Home Assistant に接続」ダイアログ
- エンティティのオン、オフ、切り替え。ボタンに状態を表示
- ライト、カバー、サーモスタット、メディアプレーヤーを設定
- シーン、スクリプト、オートメーションの実行や、任意のサービスの呼び出し
- あらゆるエンティティの状態や属性をライブの変数に
- 状態の変化やイベントバスのイベントで動くトリガー
Home Assistant 連携は、WebSocket API を通じて Macro Deck を Home Assistant に接続します。Macro Deck は接続を 1 つ開いたままにするので、Home Assistant で状態が変わった瞬間に反映され、アクションもすぐに実行されます。Home Assistant は、同じコンピューター、ネットワーク内の Raspberry Pi やサーバー、リモートのアドレスなど、Macro Deck から接続できる場所ならどこで動いていてもかまいません。
できること
- 1 つまたは複数のエンティティをオンまたはオフにする、切り替える。切り替え を設定したボタンは、エンティティがオンの間点灯します。
- ライトを設定 で、ライトの状態、明るさ、色、色温度、トランジションを設定する。
- カバーを開ける、閉める、止める、位置を指定する。サーモスタットの温度、モード、ファンモード、プリセットを設定する。メディアプレーヤーの再生と音量を操作する。
- シーンを有効にする、変数付きでスクリプトを実行する、オートメーションをトリガー、有効化、無効化する。
- サービスを呼び出す で、エンティティ、デバイス、エリアを対象に、JSON のデータを付けて任意のサービスを呼び出す。
- エンティティの状態を取得 で、エンティティの状態や属性を Macro Deck の変数に読み込む。
設定例:
- デスクランプ用の 切り替え ボタン。ランプがオンかどうかを表示します。
- 映画用のシーンを有効にし、メディアプレーヤーの音楽を一時停止する 映画 ボタン。
- ライトの明るさにバインドしたスライダー。デッキから調光でき、Home Assistant での変更も表示されます。
- センサーの温度をラベルに表示するボタンと、玄関のドアが開いたら エンティティの状態が変化 で通知を表示するフロー。
変数とライブ更新
Home Assistant には、Macro Deck が最初から一覧に表示するよりはるかに多くの値があります。すべてのエンティティは、連携の変数の中の折りたたまれた 未バインドの変数 グループにあり、変数 ページやすべての変数の選択画面から見つけられます。エンティティを開いて状態と属性を確認し、必要なものの バインド を選ぶと、ライブで更新される通常の変数になります。この方法で、スライダーからライトの明るさ、ファンの速度、カバーの位置、メディアプレーヤーの音量、サーモスタットの温度を操作できます。
接続が切れると、Macro Deck は自動で再接続します。失敗するたびに少しずつ待ち時間を延ばし、最大 1 分まで待ちます。このとき 接続済み と 切断 のトリガーが動作し、Home Assistant に接続していない間はアクションがメッセージを表示して失敗します。接続できる Home Assistant は 1 つです。
必要なもの
- Macro Deck から接続できる、動作中の Home Assistant (例:
http://homeassistant.local:8123)。 - 長期間有効なアクセストークンを作成するための Home Assistant のユーザーアカウント。
https://のアドレスの場合: コンピューターが信頼する証明書。
セットアップ
ステップ 1: 長期間有効なアクセストークンを作成する
Home Assistant でプロフィールを開き、セキュリティ タブに移動します。長期間有効なアクセストークン までスクロールしてトークンを作成し、名前を
Macro Deckにしてコピーします。トークンは一度しか表示されません。ステップ 2: Home Assistant 連携を開く
Macro Deck のサイドバーで 連携 をクリックし、Home Assistant をクリックします。概要 タブの 設定 セクションで セットアップ をクリックします。右上のスイッチをオンにしても同じダイアログが開き、セットアップが完了すると連携が有効になります。
ステップ 3: アドレスとトークンを入力する
Home Assistant に接続 ダイアログで次の項目を入力します。
- アドレス: Home Assistant を開くときのアドレス。ポートも含めます (例:
http://homeassistant.local:8123)。 - 長期間有効なアクセストークン: コピーしたトークン。
続行 をクリックすると、Macro Deck は接続をテストし、Home Assistant の後ろにかっこ付きで家の名前を付けた名前で保存します。
- アドレス: Home Assistant を開くときのアドレス。ポートも含めます (例:
ステップ 4: ボタンにアクションを追加する
デッキ ページでボタンをクリックします。デッキのロックが解除されている必要があります。右上に ロック ボタンが表示されていれば解除されています。エディターが開き、短押し が選択されています。+ アクションを追加 をクリックし、アクションを追加 ダイアログの左側で Home Assistant を選択して 切り替え を選び、ライトなど 1 つ以上の エンティティ を選びます。
ステップ 5: ボタンを押す
デッキのボタンを押します。Home Assistant でライトが切り替わり、ボタンにはライトがオンかどうかが表示されます。
ステップ 6: 値をバインドしてボタンに表示する
値を表示するには、Home Assistant のページの 変数 タブを開き、未バインドの変数 グループを開きます。エンティティを開き、その状態または属性の バインド をクリックします。新しい変数をラベルで使います (例:
{{ vars.ha_sensor_living_room_temperature }})。
アクション12
ボタンに設定したり、フローから実行したりできます。
- サービスを呼び出す
- エンティティ、デバイス、エリア、JSON のデータを任意で指定して、任意の Home Assistant サービスを呼び出します。
- オンにする
- 1 つ以上のエンティティをオンにします。
- オフにする
- 1 つ以上のエンティティをオフにします。
- 切り替え
- 1 つ以上のエンティティを切り替え、オンかどうかをボタンに表示します。
- ライトを設定
- ライトを切り替え、明るさ、色、色温度、トランジションを設定します。
- カバーを制御
- カバーを開ける、閉める、止めるか、位置や傾きの位置を設定します。
- メディアプレーヤーを制御
- メディアプレーヤーの再生、一時停止、停止、スキップ、ミュート、音量設定を行います。
- サーモスタットを設定
- サーモスタットの目標温度、モード、ファンモード、プリセットを設定します。
- シーンを有効化
- シーンを有効にします。トランジションも指定できます。
- スクリプトを実行
- スクリプトを実行します。変数を JSON オブジェクトで渡すこともできます。
- オートメーションを制御
- オートメーションをトリガー、有効化、無効化、または切り替えます。条件を無視して実行することもできます。
- エンティティの状態を取得
- エンティティの状態またはその属性の 1 つを Macro Deck の変数に読み込みます。
トリガー4
ボタンやフローがこれらのイベントに反応できます。
- 接続済み
- Macro Deck が Home Assistant に接続しました。
- 切断
- Home Assistant との接続が切れました。
- エンティティの状態が変化
- エンティティの状態が変わりました。ドメイン、エンティティ、特定の状態からの変化や特定の状態への変化に限定できます。
- Home Assistant イベント
- オートメーション、スクリプト、ZHA や deCONZ のボタン操作、カスタムイベントなど、Home Assistant のイベントバス上のあらゆるイベントです。1 つのイベントの種類に限定できます。
変数5
これらの値をボタンやウィジェットに表示したり、条件に使ったりできます。
homeassistant_is_connected- Macro Deck が Home Assistant に接続しているかどうかです。
homeassistant_version- Home Assistant のバージョンです。
homeassistant_location_name- 家の名前です。
homeassistant_entity_count- Home Assistant にあるエンティティの数です。
ha_<entity>,ha_<entity>_<attribute>- エンティティの状態や任意の属性です。未バインドの変数 からバインドすると作られます。名前はエンティティ ID から提案されます (例:
ha_light_office_lamp、ha_light_office_lamp_brightness_pct)。ライトのbrightness_pctなど、多くは設定することもできます。
よくある質問
Home Assistant は同じコンピューターで動いている必要がありますか?
いいえ。Macro Deck はネットワーク経由で接続するため、Macro Deck から接続できれば、Home Assistant は Raspberry Pi、サーバー、リモートのアドレスのどれで動いていてもかまいません。
複数の Home Assistant を接続できますか?
いいえ。この連携が対応している Home Assistant は 1 つです。セットアップをやり直すと接続が置き換わりますが、ボタンはそのまま使えます。
セットアップで証明書を検証できないと表示されます。どうすればよいですか?
コンピューターが https:// のアドレスの証明書を信頼していません。オペレーティングシステムの証明書ストアでその証明書を信頼するか、ローカルネットワークで http:// を使って接続してください。
リバースプロキシの背後にある Home Assistant に接続できないのはなぜですか?
一部のプロキシは、自動化された通信と判断したリクエストをブロックします。設定 > 詳細設定 > HTTP を開き、HTTP User-Agent にプロキシが受け付ける値を入力してください。
接続が切れるとどうなりますか?
Macro Deck が自動で再接続し、切断 と 接続済み のトリガーが動作します。しばらく Home Assistant に接続できない場合、連携に Home Assistant に到達できません と表示され、バックグラウンドで再試行を続けます。
アクセストークンはどこに保存されますか?
トークンはコンピューター上に暗号化して保存され、Home Assistant との通信以外でコンピューターの外に出ることはありません。Home Assistant がトークンを拒否すると、連携に問題が表示されます。新しいトークンを作成して、セットアップをやり直してください。
スマートホームと Webのその他の連携
AdGuard Home
Macro Deck に同梱AdGuard Home の保護をオン、オフ、一時停止し、その統計をデッキに表示します。
RSS フィード
Macro Deck に同梱RSS フィードや Atom フィードをフォローし、最新の記事をウィジェットに表示して、新しい記事が届いたときに反応します。
HTTP
Macro Deck に同梱ボタンから HTTP リクエストを送信し、応答の値を変数に保存します。
天気
Macro Deck に同梱API キーなしで、登録した場所の現在の天気と予報をデッキに表示します。