WindowsでSiri対応のスマートホームを構築する
スマートホームの機器が乱立し、競争が激しい昨今。操作するのはスマホ一台、とはいったもののアプリが別々でメンドクサイ。iPhoneで操作するならApple Homekit対応が一番使いやすい。条件設定による自動操作もつかえるしSiriでも操作可能。私はAppleWatchは持っていませんが、AppleWatchからの操作で利便性はさらに上がるでしょう。
新製品を見ているとSwitchbotがアナログスイッチ、赤外線、カーテン、コンセント、センサを一通り発売しており、後はLED電球があればSwitchbotですべてが整えられそうで、今から機器を揃えるならいいかもしれない。が、しかしSiriで操作可能かどうかというのは結構大きい。SwitchbotのアプリはSiriで操作できない。
そこで各アクセサリのハブとなるApple Homekit対応のサーバーが必要になる。echoやHomePod、GoogleHomeなどのサーバーとなるスマートスピーカーもあるがなんか邪魔そう。うちではテレビ録画のためWindowsが常時起動しているので、それをスマートホームのサーバーとしても稼働させている。
Node.jsで開発されたApple HomeKitに対応したオープンソースソフトウェアのHomebrigeを導入することで、WiFiを使ったローカルネットワークでそれぞれのアクセサリを操作することができる。プラグインの開発も盛んでいろいろなアクセサリに対応。
わが家のアクセサリはNatureRemoで赤外線と温度、Switchbotのスイッチ、Koogeekのスマートランプソケットとばらばらなので、iPhoneのHomekitから一括操作と自動設定ができるよう環境を構築した。
ただ、Switchbotの操作はまだできておらず。サーバーをWindowsでなくRaspberryPiにしたらSwitchbotのAPIが公開されてるのですんなりHomebridgeに組み込めると思われる。Windowsだとライブラリやドライバの関係でSwitchbotのハブか、追加のBluetoothのドングルが別に必要になったりいろいろ問題があるようだ。
目次:
- WindowsにNode.jsのHomebridgeを導入
- <順次公開予定>Nature Remoで家のリモコンをHomeKit(Siri)で操作する
- <順次公開予定>エアコンをHomeKit(Siri)で操作する
- <順次公開予定>Switchbotでお家のいろんなスイッチをスマート化
- <順次公開予定>Koogeekのスマートライトソケット
WindowsにNode.jsのHomebridgeを導入
WindowsPCの準備
常時稼働させるWindows10を用意する。使っていないノートPCを使ってもいいかもしれません。有線LANとWiFiのネットワークが分かれていなければ、サーバーとなるWindowsは有線LAN接続でも操作が可能です。
WiFi2.5GHz環境が必要
スマートホームのアクセサリのほとんどはWiFiの2.5GHz帯域を使用しているので、そのWiFi環境が必要となります。速度が高速な5GHzに比べて2.5GHzの方が障害物迂回性が高く離れたアクセサリと安定した通信ができる可能性が高いようです。SwitchbotはWiFiではなくBluetoothで通信します。
Node.jsのインストール
Node.jsはサーバーサイドJavascriptの実行環境です。これがインストールされた環境であればOSを問わずプログラムが実行できるというもの。後にインストールするNode.jsで開発されたHomebridgeというサーバーを実行するために必要となる。
Node.jsはすごい速さでバージョンが上がっていくので、無理に最新のものを使う必要はない。新し過ぎるとライブラリやプラグインが対応していないことがあるのでここではv8.16.2をお勧めしておきます。プラグインの中には新しいバージョンで開発されたものもありバージョンのエラーが出るものもあるが、問題なく動作するので良しとする。Node.js 8.xのnode-v8.16.2-x64.msiをインストールする。
Homebridgeのnpmインストール
Node.jsがインストールできたらWindowsスタートアイコンを右クリックして「Windows PowerShell(管理者)」を起動します。
node -v
と入力すると「v8.16.2」と表示されNode.jsがインストールされているのが確認できる。
次に以下のコマンドを入力し、Homebridgeをインストールします。
npm install -g --unsafe-perm homebridge
Homebrigeについて詳細はGithubへ
npmインストールが終わったら一度
homebridge
とコマンドを入力し、Homebridgeを起動させます。
上のような表示が赤文字のエラーなくされればインストールの完了です。
アクセサリを設定済みであれば、QRコードをiPhoneの「ホーム」から「アクセサリの追加」で読み込み、アクセサリを追加することができます。
一度起動したらPowershellを閉じます。Powershellから実行する場合、ウィンドウを閉じてしまうとサーバーも終了してしまいます。
起動後自動生成される、Homebridgeの設定ファイルの場所を確認します。
エクスプローラーを開きアドレスバーに
%USERPROFILE%
を入力してユーザープロファイルのフォルダを開きます。
ユーザープロファイルフォルダの中に「.homebridge」というフォルダが追加されます。フォルダ内の「config.json」が設定ファイルです。このjsonファイルを編集することでいろいろとアクセサリを追加することができます。
管理プラグインの導入
Node.jsのnpmというコマンドを使うと様々なソフトウェアをインストールし管理することができます。Homebirdgeの各種プラグインもnpmを使ってインストールしていきます。
インストールするのはサーバーとなっているWindowsからブラウザを使ってアクセサリの操作と管理ができるようになる「homebridge-config-ui-x」というプラグインです。さらに、このプラグインの機能でHomebridgeをWindowsサービス化し、Powershellから起動するのではなくWindowsのバックグラウンドで安定して稼働させることができる機能もあり、WindowsでHomebridgeを使うときには必須プラグインとなります。
以下のコマンドを入力してnpmインストールします。
npm install -g --unsafe-perm homebridge-config-ui-x
エラーなくインストールが完了したら
hb-service install
を入力し、WindowsサービスにHomebridgeのサービスを追加します。
Homebridgeが稼働したらブラウザを開き
にアクセスすると、下の様なWebサイトが表示されるはずです。
hb-serviceはPowershellから以下のコマンドが可能です。
再起動コマンド (config.jsonの変更をした場合など)
hb-service restart
停止コマンド
hb-service stop
開始コマンド
hb-service start
Windowsサービスから削除
hb-service uninstall
より詳細なWindows10へのインストールはこちらを参考にしてください。
Homebridge on Windows 10 · oznu/homebridge-config-ui-x Wiki · GitHub
長くなってきたのでいったん切り。以下の内容を順次公開予定です。