多くのスマート デバイスは Apple HomeKit のサポートをスキップし、Alexa、Google、およびその他のプラットフォームとのみ統合します。ただし、この Raspberry Pi ハックを使用すると、オープンソースの Homebridge ソフトウェアを使用して、任意のスマート デバイスに HomeKit サポートを追加できます。
あらゆるスマートデバイス向けの HomeKit
HomeKit に全力を尽くしている場合、大きな問題の 1 つは、HomeKit をサポートしているスマート デバイスがいかに少ないかということです。たとえば、一部の安価なスマート電球の唯一のネックは、HomeKit サポートがないことです。 Amazon’s Choice の「スマート電球」は で、この記事の執筆時点での価格は約 40 ドルで、LIFX 電球 1 個よりも安価です。
確かに、LIFX ほど高級ではありません。色はそれほど鮮やかではなく、バスルームで聞こえるような騒音を発しますが、1個10ドルという価格は、かなり破格の価値があります。
ただし、主な問題は、HomeKit をサポートしていないことです。彼らは完全に愚かではなく、Google Home、Alexa、IFTTT、およびメーカーのアプリで動作します。 TECKIN スマート電球しか持っていない人には大丈夫です。
ただし、HomeKit からはアクセスできないため、Home アプリ、コントロール センターのウィジェット、または Siri から制御することはできません。また、他のブランドの電球を使用するシーンにそれらを含めたり、オートメーションで使用したりすることもできません。すでに HomeKit に投資している場合、これはおそらく取引の妨げとなるでしょう。
ホームブリッジの紹介
幸いなことに、これらの特定の電球をさらに便利にするハックがあります。 HomeKit API を使用すると 、Philips Hue のこの ようなブリッジと呼ばれるデバイスが、他のプロトコルで動作する子デバイスに接続できるようになります。ブリッジを HomeKit のデバイスとして追加するだけで、接続されている各照明が HomeKit に登録されます。ライトの更新リクエストを行うたびに、電話機はブリッジと通信し、ブリッジはライトと通信します。
したがって、ブリッジは、ある API から別の API に情報を中継するだけです。 TECKIN 電球はインターネット経由で制御できるため、ソフトウェアだけで HomeKit に接続することが完全に可能です。専用のハードウェアは必要ありません。
Raspberry Pi (5 ドルの Pi Zero で 問題ありません) をお持ちの場合は、 Homebridge と呼ばれるフレームワークを使用してそれをブリッジとして設定できます。この軽量の NodeJS アプリケーションは HomeKit API をエミュレートし、HomeKit 以外のスマート デバイスにリクエストを転送します。
基本的に、Pi 上で実行すると、各「ダム」デバイスがホーム アプリに追加されます。ホーム アプリまたは Siri を通じて電球を制御しようとすると、Homebridge がデバイスに話しかけます。セットアップ後は、デバイスが最初から HomeKit をサポートしていたかのような状態になります。
これには、デバイスが常に Homebridge を実行している必要があるため、ラップトップにインストールするものではありません。 Raspberry Pi が理想的ですが、常に稼働しているサーバーまたはデスクトップとして再利用できる古いデバイスをお持ちの場合は、そこにインストールできます。
Homebridge はフレームワークであり、プラグインを使用して拡張できます。かなり大規模なコミュニティの支援を受けているため、どのスマート デバイスにもサポートを追加するための Homebridge プラグインが搭載されている可能性が高くなります。デバイスにプラグインがなくても、スマート デバイスに API があり、技術に精通している場合は、自分でプラグインを作成できます。
ただし、ほとんどの人にとって、セットアップは、Homebridge とデバイス用のブランド プラグインをインストールし、少しの設定を行うだけです。 コマンド ラインを使用 でき、少し時間があれば、非常に簡単です。
ホームブリッジのインストールと構成
Homebridge は NodeJS アプリなので、インストールする必要があります
node
それを使用するには
npm
使用します。マシンで Linux が実行されている場合は、おそらくパッケージ マネージャーから入手できます。
Ubuntu では、次のように入力してノード リポジトリを手動で設定し、インストールする必要があります。
nodejs
:
カール -sL https://deb.nodesource.com/setup_13.x | sudo -E bash -
sudo apt-get install -y nodejs
それ以外の場合は、特定の OS にインストールする方法について Node のダウンロード ページを 参照してください。
Linux を使用している場合は、以下に示すように、いくつかの依存関係もインストールする必要があります。
sudo apt-get install libavahi-compat-libdnssd-dev
その後、以下に示すように、
npm
を通じて Homebridge をグローバルにインストールできます。
sudo npm install -g --unsafe-perm ホームブリッジ
Homebridge は単なるフレームワークであるため、必要なブランドのプラグインもインストールする必要があります。たとえば、TECKIN 電球の場合、プラグインは
homebridge-tuya-web
で、これもグローバルにインストールされます。
次のように入力します。
npm i homebridge-tuya-web -g
すべてのインストールが完了したら、実際に使用することができます。次のように入力して Homebridge を 1 回実行し、すべてを初期化します。
ホームブリッジ
作成する必要がある構成が不足しているとエラーが表示されます。デフォルトのディレクトリは
~/.homebridge/
ですが、移動したい場合は
-U
パラメータを使用できます。
次のように入力して、このフォルダーに新しい JSON 構成ファイルを作成します。
nano ~/.homebridge/config.json
使用するプラグインに関係なく、次の基本構成が必要です。
{
“橋”: {
“名前”: “ホームブリッジ”,
“ユーザー名”: “CC:22:3D:E3:CE:30”,
「ポート」: 51826、
「ピン」: 「031-45-154」
}、
“説明”: “カスタム HomeBridge サーバー”,
「ポート」: {
「開始」: 52100、
「終了」: 52150、
}、
「プラットフォーム」: [
】
}
これにより、他のデバイスに割り当てることができるデフォルトのポート、名前、PIN、ポート範囲が Homebridge に設定されます。
空の
platforms
配列内に、各プラグインの構成を配置します。この手順と例は、各プラグインの GitHub ページで見つけることができます。
以下の例では、TECKIN 電球用の
homebridge-tuya-web
プラグインは、電球のアプリの API に接続するためのユーザー名とパスワード、およびその他いくつかのことを知りたいと考えています。
「プラットフォーム」: [
{
“プラットフォーム”: “TuyaWebPlatform”,
“名前”: “TuyaWebPlatform”,
「オプション」:
{
“ユーザー名”: “ユーザー名”,
“パスワード”: “パスワード”,
“国コード”: “1”,
“プラットフォーム”: “スマートライフ”,
「ポーリング間隔」: 10
}
}
】
すべての設定が完了すると、Homebridge を使用できるようになります。もう一度実行すると、端末に巨大な QR コードが表示され、強制的にズームアウトされる可能性があります。これをホームアプリでスキャンして、それと接続されているすべてのデバイスを HomeKit に追加します。
Homebridge はプラグインをロードし、検出したデバイスごとに画面にメッセージを記録する必要があります。追加後、HomeKit にそれらがすべて表示され、完全に機能するはずです。
LIFX 電球と比較してわずかな遅延があることに気付きました。これはおそらく、電球が直接ではなく API を介して制御されているためです。最初は、電球も一部の白と暖色を正しく表示できませんでしたが、少し調整した後、適切なシーンを設定できるようになりました。
いつでも独自のアプリでデバイスを設定し、ホーム アプリが更新されるのを待ってから、事前に作成された設定を使用して HomeKit でシーンを設定できます。
Homebridge を再度追加する必要がある場合は、config ディレクトリの
persist/
フォルダーを削除してから、[Bridge] タブの下にある接続されている電球の設定から HomeKit からブリッジを削除します。
Homebridge をサービスとして追加する
Homebridge を常に実行したい場合は、クラッシュした場合や Raspberry Pi が再起動した場合に再起動するように構成するとよいでしょう。これは Unix サービス経由で実行できます。 Homebridge が意図したとおりに動作していることを確認した後、これを設定します。
まず、
homebridge
という新しいサービス ユーザーを追加します。
sudo useradd -M --system homebridge
パスワードを設定します。
sudo passwdホームブリッジ
次に、
homebridge
構成を個人のホーム ディレクトリの外に移動する必要があります。
/var/lib/homebridge/
問題ないはずです。
sudo mv ~/.homebridge /var/lib/homebridge/
homebridge
を使用している人がそのディレクトリとすべてのサブフォルダーの所有権を持っていることを確認してください。
sudo chown -R ホームブリッジ /var/lib/homebridge/
それが完了したら、サービスを作成できます。これを行うには、
/etc/systemd/system/
に
homebridge.service
という新しいファイルを作成します。
sudo nano /etc/systemd/system/homebridge.service
そして、次の設定を貼り付けます。
[ユニット]
説明=ホームブリッジ サービス
After=syslog.target ネットワークオンライン.target
[サービス]
タイプ=シンプル
ユーザー=ホームブリッジ
ExecStart=/usr/bin/homebridge -U /var/lib/homebridge
再起動 = 失敗時
再起動秒=10
KillMode=プロセス
[インストール]
WantedBy=マルチユーザー.ターゲット
サービス デーモンをリロードして、変更内容を更新します。
sudo systemctl デーモン-リロード
これで、サービスを有効にすることができるようになります (起動時に実行するように設定します)。
sudo systemctl ホームブリッジを有効にする
そしてそれを開始します:
sudo systemctl ホームブリッジを開始
サービス構成に起因するエラーをデバッグする必要がある場合は、次のように入力してサービスのログを表示できます。
ジャーナルctl -fn 50 -u ホームブリッジ





