先日ついに念願のロボット掃除機ルンバ買ってしまいました。こういう新しい家電を買ったら、やることは決まっていますよね?スマート家電としてApple HomeKitに統合してしまいしょう。
ルンバはスマートスピーカーには対応ということになっているんですが、Google homeとAmazon Alexaにだけ対応しており、Siriには残念ながら純正の状態ではサポートされていないんですよね。しかしHomebridgeハックの方法を使えば、Apple HomeKit化することがわかったので、早速我が家のスマートホームとして追加してみました。
因みに追加できるとこんな感じで操作することが可能です。
システム構成と必要なもの
今回の構成はラズベリーパイを使った構築になります。

- Raspberry Pi 本体および付属品(電源ケーブル、SDカードなど)
- iRobot ルンバ i7 ※i7/i7+, 980, 960, e5, 690, 675でも同じ手順で動作可能のはずです


インストール手順
では早速インストール手順について説明していきたいと思いますが、本手順ではラズパイの初期設定が完了していることを前提として、nodeソフトのインストールから説明しています。ラズパイの初期設定が完了していない場合は、まずは完了させてから本手順を実施してください。
node と npmのインストール
今回nodeはv10.15.0を使用していますが、新しいものにしておけばとりあえずOKだと思いますが、一部のプラグインでは互換性チェックで動作しないこともあります。また新しいものの場合には、インストールしている他のプラグインが動かなくなる可能性もあるので、そこは注意してください。この手順で実施する方であれば、とりあえずはv10.15.0を使うことをお勧めします。
#nvm v10.15.0のインストール
$ nvm install v10.15.0
#インストールされたversionを確認
$ which node
/home/pi/.nvm/versions/node/v14.15.4/bin/node
$ node -v
v14.15.4
#npmの最新版をインストール
$ sudo npm -g install npm@latest
$ npm -v
6.14.11
以下のコマンドを事前に設定しておけば、nodeの現在の使用versionを”current”として指定するできるので今後使うときには結構便利になるのでお勧めです。
#複数のversionをインストールした時のためのシンボリックの自動更新をできるようにしておく
$ echo export NVM_SYMLINK_CURRENT=true >> ~/.bashrc
#.bashrc を再リロードする。
$ source ~/.bashrc
homebridgeのインストール
nodeが準備できたら、次はhomebridgeをインストールします。これは特にversionを指定せずにインストールしていますので、これを参考にした場合にはまたversionが変わっているかもしれません。
#homebridge の依存ライブラリをインストールする。 //以前に実行済の場合はこの手順はスキップ
$ sudo apt-get install libavahi-compat-libdnssd-dev
#homebridgeのインストールを実行します
$ sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-x
/home/pi/.nvm/versions/node/v12.18.1/bin/homebridge -> /home/pi/.nvm/versions/node/v12.18.1/lib/node_modules/homebridge/bin/homebridg
#Web管理ツールのインストールを実行します
$ sudo hb-service install --user homebridge
Web管理GUIからhomebridge-roomba2プラグインをインストール
前述の手順でWeb管理ツールをインストール出来たら、http://IPアドレス:8581にアクセスして、管理GUIにログインしましょう。
デフォルトのアカウントはadmin/adminです。
ログイン完了後にはユーザーの追加&パスワードの変更をしておきましょう。以下に細かな設定を書いています。
https://simple-was-best.com/homebridge-config-ui-x-intall/
管理画面にログインが出来たら、プラグイン画面にて「roomba」と検索して、「homebridge-roomba2」のプラグインをインストールしましょう。”Verified”のマークがついているのでわかりやすいですね。

ルンバのIPアドレスを確認
プラグインのインストールにルンバのIPアドレスが必要になるので、事前にIPアドレスを調べておきましょう。iRobot Homeアプリを起動して、設定→Wi-Fi設定→ロボットのWi-Fiの詳細をクリックしてIPアドレスを調べておきましょう。

