

理論上、HomeKitはスマートホームアクセサリとしてファンをサポートしています。HomeKit対応のシーリングファンはすでにいくつか販売されていますが、私がずっと待ち望んでいたのはオフィス用のHomeKit対応タワーファンです。残念ながら、目立った製品はありません。
何年も待ち続け、特に暑い夏が訪れた後、諦めてマニアックな方法を探りました。赤外線リモコン付きの普通の扇風機を購入し、Homebridgeを使ってHomeKit対応の自宅に導入しようと試みたのです…
スマート家電をHomeKitエコシステムに追加する最も簡単な方法は、スマートプラグを使うことです。HomeKitスマートプラグを使えば、多くのアクセサリを非常に簡単にスマート化できます。スマートプラグはユーザーの指示に従って電源のオン/オフを切り替えるので、フロアランプなどに最適です。
残念ながら、タワーファンはそれほど単純ではありません。ファンの回転速度や首振りなどの設定が必要なため、電源を入れたからといってすぐに起動するわけではありません。ある種のメモリ機能が搭載されています。スマートプラグは電源に差し込むと、実際には動作を模倣しているかのように、ただそこに留まります。ファンを実際に起動させるには、別のボタンを押さなければなりません。つまり、スマートプラグは解決策ではないということです。
代わりに、Homebridgeを使う予定だったので、赤外線リモコン付きの扇風機を購入しました。(Homebridgeとは何でしょうか? Homebridgeはサードパーティ製の非公式ブリッジサーバーで、あらゆる種類のアクセサリをHomeKitプラットフォームに公開できます。)
この全てにおいて鍵となるのは、Broadlink RMと呼ばれる赤外線ブラスターです。このRMはWi-Fiに接続できるので、アプリから接続して赤外線コマンドを遠隔送信できます。しかし、このアプリはひどい出来で、使う気になりませんでした。その代わりに、コミュニティプラグインを使ってBroadlink RMをHomebridgeに接続する計画を立てていました。
結局のところ、ブラスターはファンのリモコンと同じ赤外線コードを送信します。ファンは受信した赤外線信号を検知し、忠実にコマンドを実行します。赤外線関連の機能はすべてHomebridgeプラグインにまとめられており、他のアクセサリと同様にHomeKitホームに表示されます。
Homebridgeを使用してHomeKitで赤外線アクセサリを設定する方法
最初のステップは、Homebridgeサーバー自体をセットアップすることです(まだお持ちでない場合は)。HomebridgeはMac、Rasberry Piなど、常時接続サーバーとして機能できるものなら何でも実行できます。私は、我が家のPlexメディアサーバーとして常時稼働しているSynology NASにHomebridgeをインストールすることにしました。SynologyへのHomebridgeの完全なインストール手順は、こちらをご覧ください。
次のステップは、Broadlink RM IR ブラスターに接続する方法を知っている Homebridge プラグインをインストールすることです。
ありがたいことに、プラグインには詳細なドキュメントが用意されているので、使い方は非常に簡単です。プラグインをインストールするには、SynologyウェブインターフェースのHomebridgeコンソールでターミナルコマンドラインを開き、次のように入力しました。
npm インストール homebridge-broadlink-rm
これにより、適切なパッケージがダウンロードされ、システムに自動的にインストールされます。
この時点で、IRブラスターを、制御したいアクセサリ(複数可)と同じ部屋に接続します。ブラスターはファンと直角に交わる必要がありますが、必ずしも完全に直角である必要はありません。Broadlink RMはApple TVとほぼ同じサイズなので、非常に小型で目立ちません。
Broadlinkのアプリを使ってブラスターをWiFiネットワークに接続する必要がありますが、Broadlinkのアプリを使ってアクセサリの設定をする必要はありません。これはHomebridgeプラグインの設定とは全く別のものなので、特に設定する必要はありません。
Homebridgeはconfig.jsonという設定ファイルを使って管理されます。このファイルにはファイルシステムからアクセスでき、テキストエディタで編集できます。(私のSynologyのセットアップでは、Webパネルからファイルをダウンロードし、Macでローカルに編集してからNASのストレージにアップロードするのが最も簡単な方法でした。)このファイルには、公開したいすべてのHomeKitアクセサリの様々なパラメータがすべてリストされています。
Broadlinkプラグインの場合、JSONオブジェクトのプラットフォーム配列にエントリを追加し、その中にアクセサリを定義する必要があります。設定例や様々なカスタマイズオプションについては、プラグインのドキュメントページをご覧ください。
開始するには、プラットフォームのエントリは次のようになります。
config.json に変更を加えるたびに、新しい設定を適用するために Homebridge サーバーを再起動する必要があります。Synology サーバーの場合は、Homebridge パッケージインターフェースの「再起動」ボタンを押すだけで済みます。
上記のスクリーンショットのような初期設定を行うと、iPhone のホーム アプリから初めて Homebridge にアクセスできるようになります。
Homebridgeはホームアプリにハブとして表示されます。ホームアプリ内で「アクセサリを追加」ボタンを押し、検出されたHomebridgeハブを選択してください。確認のため、8桁のコード「031-45-154」を入力してください。(このコードはconfig.jsonファイルの先頭に記載されています。)
HomebridgeハブがHomeKitに組み込まれたため、エクスポートされたアクセサリも追加されます。今後Homebridgeに加えた変更は、ホームアプリに自動的に反映されます。
config.jsonファイルにはまだアクセサリオブジェクトを明示的に追加していませんが、ホームに「Learn」という新しいアクセサリが追加されます。これはRMプラグインによって追加されます。このスイッチは、赤外線リモコンのボタンを操作可能なアイテムに変換するための鍵となります。
Learnスイッチを押すと、IRブラスターが特別なモードになり、赤外線信号を検出してHomebridgeのログに出力します。赤外線コードは後で必要になるので、メモしておいてください。
では、リモコンの電源ボタンを記録したいとしましょう。まず、ホームアプリ内の「学習」スイッチを押します。次に、リモコンを赤外線ブラスターに向け、電源ボタンを押します。ログを確認し、赤外線の16進コード(長い16進数列になります)をメモします。
HomeKitに公開したい関連ボタンごとに、このプロセスを繰り返します。何か忘れてしまっても心配ありません。いつでも戻って学習できます。今回はファンを基本的なオン/オフスイッチとして公開するので、電源コマンドに対応する赤外線コードのみが必要です。
すべての赤外線コードの記録を取得したら、config.jsonファイルに戻り、「hideLearnButton」プロパティを「false」から「true」に変更します。これにより、Learnアクセサリがホームから削除されます。
さて、電源用の赤外線コードは完成しました。次は何をすればいいでしょうか?もう一度、プラグインのドキュメントを見て、JSONに記述する必要があるアクセサリオブジェクトのフォーマットを調べましょう。
このプラグインは、コンセント、スイッチ、ファン、照明、ガレージドア、鍵、エアコン、シェードなど、様々な種類のアクセサリをシミュレートできます。各アクセサリの種類ごとに、オプションと必須のパラメータが異なり、非常に複雑になる場合があります。
ファンの電源をオン/オフにするために必要なのは基本スイッチだけです。これには、アクセサリの名前、セマンティック タイプ (「スイッチ」)、HomeKit がスイッチをオンにしたときに送信する赤外線データ、HomeKit がスイッチをオフにしたときに送信する赤外線データの 4 つのプロパティのみが必要です。
「オン」と「オフ」のどちらの場合も、先ほど学習した電源の16進文字列を貼り付けるだけです。「persistState」オプションは、Homebridgeサーバーが再起動した場合の動作を決定します。アクセサリの前回のオン/オフ状態を記憶するかどうかを指定します。「persistState」が「true」の場合、前回の状態を記憶します。「persistState」が「false」の場合、スイッチアクセサリはサーバーの再起動ごとにオフとみなされます。ファンの場合は状態を保持する方が合理的であるため、これを「true」に設定しました。
このアクセサリ配列はプラットフォームオブジェクト内に格納されることに注意してください。Broadlinkプラグインでは、トップレベルのアクセサリ配列は使用しません。
設定はこれで完了です。ホームアプリを整理するために、「hideLearnButton」パラメータを「true」に設定し、Learnスイッチヘルパーを削除します。最終的なconfig.jsonファイルは以下のようになります。
すべてが正しく入力され、コンマの欠落などの構文エラーがない場合は、Homebridge サーバーをもう一度再起動できます。
起動すると、HomeKitホームに新しいタワーファンアクセサリが表示されます。スイッチのような見た目ですが、ホームアプリの「表示形式」設定でファンのように表示できます。アクセサリの名前はホームアプリ内で自由に変更できます。ちなみに、config.json の名前はHomebridge内で識別するためのものです。
ファンタイルが押されると、HomeKitはHomebridgeにスイッチをオンにするメッセージを送信します。プラグインは「オン」状態の赤外線コードを見つけ、IRブラスターを介して部屋中に送信します。すべてがうまくいけば、ファンは赤外線信号を検知し、自動的にオンになります!成功です。タイルをもう一度タップすると、オフコマンドが送信され、ファンの回転が停止します。
これらすべてのハックはどれほどうまく機能するのでしょうか?
最初は、すべてが問題なく動作するか少し不安でした。しかし、この構成で2週間運用していますが、不具合や故障は一度も発生していません。
HomeKitを使ったファンのコントロールは非常にレスポンスが良いです。ホームアプリでタイルをタップするか、Siriを使うだけで、すぐにファンのオン/オフを切り替えることができます。正直言って、これまで試したHomeKit対応アクセサリの中では、パフォーマンスが優れています。赤外線ブラスターは信号を確実に送信し、ファンはそれを受信して適切に動作します。
Homebridge と IR ブラスターを使用してスイッチを再現するのはやり過ぎのように思えるかもしれませんが、これは可能性のほんの一部にすぎません。
このプラグインには、実際の「ファン」アクセサリのサポートが含まれていることにお気づきかもしれません。つまり、赤外線を使って首振りやファン速度などを制御できるということです。私は首振りは実際に動作させましたが、ファン速度の設定がうまくいかなかったのが残念でした。
残念ながら、私のHoneywellファンのリモコンにはファン速度ボタンが1つしかありません。ボタンを押すと、同じ赤外線信号が送信され、ファンが3段階の速度で回転します。赤外線ブラスターでファン速度を制御するには、速度ごとに異なる赤外線信号を送信するファンとリモコンの組み合わせが必要です。例えば、低速用と高速用にそれぞれ異なる赤外線コードを送信するなどです。
この問題のため、ファンを単純に基本スイッチとして公開することにしました。必要であれば、ファン速度コマンドをHomeKit内の独立した「トグルスイッチ」として公開することもできます。しかし、それは少しスマートすぎるので、当面は単純なオン/オフスイッチとしてのみ使用しています。
結論
電源、ファン速度、首振り、首振り方向など、HomeKitのアクセサリサービスをすべて認定サポートした、本格的なHomeKit対応ファンを早くどこかの企業が作ってくれることを願っています。それが最も理想的な解決策になるでしょう。
とはいえ、Homebridgeコミュニティソリューションの優れたパフォーマンスには本当に驚きました。プロセスの説明を読むと、実際よりも難しそうに聞こえます。もちろん、設定は一度だけで済みます。私は数時間で全てセットアップできました。私のようにプログラミングの経験がない方は、JSONファイル形式などを理解するのに少し苦労するかもしれません。でも、Googleが味方です。Homebridgeは驚くほど人気のハックで、オンラインにはチュートリアルや動画が数多く掲載されています。
HomebridgeはAppleコミュニティの素晴らしい功績です。正直言って、こんなものが存在すること自体が驚きです。しかもすべて無料で。この連携の要となったBroadlink RM IRブラスターもかなり安価です。
冒険心が強い方は、ぜひ Homebridge を試してみてはいかがでしょうか。
havebin.com を Google ニュース フィードに追加します。
FTC: 収益を生み出す自動アフィリエイトリンクを使用しています。詳細はこちら。