スマートデバイスをHomeKitに接続する方法(Raspberry Piを使用)
公開: 2022-01-29多くのスマートデバイスはAppleHomeKitのサポートをスキップし、Alexa、Google、およびその他のプラットフォームとのみ統合します。 ただし、このRaspberry Piハックを使用すると、オープンソースのHomebridgeソフトウェアを使用して任意のスマートデバイスにHomeKitサポートを追加できます。
あらゆるスマートデバイス向けのHomeKit
HomeKitにオールインしている場合、大きな問題の1つは、HomeKitをサポートするスマートデバイスが少ないことです。 たとえば、一部の安価なスマート電球を阻んでいるのは、HomeKitのサポートがないことだけです。 Amazonが選んだ「スマート電球」はTECKINの4パックで、この記事の執筆時点では、LIFX電球1つよりも約40ドル安くなっています。
もちろん、LIFXほどプレミアムではありません。 色はそれほど鮮やかではなく、バスルームで可聴のバズを発しますが、10ドルのポップで、かなり無敵の価値があります。
ただし、主な問題は、HomeKitがサポートされていないことです。 それらは完全に馬鹿げているわけではありません。GoogleHome、Alexa、IFTTT、およびメーカーのアプリで動作します。 TECKINスマート電球しか持っていない人には問題ありません。
ただし、HomeKitからはアクセスできないため、Homeアプリ、コントロールセンターのウィジェット、またはSiriからそれらを制御することはできません。 また、他のブランドの球根があるシーンにそれらを含めたり、オートメーションで使用したりすることもできません。 すでにHomeKitに投資している場合、これはおそらく大失敗です。
ホームブリッジに会う
幸いなことに、これらの特定の球根をはるかに便利にするハックがあります。 HomeKit APIを使用すると、このようなPhilips Hueのブリッジと呼ばれるデバイスが、他のプロトコルで動作する子デバイスを接続できます。 ブリッジをデバイスとしてHomeKitに追加するだけで、ブリッジに接続されている各ライトがHomeKitに登録されます。 ライトの更新を要求するたびに、電話はブリッジと通信し、ブリッジはライトと通信します。
したがって、ブリッジは1つのAPIから別のAPIに情報を中継するだけです。 TECKIN電球はインターネット経由で制御できるため、ソフトウェアだけでHomeKitに接続できます。専用のハードウェアは必要ありません。
Raspberry Piを配置している場合(5ドルのPi Zeroで十分です)、Homebridgeと呼ばれるフレームワークを備えたブリッジとして設定できます。 この軽量のNodeJSアプリケーションは、HomeKit APIをエミュレートし、HomeKit以外のスマートデバイスにリクエストを転送します。
基本的に、Piで実行すると、各「ダム」デバイスがホームアプリに追加されます。 HomeアプリまたはSiriを介して電球を制御しようとすると、Homebridgeがデバイスに話しかけます。 セットアップすると、そもそもデバイスがHomeKitをサポートしていたようになります。
これには、デバイスが常にHomebridgeを実行している必要があるため、これはラップトップにインストールするものではありません。 Raspberry Piが理想的ですが、古いデバイスをお持ちの場合は、常に稼働しているサーバーまたはデスクトップとして再利用でき、そこにインストールできます。
Homebridgeはフレームワークであり、プラグインを使用して拡張できます。 かなり大きなコミュニティの支援を受けているため、特定のスマートデバイスにサポートを追加するためのHomebridgeプラグインがある可能性があります。 デバイスにプラグインがなくても、スマートデバイスにAPIがあり、技術に精通している場合は、自分でプラグインを作成できます。
ただし、ほとんどの人にとって、セットアップは、Homebridgeとデバイスのブランドプラグインをインストールするだけで、少し構成が必要です。 コマンドラインを使用して少し時間があれば、それはかなり簡単です。
Homebridgeのインストールと構成
HomebridgeはNodeJSアプリであるため、使用するにはnode
とnpm
をインストールする必要があります。 マシンがLinuxを実行している場合は、おそらくパッケージマネージャーから入手できます。
Ubuntuでは、次のように入力してノードリポジトリを手動で設定してから、 nodejs
をインストールする必要があります。
curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash- sudo apt-get install -y nodejs
それ以外の場合は、特定のOSにノードをインストールする方法について、ノードのダウンロードページを参照してください。
Linuxを使用している場合は、以下に示すように、いくつかの依存関係もインストールする必要があります。
sudo apt-get install libavahi-compat-libdnssd-dev
その後、以下に示すように、 npm
を介してHomebridgeをグローバルにインストールできます。
sudo npm install -g --unsafe-perm homebridge
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」 }、 "description": "カスタムHomeBridgeサーバー"、 "ポート":{ 「開始」:52100、 「終了」:52150、 }、 「プラットフォーム」:[ ] }
これにより、Homebridgeは、他のデバイスに割り当てるために使用できるデフォルトのポート、名前、PIN、およびポート範囲で構成されます。
空のplatforms
アレイ内に、各プラグインの構成を配置します。 各プラグインのGitHubページで、この手順と例を見つけることができるはずです。
以下の例では、TECKIN電球用のhomebridge homebridge-tuya-web
プラグインが、電球のアプリのAPIに接続するためのユーザー名とパスワード、およびその他のいくつかのことを知りたいと考えています。
「プラットフォーム」:[ {{ 「プラットフォーム」:「TuyaWebPlatform」、 "名前": "TuyaWebPlatform"、 「オプション」: {{ "username": "username"、 「パスワード」:「パスワード」、 "countryCode": "1"、 "プラットフォーム": "smart_life"、 「pollingInterval」:10 } } ]
すべての設定が完了すると、Homebridgeの準備が整います。 もう一度実行すると、端末に巨大なQRコードが表示され、ズームアウトが強制される可能性があります。 これをHomeアプリでスキャンして、HomeKitに接続されているすべてのデバイスを追加します。
Homebridgeはプラグインをロードし、検出したデバイスごとに画面にメッセージを記録する必要があります。 それらが追加された後、HomeKitにすべて表示され、完全に機能するはずです。
LIFX電球と比較してわずかな遅延に気づきました。 これはおそらく、電球が直接ではなくAPIを介して制御されているためです。 最初は、電球にも白と暖かい白が正しく表示されませんでしたが、少し調整した後、適切なシーンを設定することができました。
いつでも独自のアプリでデバイスを構成し、Homeアプリが更新されるのを待ってから、事前に作成された構成でHomeKitのシーンを設定できます。
Homebridgeを再度追加する必要がある場合は、configディレクトリのpersist/
フォルダーを削除してから、[Bridge]タブで接続されている電球の設定からHomeKitからブリッジを削除します。
Homebridgeをサービスとして追加する
Homebridgeを常に実行したい場合は、Homebridgeがクラッシュした場合、またはRaspberryPiが再起動した場合に再起動するように構成することをお勧めします。 これは、Unixサービスを介して行うことができます。 Homebridgeが意図したとおりに機能していることを確認した後で、これを設定します。
まず、 homebridge
という新しいサービスユーザーを追加します。
sudo useradd -M --system homebridge
パスワードを設定します。
sudo passwd homebridge
次に、ホームhomebridge
構成を個人のホームディレクトリの外に移動する必要があります。 /var/lib/homebridge/
は問題ないはずです:
sudo mv〜 / .homebridge / var / lib / homebridge /
homebridge
を使用している人が、そのディレクトリとすべてのサブフォルダの所有権を持っていることを確認してください。
sudo chown -R homebridge / var / lib / homebridge /
それが完了したら、サービスを作成できます。 これを行うには、 /etc/systemd/system/
にhomebridge.service
という名前の新しいファイルを作成します。
sudo nano /etc/systemd/system/homebridge.service
次に、次の構成を貼り付けます。
[単位] 説明=ホームブリッジサービス After = syslog.target network-online.target [サービス] Type = simple User = homebridge ExecStart = / usr / bin / homebridge -U / var / lib / homebridge 再起動=失敗時 ResetSec = 10 KillMode = process [インストール] WantedBy = multi-user.target
サービスデーモンをリロードして、変更を加えて更新します。
sudosystemctlデーモン-リロード
これで、サービスを有効にできるはずです(起動時に実行するように設定します)。
sudo systemctl enable homebridge
そしてそれを開始します:
sudo systemctl start homebridge
サービス構成から発生するエラーをデバッグする必要がある場合は、次のように入力してサービスのログを表示できます。
journalctl -fn 50 -u homebridge