このIPアドレスは、特に何も設定していなければ、接続の度にIPアドレスが変わってしまう可能性があるので、ルーターの設定でIPアドレスを固定にしておきましょう。
https://simple-was-best.com/wifi-ip-fix-smarthome/
homebridge-roomba2のセットアップ
通常のプラグインはこれでインストールが完了となることが多いんですが、ルンバの場合はもう一手間かかります。まずは以下のコマンドでディレクトリを変更しましょう。
$ cd ~/.nvm/current/lib/node_modules/homebridge-roomba2/
//上記パスは我が家のラズパイ環境(nvm)の場合のパスになります。インストール環境によって(/usr/local/lib/node_modules/homebridge-roomba2)になったり、(/homebridge/node_modules/homebridge-roomba2)になったりするので注意してください
移動できたら、次のコマンドを打つ前に以下の点を再度確認してください。
- ルンバとHomebridge(ラズパイ)が同じWiFi/SSIDに接続されていること
- ルンバがホームベースに十分充電されていること
OKであれば、下のようなコマンドを打ってください。IPアドレスは事前に調べたルンバのIPアドレスを入力してください。
$ npm run getrobotpwd 192.168.xx.xxx
> homebridge-roomba@1.0.1 getrobotpwd /home/pi/.nvm/versions/node/v10.15.0/lib/node_modules/homebridge-roomba
> cd node_modules/dorita980 && npm install && node ./bin/getpassword.js "192.168.xx.xxx"
audited 1263 packages in 9.234s
found 2 vulnerabilities (1 low, 1 critical)
run `npm audit fix` to fix them, or `npm audit` for details
Make sure your robot is on the Home Base and powered on (green lights on). Then press and hold the HOME button on your robot until it plays a series of tones (about 2 seconds). Release the button and your robot will flash WIFI light.
Then press any key here...
この状態になったら、ルンバのホームボタンだけを2秒間押して、音声が鳴るまで押し続けてください(2秒間)。正しく反応できていれば、LEDが青く光るはずです。

上手く行っていれば、以下のようなアウトプットが出ているはずですので、下の方にある”blid”と”Password”をメモっておいてください。
Robot Data:
{ ver: '3',
hostname: 'iRobot-7E7260D6C6Fxxxxxxxxxxxxxxxxxxxxx',
robotname: 'Roomba',
robotid: '7E7260D6C6Fxxxxxxxxxxxxxxxx',
ip: '192.168.xx.xxx',
mac: '50:14:79:xx:xx:xx',
sw: 'lewis+1.5.4+lewis-day-0-ota+20',
sku: 'i715060',
nc: 0,
proto: 'mqtt',
cap:
{ binFullDetect: 1,
dockComm: 1,
maps: 3,
edge: 0,
area: 1,
eco: 1,
multiPass: 2,
pose: 1,
team: 1,
pp: 0,
'5ghz': 1,
prov: 3,
sched: 1,
svcConf: 1,
ota: 2,
log: 2 },
blid: '0123456789abcdef' }
Password=> :1:2345678910:ABCDEFGHIJKLMNOP <= Yes, all this string.
Use this credentials in dorita980 lib :)
設定ファイルの編集
あとは設定ファイルをルンバ用に作成していくだけですね。config.jsonファイルを直接編集しても良いんですが、管理WEBサイトから修正する方が楽ですね。
以下のような感じで前の手順で確認したblidとPasswordを入力してください。NameとModel名はなんでも大丈夫ですが、今回は「i7」と入力しておきました。

起動の確認
あとはhomebridgeを起動してみて、エラーなどが出ないことを確認して、起動が無事確認できれば、Apple Homekit化の成功となります。
# homebridgeの起動確認
$ homebridge
# homebridgeのサービス起動
$ systemctl start homebridge
初めてのhomebridgeを作成の場合にはiPhoneへのアクセサリ登録が必要なるので、こちらで方法をまとめています。
シーンの作成をしてSiriからの操作を便利にしておく
これだけで十分ではあるんですが、どうせならSiriで呼びやすいように設定しておきましょう。因みにこのままだと”Roombaをオンにして“と命令すると、掃除を開始して、”Roombaをオフにして“というと掃除を終了するという感じになっているので、冒頭の動画のように”掃除をして”と”掃除をやめて”というように、わかりやすいSiriコマンドにするために、シーンとして作成しておきましょう。
シーンの作成方法は、ホームアプリの右上のボタンをクリックして、シーンの追加をクリック。以下の2つのシーンを追加しておきます。


最後に
これで完成となりますね。何ができるようになったかと言えば、以下のようなことが新たにできるようになったはずです。
- Siriで操作ができる
- オートメーションで他の家電で組み合わせることができる
- Apple Homeアプリでスマート家電をまとめることができる
でもそれでもスマートマップやスケジュールなどは、以前iRobot homeから使うでしょうから、今回のはちょっとした遊びのようなものですね。でもSiriでルンバが操作できるとペットのような存在にも感じて愛着がわきますよね笑。
では、これからもどんどんスマートホーム機器追加していきますね〜

コメント
コメント一覧 (4件)
ラズパイはゼロでも可能でしょうか?
もちろん可能です。
Homebridge UIを使えば、メンテも簡単ですし、フロー通りやれば誰でもできると思いますよ。
わかりやすい説明でめっちゃたすかります。
しかし、私は何回試しても最後のパスワードのどころだけエラーをだして情報を持ってくることができないです。
この場合何か対策はあるでしょうか?
コメントありがとうございます!
記事にも書いていますが、以下を気をつければ大丈夫だったと思います。
・ルンバとHomebridge(ラズパイ)が同じWiFi/SSIDに接続されていること
ただどういうエラーなのかにもよるので、もしエラー画面を見せてもらえればもう少し何かわかるかもしれません。