【Homebridge】iRobot ルンバ i7をApple HomeKit化して、Siriで操作しちゃおう

スマートデバイス
スポンサーリンク

先日ついに念願のロボット掃除機ルンバ買ってしまいました。こういう新しい家電を買ったら、やることは決まっていますよね?スマート家電としてApple HomeKitに統合してしまいしょう。

ルンバはスマートスピーカーには対応ということになっているんですが、Google homeとAmazon Alexaにだけ対応しており、Siriには残念ながら純正の状態ではサポートされていないんですよね。しかしHomebridgeハックの方法を使えば、Apple HomeKit化することがわかったので、早速我が家のスマートホームとして追加してみました。

因みに追加できるとこんな感じで操作することが可能です。

「Hey Siri 掃除をして」でRoomba(ルンバ)起動

システム構成と必要なもの

今回の構成はラズベリーパイを使った構築になります。

  • 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/v10.15.0/bin/node
$ node -v
v10.15.0

#npmの最新版をインストール
$ sudo npm -g install npm@latest
$ npm -v
6.7.0

以下のコマンドを事前に設定しておけば、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
/home/pi/.nvm/versions/node/v10.15.0/bin/homebridge -> /home/pi/.nvm/versions/node/v10.15.0/lib/node_modules/homebridge/bin/homebridg

ルンバのIPアドレスを確認

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

このIPアドレスは、特に何も設定していなければ、接続の度にIPアドレスが変わってしまう可能性があるので、ルーターの設定でIPアドレスを固定にしておきましょう。

homebridge-roombaのインストール

npmのコマンドを使ってインストールしていきましょう。

$ npm install -g homebridge-roomba
+ homebridge-roomba@1.0.1
added 121 packages from 107 contributors in 17.223s

通常のプラグインはこれでインストールが完了となることが多いんですが、ルンバの場合はもう一手間かかります。まずは以下のコマンドでディレクトリを変更しましょう。

$ cd ~/.nvm/current/lib/node_modules/homebridge-roomba/

移動できたら、次のコマンドを打つ前に以下の点を再度確認してください。

  • ルンバと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ファイルを以下のような感じで作成していきます。ラズパイのMACアドレスも必要になるので、事前に調べておいてください。

$ vim ~/.homebridge/config.json
{
	"bridge":
	{
		"name": "Homebridge",
		"username": "B8:27:xx:xx:xx:xx",  //事前にラズパイのMACアドレスを調べておく
	        "port": 51826,
	        "pin": "031-45-154"
	},
        "accessories": [
	{
		"accessory": "Roomba",
		"name": "Roomba",
		"blid":"0123456789abcdef",     //前手順でメモしておいたblid
		"robotpwd":":1:2345678910:ABCDEFGHIJKLMNOP",   //前手順でメモしておいたPassword
		"ipaddress": "192.168.xx.xxx"
	}
	]
}

起動の確認

あとはhomebridgeを起動してみて、エラーなどが出ないことを確認して、起動が無事確認できれば、Apple Homekit化の成功となります。

# homebridgeの起動確認
$ homebridge

# homebridgeのサービス起動
$ systemctl start homebridge

初めてのhomebridgeを作成の場合にはiPhoneへのアクセサリ登録が必要なるので、こちらで方法をまとめています。

シーンの作成をしてSiriからの操作を便利にしておく

これだけで十分ではあるんですが、どうせならSiriで呼びやすいように設定しておきましょう。因みにこのままだと”Roombaをオンにして“と命令すると、掃除を開始して、”Roombaをオフにして“というと掃除を終了するという感じになっているので、冒頭の動画のように”掃除をして”と”掃除をやめて”というように、わかりやすいSiriコマンドにするために、シーンとして作成しておきましょう。

シーンの作成方法は、ホームアプリの右上のボタンをクリックして、シーンの追加をクリック。以下の2つのシーンを追加しておきます。

”掃除をして”でRoombaをオンに
”掃除をやめて”でRoombaをオフに

最後に

これで完成となりますね。何ができるようになったかと言えば、以下のようなことが新たにできるようになったはずです。

  • Siriで操作ができる
  • オートメーションで他の家電で組み合わせることができる
  • Apple Homeアプリでスマート家電をまとめることができる

でもそれでもスマートマップやスケジュールなどは、以前iRobot homeから使うでしょうから、今回のはちょっとした遊びのようなものですね。でもSiriでルンバが操作できるとペットのような存在にも感じて愛着がわきますよね笑。

では、これからもどんどんスマートホーム機器追加していきますね〜

スマートデバイス Homebridge スマートホーム Homekit
スポンサーリンク
スポンサーリンク
スポンサーリンク
スポンサーリンク
\この記事が役に立ったらシェアしよう/
デジライン

Comments

こちらの記事も読まれています
スポンサーリンク
スポンサーリンク

この記事を書いた人

スマートホーム x IT x 子育て(2度の育休取得)。モバイルシステムエキスパート。独学でプログラミング勉強してWEBアプリ作ったりしながら、日々の生活の中で面白そうな情報を記事にしています。レビュー依頼などはお問合せからお願いします。

\フォローする/

お得なプライム特典はこちら

タイトルとURLをコピーしました