AndroidにDebianをインストールしてHomebridgeのサーバ化

投稿者: | 12月 22, 2023

注意!

Homebridgeがアップデートされインストール方法、実行するためのコマンドが変わったので、新しく記事を書き直しました。併せてお読みください。

AndroidにDebianをインストールしてHomebridgeのサーバ化(アップデート後版)

導入

部屋をスマートホーム化したい、安く作成するためにESP32を使用することを考えました。そこで、いろいろ調べていたところ、HomebridgeというHomeKitに非対応なスマートデバイスを対応させるソフトを見つけ、導入しようとなったんですが、サーバ選定で迷いました。結果的には低価格・停電消費電力・必要最低限のインターフェイスを備えたAndroidスマートフォンをサーバとして選定しました。(本当はBUFFALOのWiFiルータを使用したかったけど、CPUが対応してなかった…) 今回はXperia Z3 CompactにDebianをインストールしてその上にHomebridgeを立ち上げるということを行いました。

Debianのインストール

0. Android端末のRoot化
今回使用するアプリはroot化が必須なのでkingroot等を使用して各自でRoot化してください。

1. Linux Deployのインストール
AndroidにDebianをインストールする方法として、今回はLinux Deployというアプリを使用しました。Google Playからダウンロードが可能です。また、Busy Boxが必須なので、まだインストールしていなかったらこのタイミングでしてください。
Linux Deploy – Google Play のアプリ
BusyBox – Google Play のアプリ

2. Linux Deployを立ち上げてインストール設定を行う
アプリのインストールが終わったら、立ち上げます。右下にある設定マークからインストールするLinuxの設定を行います。自分の場合は設定をこのようにしました。

3. Linux Deployの設定を行う
起動したままにする、WiFiの接続を維持する、端末起動時に自動起動する等のさまざまな設定があるのでDebianをインストールする前に設定しておきます。自分はこんな感じにしました。

4. Debianをインストール
右上にある︙を押してinstallからインストールを行います。10分くらいで終わると思います。

5. STARTを押す
インストールが終わったらスタートボタンを押して、スタートする。

6. SSHの接続をする
Linux Deployの上にIPアドレスが表示されているはずなので、同一ネットワーク内のPC等からSSH接続を行います。もし、表示されてなかったり、表示が切れていた場合はAndroidの設定等から端末のIPアドレスを確認してください。

Homebridgeのインストール

ここから先はアップデートによって変わりました。新しい記事をお読みください。

7. sudo apt update
レポジトリの更新をします。

8. sudo apt install curl
curlがインストールされてないのでします。

こっから先9~12はgithubに載っている通りです。

9. curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -
レポジトリを追加します。

10. sudo apt-get install -y nodejs npm gcc g++ make python net-tools
node.jsをインストールします。
終わったらnode -v等で正常にバージョンが表示されるか確認します。

11. sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-x
homebridgeをインストールします。

12. sudo hb-service install --user homebridge
サービスとして登録します。通常のLinuxであればここで終了です。しかし、Linux Deployをはじめとするchroot上のLinuxではsystemdを使ってサービスを起動させることができないので、このコマンドだけでは全く動きません。

13. sudo hb-service run --allow-root
このコマンドを打ってブラウザから、IPアドレス:8581にアクセスしてみてください。正常にインストールされていればHomebridgeのログイン画面が現れるはずです。一通り動くことが確認できたらCtrl + cでプロセスを終了させてください。

スタートアップ設定

systemdが働かないので、Linux DeployでのDebianインストール時に用いたSysVを使用します。

14. echo 'sudo hb-service run --allow-root' | sudo tee /etc/rc3.d/S99homebridge
rc3.d(ランレベル3で実行されるスクリプトが入っているフォルダ)にS99Homebridgeというファイルを作成してsudo hb-service run --allow-rootを書き込んでいます。

15. sudo chmod 755 /etc/rc3.d/S99homebridge
これで実行可能なスクリプトとなりました。

これでスタートアップ設定は完了です。STOPを押してからSTARTを押して、再起動するとログの最後がhomebridge…となるはずです。もし、homebridge… failとなってしまっている場合はサーバーの立ち上げに失敗してしまっているので手動でSSH経由でsudo hb-service run --allow-rootを実行してください。

こんな感じでスタートアップ設定が少し変則的なだけで簡単にHomebridgeサーバをAndroidで立てられます。ちなみに私が使用したXperia Z3 Compactはバッテリーを取り除いて、直接4Vをバッテリー端子に入力してあります。

他にも、WiFiではなく有線LANを使用してます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)