実際に自作のスクリプトを実行させた訳ではないので若干タイトル詐欺。
IFTTTとか使えばできるんだけど、IFTTTの無料プランは作れるアプレット数に制限があるのと、せっかくなら自宅鯖で完結したい、という考えからHome Assistant OSを試してみた。
参考リンク


手順
- Home Assistant OSをインストール
- アドオンとして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から今がっちゃんこしたディスクを優先度最高にしておく。
初期設定
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アプリに登録する。

「未認定のデバイス」という画面が出てくるが、「このままセットアップ」をタップして進む。
トリガーになるボタンをつくる
トリガーになるボタンを作る。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に通知がくる。
やったぜ!!!

コメント