DIY ユーザのためのスマートハウス構築支援システム
理学専攻 情報科学コース1

矢田はじめに(指導教員：椎尾 一郎)

きる．操作したいデバイスに合わせた Homebridge のプラグインを随時インストールし設定を行うことで，iOS から Homebridge を通して DIY で作成した機器が使用可能になる．しかし，Homebridge を導入し，適切なプラグインを選択し，インストール・設定する作業は最新のサーバーサイドプログラミングやネットワー
ク技術に疎い電子工作者にとって難易度が高い．これを容易にする目的で，Homebrige 設定を GUI で行う
Homebridge-server 7 が開発されているが，プラグインは既存のものをインストールするため，Siri による音声対話操作に必要なサービス指定を柔軟に行うことができない．

日々の生活を快適・便利にするためのコンピュータ，センサー，ネットワークを導入した住宅，スマートハウスが注目を集めている．スマートハウスを実現するた
めに，通信規格，OS，フレームワークなどが多数提案・開発・販売されている．Microsoft， Apple， Googleなどの OS 開発会社もスマートハウスに対応した OS拡張機能を開発している．その 1 つに，Apple 社が提唱している HomeKit1 がある．HomeKit はスマートハウスを Apple 社の OS である iOS から操作するためのフレームワークであり，これに対応し動作する製品が多く販売されている．一方で，3D プリンタや開発が容易な組み込みコンピュータなどの普及により，DIYにより電子工作を行いスマートハウスを実現しようとする人たちも現れている．しかしながら，組み込みコンピュータ上のプログラムを HomeKit から利用する過程は複雑で困難である．
本研究では，最新の OS ライブラリやネットワーク技術に疎い電子工作者を対象とし，彼らが自作したデバイスと HomeKit の接続設定を支援するシステムを提案・実装した．

2

和沙

3

HomeKit 対応機器 DIY 支援ツール

本システムは，Linux 環境を構築できる組み込みコンピュータである Raspberry Pi 8 を使ってスマートハウスのための電子工作とプログラミングを行う初級・中級の人々（以下，DIY ユーザ）を対象とする．上述の通り，HomeKit / Homebridge に対応した機器を自作するための，Linux 環境で動作するオープンソースツールが開発・公開されているものの，最新のサーバやネットワーク技術に疎い DIY ユーザにとってはこれらの導入は難易度が高い．そこで本研究では，Siri 音
声対話制御が可能な HomeKit 対応デバイスを，DIYユーザが容易に作成するための包括的なツールの作成を目指した．これらのツール群を以下で説明する．
3.1 環境構築の自動化ツール

関連研究

スマートハウス実現のために，通信プロトコル，OS，フレームワークなどが多数提案実装され，販売されている．例えばスマートハウスの家電を操作する通信プロトコルとして，日本からは Echonet lite 2 ，北米からSEP2.0 3 ，欧州からは KNX 4 が国際規格として提案されている．また，機器の制御を行うアプリケーションを支援するためにデバイスの抽象化が必要であるとして，HomeOS [?] の提案もされている．ただしこれらのプロトコルや OS を利用して DIY 機器を利用するためには，プロトコルやアプリケーションの実装が必要である．一方で既存の OS に，スマートハウス向けの機能を拡張し，スマートハウス機器を音声操作できる製品が提案されている．Google Home 5 は音声アシスタントアプリケーションを搭載した小型デバイスであり，対応するスマートハウス機器を操作できる．また，HomeKit はスマートハウス機器をコントロールするための iOS のフレームワークであり，音声アシス
タント Siri により機器の音声コントロール機能を提供する．
HomeKit などから操作するデバイスを開発するために必要な情報は，一般には公開されていない．しかし有志の手でデバイスを対応させるツールが開発され，オープンソースとして配布されている．例えば，
Homebridge 6 はサーバー機能を提供する Node.js ラ
イブラリで HomeKit にアクセスするための機能を兼ね備えており，様々な OS の上で動作させることがで

Homebridge が動作する環境を構築するには，Raspberry Pi 上の Linux 環境に，Node.js や他のパッケージをインストールし，Homebridge を動かすための様々な設定を行う必要がある．またそのインストールや設定にはシェルコマンドを使用する必要があり，一部の初心者には困難である．そこで，Homebridge の環境構築を行うための手順をシェルスクリプトにまとめ，コマンドを 1 つ実行するだけで Raspberry Pi 上に環境を構築できるようにした．
3.2 マルチプラグイン
スマートハウスで使用する様々なデバイス（以下，アクセサリ）に対応する Homebridge プラグイン（以下，プラグイン）が，多くの開発者により開発され公開されている．DIY ユーザは，この中から自分の開発したアクセサリに対応するプラグインを，選択しインストールを行い，さらに設定ファイルに各プラグインの指定した設定を書き込むことで，HomeKit 対応アクセサリを作ることができる (図 1(a))．しかし，開発したアクセサリに最適なプラグインを，公開されている多数の中から選び出すことは時間がかかり，専用プラグインを自作することはさらに困難である．
HomeKit では，スマートハウスが提供するサービスに対してそれぞれアクセサリが割り当てられており，それぞれのサービスには複数の属性 (Characteristics)が用意されている．例えば，Switch のサービスには1 http://www.apple.com/jp/ios/home/
2 https://echonet.jp/3 http://www.zigbee.org/
4 https://www.knx.org/
5 https://madeby.google.com/home/
6 https://github.com/nfarina/homebridge

