CaMiL

もの作ることで幸せをいただいて、さらさらと暮らしたい

WindowsでSiri対応のスマートホームを構築する

 スマートホームの機器が乱立し、競争が激しい昨今。操作するのはスマホ一台、とはいったもののアプリが別々でメンドクサイ。iPhoneで操作するならApple Homekit対応が一番使いやすい。条件設定による自動操作もつかえるしSiriでも操作可能。私はAppleWatchは持っていませんが、AppleWatchからの操作で利便性はさらに上がるでしょう。

https://user-images.githubusercontent.com/19808920/58770949-bd9c7900-857f-11e9-8558-5dfaffddffda.png

  新製品を見ていると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を導入

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.xnode-v8.16.2-x64.msiをインストールする。

Homebridgeのnpmインストール

 Node.jsがインストールできたらWindowsスタートアイコンを右クリックして「Windows PowerShell(管理者)」を起動します。

f:id:beso:20191112141930p:plain

node -v

と入力すると「v8.16.2」と表示されNode.jsがインストールされているのが確認できる。

次に以下のコマンドを入力し、Homebridgeをインストールします。

npm install -g --unsafe-perm homebridge

 Homebrigeについて詳細はGithub

npmインストールが終わったら一度

homebridge

とコマンドを入力し、Homebridgeを起動させます。

f:id:beso:20191112143939p:plain

上のような表示が赤文字のエラーなくされればインストールの完了です。

アクセサリを設定済みであれば、QRコードiPhoneの「ホーム」から「アクセサリの追加」で読み込み、アクセサリを追加することができます。

一度起動したらPowershellを閉じます。Powershellから実行する場合、ウィンドウを閉じてしまうとサーバーも終了してしまいます。

 

起動後自動生成される、Homebridgeの設定ファイルの場所を確認します。

エクスプローラーを開きアドレスバーに

%USERPROFILE%

 を入力してユーザープロファイルのフォルダを開きます。

f:id:beso:20191112145424g:plain

ユーザープロファイルフォルダの中に「.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のサービスを追加します。

f:id:beso:20191113062537p:plain

Homebridgeが稼働したらブラウザを開き

http://localhost:8080

にアクセスすると、下の様なWebサイトが表示されるはずです。

f:id:beso:20191112165613p:plain

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

長くなってきたのでいったん切り。以下の内容を順次公開予定です。

 

<順次公開予定>Nature Remoで家のリモコンをHomeKit(Siri)で操作する

<順次公開予定>エアコンをHomeKit(Siri)で操作する

<順次公開予定>Switchbotでお家のいろんなスイッチをスマート化

<順次公開予定>Koogeekのスマートライトソケット