【Proxmox/自宅鯖/Google Home】声をトリガーにスクリプトを実行してみる

記事内に広告が含まれています。

実際に自作のスクリプトを実行させた訳ではないので若干タイトル詐欺。

IFTTTとか使えばできるんだけど、IFTTTの無料プランは作れるアプレット数に制限があるのと、せっかくなら自宅鯖で完結したい、という考えからHome Assistant OSを試してみた。

スポンサーリンク

参考リンク

Home Assistant: Home AssistantのMatter接続環境を構築する – Sympapaのスマートホーム日記
Sympapaです。 2022年に登場したスマートホームの標準規格である"Matter"。約2年半が経ってMatter対応のデバイスも増えてきましたね。 Home Assistantには既にMatter対応のエンドデバイスを接続するインテグ…
Google Assistant/AlexaとHome AssistantをMatter経由で連携する – Qiita
はじめに 3~4年前から、Home Assistantを使ったスマートホームを構築してきました。 しかし、Google NestやAmazon EchoなどのスマートスピーカーをHome Assistantと連携させるのは大変でセキュリティ…
Alternative
Alternative ways to install Home Assistant

手順

  1. Home Assistant OSをインストール
  2. アドオンとしてRiDDiX/home-assistant-matter-hubを追加

インストール

方法1:Community Scriptsを使用したインストール

Nodeのシェルを開いて、以下を実行する

bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/vm/haos-vm.sh)"

Advancedを選択して次へ。いろいろ聞かれるけど、大体デフォルトでいい。VM-IDとhostnameだけは一応確認しといたほうがよさそう。

処理が終わったら、ProxmoxのWeb GUIにVMが表示されてるはず。そしたら次へ

方法2:手動

isoは配布されていないっぽいので、イメージファイル(.qcow2)をダウンロードして使う。

まずVMを作成する。OSはDo not use any mediaを選択し、ディスクはとりあえず無しで作成。なんとなくMachineをi440fx→q35にしといた。作成できたらvmidを控えておく

Other Systems | Home AssistantにあるKVM/Proxmox (.qcow2)というリンクをコピーしておく。

ProxmoxのNodeのシェルを開いて、イメージをダウンロード・解凍してVMに紐づける。

今回使ったコマンドをメモしておく。

# cd /var/lib/vz/dump
# wget https://github.com/home-assistant/operating-system/releases/download/18.3/haos_ova-18.3.qcow2.xz
# xz -d haos_ova-18.3.qcow2.xz
# qm importdisk [vmid] haos_ova-18.3.qcow2 [ストレージ名]

ストレージ名はProxmoxのWebGUIでVM、コンテナの下に表示されてるやつ。

WebGUIで当該のVM→Hardwareを見ると、Unused Disk 0として表示されているので、ダブルクリックしてVMにがっちゃんこする。同じ画面からBIOSをOVMF (UEFI)に変える。

起動前にOptions→Boot Orderから今がっちゃんこしたディスクを優先度最高にしておく。

初期設定

http://homeassistant.local/
(アクセスできない場合、VMのConsole画面に出てるIPを叩く)にアクセスして初期設定をする。

RiDDiX/home-assistant-matter-hubのインストール

READMEのInstallationにあるHome Assistant Add-on (Recommended)の下の画像をクリックする。

開いたページのHome Assistant URL欄に、初期設定のときにアクセスしたURLを入力してSave→Open linkの順にクリック。

Home Assistantのページが開くので、「追加」→インストール の順にクリック。

インストールが終わったらこの画面になるので、「開始」→出現した「Web UIを開く」。

「ブリッジ構成ウィザード」からブリッジを作成する。

今回はテンプレートをスキップ、コントローラーはGoogle Home、ブリッジ名は「Smart Home」、その他はそのままで作成した。

作成できたら、作ったブリッジをクリックする。するとQRコードが出てくるので、スマホで読み込んでGoogle Homeアプリに登録する。

「未認定のデバイス」という画面が出てくるが、「このままセットアップ」をタップして進む。

ブリッジや作成したボタン等wGoogle Homeアプリから削除したいときは、以下の操作で全部消えます

右上の自分のアイコン→「Home の設定」→「デバイス、グループ、部屋」→「家にあるデバイス」→[作成したブリッジ名]→「デバイスを削除」

トリガーになるボタンをつくる

トリガーになるボタンを作る。Home AssistantのWebGUIで、設定→デバイスとサービス→ヘルパーで、ヘルパーを作成→ボタン

オンオフできるボタンが欲しければ、「切り替え」を選ぶといいです

スマホアプリ側に出てこない、あるいはオフライン表示になるときは、Home AssistantのWeb UIから一度ボタンを押すと出てくるようになった。

作った後の画面。自宅の場所を登録しておくと現在の予想気温が出るみたい。

ボタンが押されたら何か起こるようにする

今回はボタンが押されたらPushbulletにメッセージを送信できるようにする。

(DiscordのWebhookを使おうとしたけめんどくさそうなので諦めた)

「設定」→「デバイスとサービス」→「デバイスを追加」→「Pushbullet」と進み、Pushbulletの設定からコピーできるAPIキーを貼り付ける。

Home AssistantのWeb UIで、「設定」→「オートメーションとシーン」→「新しいオートメーションを作成」と進む。

トリガーには作成したボタンが押されたとき、とセットする。

Then doにはSend a notification with pushbulletをセットし、messageに適当なテキストを入れる。

んで、Google Homeに「ボタン(※さっき作成したボタンの名称)を押して」と話しかけると、Pushbulletに通知がくる。

やったぜ!!!

コメント

タイトルとURLをコピーしました