自宅で使っているテレビ(SONY BRAVIA)は純正のスマートフォンアプリで電源のオン/オフやリモコン操作ができるのですが、使うたびにアプリを起動しないといけない点が不便に思っていました。
ちょうどおうちハック関係の記事を漁っていたところ、HomeKit互換ライブラリのHomebridgeにBRAVIA用のプラグイン(homebridge-sonybraviatv)を見つけたので、手持ちのMacBook Proでセットアップを試してみました。
MacBook Proに最新のNode.jsを入れてアクセス権を設定して、npmでhomebridgeとhomebridge-sonybraviatvを入れてconfig.jsonを書いて、BRAVIAの電源をSiriからコントロールできるところまでは来た
— Kento Koumura (@milkmeta) 2016年12月18日
環境
- SONY BRAVIA KJ-40W700C
- Apple MacBook Pro with Retina Display
- macOS Sierra 10.12.2
- Node.js 6.9.2(LTS)
- Apple iPhone 7 Plus
- iOS 10.2
デバイスは有線/無線LANで同じネットワークに接続しておきます。
BRAVIA側の準備
[ホーム]→[設定]→[通信設定]から設定画面を開き、以下の設定を行います。
- [ネットワーク設定]→[ネットワークの設定をする]→[高度な設定]で固定IPアドレスを設定
- [ネットワーク設定]→[設定と接続状態を確認する]→「MACアドレス」の値を確認
- [ホームネットワーク設定]→[リモートスタート] を "入"
- [ホームネットワーク設定]→[IPコントロール]→[認証] を "Normal and Pre-Shared Key"
- [ホームネットワーク設定]→[IPコントロール]→[Pre-Shared Key] に事前共有鍵を設定
homebridge-sonybraviatvはIPアドレスの自動取得に対応していないようなので、DHCP環境でIPアドレスが変わるのを避けるため固定IPアドレスを指定しています。
またMACアドレスはWake on LANの実行に必要なので併せて控えておきます。
(Android TV搭載機種は常時スタンバイのため、どちらも必要ないかもしれませんが…)
macOS側の準備
最新版のNode.js/npmをインストール後、Homebridge本体とプラグインをインストールします。
$ npm install -g homebridge homebridge-sonybraviatv
Homebridgeに同梱のサンプルファイル(config-sample.json
)を参考に、設定ファイルを指定のパス(/Users/XXXXX/.homebridge/config.json
など)に設置します。
(JSONファイルなのでコメントは削除が必要)
{
"bridge": {
"name": "Apple MacBook Pro with Retina Display", // ブリッジ(Mac)のデフォルト名
"username": "XX:XX:XX:XX:XX:XX", // ブリッジのMACアドレス
"port": 51826, // ポート番号
"pin": "XXX-XX-XXX" // HomeKitコード(PINコード)
},
"accessories": [
{
"accessory": "SonyBraviaTV", // 使用するプラグイン名
"name": "SONY BRAVIA KJ-40W700C", // アクセサリ(BRAVIA)のデフォルト名
"macaddress": "XX:XX:XX:XX:XX:XX", // BRAVIAのMACアドレス
"ipaddress": "192.168.X.X", // BRAVIAのIPアドレス
"presharedkey": "XXXXXXXX" // BRAVIAで設定した事前共有鍵
}
]
}
最後にターミナルからHomebridgeを起動します。
$ homebridge
iOSの設定
iOSに標準でインストールされている「ホーム」アプリを起動し、以下の設定を行います。
ブリッジの設定
- [開始]→[アクセサリを追加]→ブリッジの名前を選択→[このまま追加]→[コードを手動で入力]→HomeKitコードを入力
ブリッジの追加画面が表示されるので、以下を設定し[次へ]
- 名前: デフォルトの名前または任意のブリッジ名
- 場所: デフォルトの部屋または任意の部屋名を選択/入力
BRAVIAの追加画面が表示されるので、以下を設定し[完了]
- 名前: 「テレビ」「ブラビア」など日本語のアクセサリ名
- 場所: BRAVIAを設置した部屋名を選択/入力
試した限りでは、「BRAVIA」など英語表記の名前だとSiriが認識してくれませんでした。
動作確認
iOSでホームアプリを起動し、BRAVIAの電源オン/オフのタイミングで「アクセサリ」欄のアイテムにオン/オフが反映されることを確認します。
またSiriを起動し、「(アクセサリ名)の電源オン」「(アクセサリ名)を消して」などのキーワードでBRAVIAの電源がオン/オフされることを確認します。