7 https://www.npmjs.com/package/homebridge-server
8 https://www.raspberrypi.org

1

「ON」という属性があり，スマートフォンアプリの操作や Siri の音声対話でこの属性に記載された動作を実行する．また Siri の音声対話では，それぞれのサービスの 1 つの属性に複数の音声コマンドが割り当てられている．
Homebridge のプラグイン開発者は，各自が開発したデバイスに特化したプラグインを公開する傾向にあり，DIY ユーザが開発した多様なデバイスに柔軟に対応できるプラグインが存在していなかった．そこで
本研究では，Homebridge が提供している全サービスを操作できる汎用性の高いプラグイン（以下，マルチプラグイン）を開発した．DIY ユーザは設定ファイル中で，アクセサリが提供するサービスを選択し，そのサービスの各属性に対応する実行コマンドを指定する．
HomeKit を Siri から利用する場合には，1 つの属性に複数の音声コマンドが対応するので，属性の指定によりアクセサリを制御する音声コマンドを指定することになる．これにより様々な種類の DIY アクセサリに対して，操作するプログラムを容易に割り当てることが可能である．
3.3 環境設定 Web ページ

図 1: (a) テキストエディタでの設定ファイルの編集(b)GUI でのプラグイン設定画面

Homebridge は多数のサービスを提供している．その中から，DIY ユーザが作成したアクセサリに適したサービスと，操作に対応する属性を選ぶのは難易度が高い．
サービスや属性の詳細を知るためには，Homebridgeのソースコードを読み解く必要があった．これを容易にする目的で，Raspberry Pi のローカルネットワークで動作する Web ページ上でマルチプラグインの設定を行えるようにした (図 1(b))．
設定ページでは，Homebridge に認識させる各アクセサリのサービスをセレクトボックスから選択する．
するとそのサービスが対応している操作属性が自動的に表示される．次に DIY ユーザは，あらかじめ作成したプログラムやデバイスを動作させるコマンドを操作属性のフォームに入力する．このことでユーザは様々なサービスから自分が操作したい属性に対応するプログラムやコマンドを設定することができる．これによりソースコードを読み解くことなく，開発したアクセサリを Homebridge へ繋ぐことが可能になる．
ここで表示する属性やサービスは，Homebridge のソースコードより読み込み表示させている．しかし，対象の属性にどの Siri の音声コマンドが対応しているかに関しては，ソースコードにも書かれておらず，プラグインの属性の記載から判断しなければならない．
そこで Homebridge のソースコードからサービスと属性を読み出し，有志の人々で編集ができる Wiki を作成した (図 2)．Wiki が充実すれば，サービスと属性に対する音声コマンド情報が整備されていくであろう．

4

(b)

(a)

図 2: Wiki
タプログラミングの経験があるものの，HomeKit やHomebridge を扱った経験はない．その後，有用性を確認するためにアンケートを実施した．
Homebridge の設定にはコマンドコンソールを使用し，スクリプトを実行し環境構築を行った．アンケー
トによると，今まで経験した環境構築に比べて容易であったとの回答を得た．
次に，Raspberry Pi にあらかじめ配線した LED 回路と，これを点灯させるコマンドラインプログラムを参加者に提供し動作確認をしてもらった．参加者は，本システムのプラグイン設定ページへアクセスしこのプログラムを Homebridge のサービスとして設定した．
この結果，参加者 4 名のうち最初に作業を実施した 1名は HomeKit から LED を点灯するよう設定できなかった．この原因は作業手順書に不備があったためであり，手順書を修正した結果，残りの 3 名は設定することができ，アンケートでも非常に容易であったとの回答を得た．

5

まとめDIY デバイスによりスマートハウスを構築しようとする DIY ユーザのために，自作デバイスと HomeKitの接続設定を支援するシステムを提案し実装した．このために，汎用性の高い Homebridge マルチプラグインを開発し，これを GUI ベースで設定する Web ページを提供した．またワークショップを企画し，本システムの有用性を確認した．
現在の手法では，シェルコマンドで実行し，値を取得・操作できるアクセサリしか動作させることができない．今後シェルコマンド以外に，HTTP リクエストによる操作へ拡張することにより，幅広いアクセサリに対しても本手法を容易に適用できると考えている．

ワークショップ

本システムの有用性を確認するためにワークショップを開催し，想定するユーザに利用してもらった．ワー
クショップでは，OS をインストールした Raspberry Piを用意し，参加者にはワークショップのための手順書 9に従い，Homebridge の環境構築と LED を点灯させる設定を行ってもらった．ワークショップに参加者は情報科学を専攻する学生 4 人である．いずれもコンピュー
9 http://qiita.com/nyata/items/4c9fa9b9dbd6a88924b1

2