終わりに参考こんにちは。17日目担当、運用エンジニアのワタナベです。運用という出社日時が不安定な事を逆手にとって、美味しいお店に行くことが趣味です。23時から焼き肉食べ放題をしたり、17時の開店に合わせて人気焼肉店のホルモンを食べに行ったり、行列必至な牛カツ専門店に開店同時に食べに行ったりしています。いやぁ、肉って最高ですね。今回のアドベントカレンダーでは趣味のおうちハック、特にHomeKitについて話そうと思います。はじめにHomeKitとはAppleが提唱する家電の集中管理システムです。そのコンセプトとしてSiriへの命令で家電を操作できることにあります。おやすみ」と言えば部屋の明かりがすべて消え、エアコンを静音モードにしたりできます。こんなに便利なHomeKit、実は日本ではまだほとんど対応製品が売られていないのです。Piのセットアップから説明していくのでわかりやすい内容になってると思いますが、すごく長いのでお付き合い下さい。最後までセットアップが出来たならば、あなたは下の動画のように部屋中の家電を操作可能になっていると思います。Piをセットアップします。PiのOSをインストールしていきます。Piの公式サイトからNOOBSをダウンロードします。ZIPからZIPファイルをダウンロードし、解凍します。Piは起動するのですが、その前にmicroSDカードカードをフォーマットする必要があります。Pi用のmicroSDカードをフォーマットしてください。SDフォーマッター4.0ダウンロード先ソフトに従いフォーマットが成功したら、「カードのフォーマットが正常に終了しました」と表示されますのでフォーマットは終了です。OSインストールmicroSDカードに先ほど解凍したNOOBSのファイルをコピーします。Piに挿し、マウス、キーボード、LANケーブル、電源ケーブルを入れるとNOOBSが起動します。Raspbianにチェックを入れ上のInstallをクリックすることでインストールが始まります。Successfully」と表示され、自動的に再起動がかかりデスクトップ画面が表示されます。これでOSインストールは終了です。Piのインストールは成功しましたが、日本語フォントはインストールされておらず、各種ソフトウェアも古い状況です。Piをアップデートしましょう。デスクトップ上の黒い画面のアイコンをクリックし、ターミナルを起動します。下記のコマンドを実行し、アップデートを実施します。upgradeアップデートが終了したら、次は日本語フォントをインストールします。同じようにターミナルに日本語フォントのインストールコマンドを実行しましょう。Piを日本語設定に変更しましょう。Configurationを起動し、Localisationタブを選択し、Localeを日本語環境に、TimezoneをASIA/Tokyoにします。表示可能になり、いくつかメニューが日本語になっています。Piの基本的なセットアップは終わりです。ネット接続しているルーターIRKitをネットに接続IRKitに電源をつなげると赤点滅してIRKitからWifiが飛びます。IRKitの公式アプリに従い、IRKitとWifiを繋げば設定は完了します。ものすごく簡単な説明ですが、ネット接続の詳細はアプリにわかりやすく記載してあるのでここでは省略します。Piと同じネットワークに接続することを心がけて下さい。Piが有線でルーターとつながっているならば同じルーターから出ているWi-Fiに接続してください。Piが通信可能になります。Piから通信が出来るはずです。IRKitのIPアドレスを調べるにはいくつか方法があります。Avahi(Bonjour)の機能を使ってIRKitのローカルドメインにpingを売ってIPアドレスを見つける」について軽く説明します。PiとIRKitにはXXXX.localという名前で通信できる仕組みが備われています。Piのターミナルからホストを調べて、別のパソコンからpingを打ってみましょう。Piには「raspberrypi.local」でpingが飛ぶはずです。ms同じようにIRKitも名前が公式アプリ側から判断できます。別のパソコンからIRKit1234.localにpingが飛ぶようになっているはずです。msもし、IRKitの名前がわからなくても前述しましたとおり、いくつか対応方法がありますのでそれでIRKitのIPアドレスを見つけて下さい。以降、IRKitのIPアドレスを10.248.120.47と仮定して話をすすめます。/messagesに記載してあるとおり、IRKitにリモコンを向けて目的のボタンを押してみましょう。その後、ターミナルから下記コマンドを打つことで赤外線情報を取得できます。$ここで、{“format”:”raw”,”freq”:~返ってきた内容が目的の赤外線信号です。/messagesに記載してあるとおり、次のコマンドで送信できます。'{"format":"raw","freq":38,"data":[5049,5049,1679,1679,1679,1679,1679,1679,1679,3704,1679,3704,1679,3704,1679,3704,1679,1679,1679,65535,0,41171,5049,5049,1679,1679,1679,1679,1679,1679,1679,3704,1679,3704,1679,3704,1679,3704,1679,1679,1679]}'コマンド打った後、IRKitを確認してください。IRKitのLEDが点滅したら送信成功です。Piとの接続確認は終わりです。PiにHomeKit機能を搭載します。PiにHomeKit機能を搭載するために、HomebridgeというHomeKit機能をエミュレーションするNodeJSサーバーを使用します。このHomebridgeを使うことでIRKitをSiriから操作できるようになります。ライブラリインストールHomebridgeをインストールする前に、いくつかHomebridgeに必要なソフトウェアをインストールします。ターミナルから下記のコマンドにてインストールできます。/usr/local/これでインストールは完了です。念の為、ターミナルを一度終了させて、再度実行しください。node.jsのバージョンを調べるコマンドが次のとおりに返ってきたインストールは成功しています。-v2.14.2HomebridgeのインストールHomebridgeのインストールはターミナルから下記のコマンドを実行することでできます。インストールには時間がかかるので気長に待ちましょう。homebridge次にIRKitとHomebridgeを接続するプラグインを下記のコマンドでインストールします。homebridge-irkitインストールが完了したら、次のコマンドで起動確認をしてみます。accessories./home/pi/.homebridge/config.jsonが存在しないから起動ができないよ!って怒られたらひとまず起動は成功です。(まだ設定してないので)次にconfig.jsonを設定します。先ほど出たメッセージの通りに設定ファイルを作成します。/home/pi/.homebridge/config.jsonconfig.jsonの中身は次のように書きます。必要な赤外線信号は事前に取得してください。今回はテレビのオン・オフを想定して設定ファイルを作成します。]}設定ファイルを保存したら、またhomebridgeコマンドを実行してください。Homebridge:」とメッセージがでて、設定ファイルにて指定したpinが現れたら起動成功です。51826.HomebridgeとiPhoneの接続iPhoneでHomekitに対応するにはHomekit対応のアプリをインストールする必要があります。今回はInsteon+をインストールしてください。幾つかHomekit対応のアプリはありますので、好きなものを選んでもかまいません。Piは同じネットワークに接続していることを確認してください。同じネットワークにないとアプリがHomekitサーバーを見つけられず追加ができなくなります。先ほど起動したHomebridgeサーバーを見つけます。同じネットワークにあるなら下に名前表れます。Homekitアクセサリを追加しますか?と聞かれるので「このまま追加」を選択するとアクセサリを追加画面が出ます。したら「コードを手動で入力」をタップしてください。したら手動でpinを入力する画面がでますので、先ほどターミナルで出たpinを入力します。これで登録は完了です。お疲れ様でした!あとはSiriに向かって「テレビの電源をオンにして」と頼むとオンにしましたと返事をくれるはずです!Siriはとても賢いのである程度の言い間違いや表現の違いも受け取ってコマンドを実行してくれます。IoTの未来を是非体験してください。PiとIRKitで部屋のリモコン家電をSiriから操作するまでの紹介でした。PiにセットアップしたHomebridgeというソフトウェアには様々なプラグインが存在しております。hueというLED電球を操作したり、Macの音楽を再生したり、サーバにログインしてコマンドを実行したりも可能になります。詳しくは参考リンク先やHomeBridgeのソースコード、プラグインを調べてください。Pi#Siriワタナベ新しもの好きインフラエンジニア。プログラミングしたり、ハードを作っています。趣味は読書で、たまに発狂したように読みふけります。