「Hey Siri 掃除をして」で、Roomba(ルンバ)に掃除をしてもらう

Tech

2016.4.22

Topics

Roomba(ルンバ) 980
こんにちは、NHNテコラス株式会社 UIT室 NUIチーム フロントエンドエンジニアのumeです。
NHNテコラスではCARTSTARなどEC事業のフロントエンド開発全般を行っています。
最近 Roomba 980 を購入しました。
前回の「Roomba(ルンバ)のお掃除状況を飼い猫に鳴いてもらう」の記事では、
Roombaの掃除状況をペットの@hubonyanにSlackで鳴いてもらったり、
Slackから「@hubonyan 掃除をして」とお願いすると
Roombaが掃除をしてくれる仕組みを紹介しました。
お掃除状況をSlackで通知する仕組みを妻に納品したら、
いちいちSlackを立ち上げて「@hubonyan 掃除をして」と打ち込むのはUX的にどうなの?
とご指摘いただきましたので、今回はご家庭にあるApple Watchを使って、
「Hey Siri 掃除をして」とお願いするだけでRoombaが走り出す仕組みを構築しました。

Homebridgeの設定とRoomba980用プラグインの追加

残念ながら我が家のペットは人間の言葉を理解することはできないため、
@hubonyanに変わり、Siriさんに掃除をお願いします。
参考にしたのは当社のワタナベさんの記事。
Raspberry Pi + HomeKit + IRKit = Siriで家電を音声操作できるようにする
まずはこちらを元に、Homebridge周りの環境を設定します。
一通り設定が終わったら、Roomba用のプラグインを書いておきましたので
追加でインストールしてみてください。

npm install -g homebridge-roomba

次に、Homebridgeの config.json の accessories に Roombaを追加します。

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:ED:CE:30",
        "port": 51826,
        "pin": "031-46-160"
    },
    "description": "homebridge-plugin for Roomba980",
    "accessories": [
        {
            "accessory": "Roomba",
            "name": "Roomba",
            "blid":"0123456789abcdef",
            "robotpwd":"abcdefghijklmnop"
         }
    ]
}

blid robotpwd は、お買いあげいただいたRoombaのIDとPWを設定してください。
IDとPWの調べ方は、こちらの記事が非常に参考になります。
config.json の設定が完了したら、homebridge コマンドを実行しておいてください。
ここまでで、Raspberry Pi + Homebridge側の設定は完了、
RoombaにSiri経由で掃除をお願いする準備が整いました。
あとは、iPhone・iPadにインストールしているHomekit対応アプリの設定をすれば完了です。

Homekit対応アプリの設定

それでは、Siriが「掃除をして」と「掃除を止(や)めて」の
お願いを聞いてくれるようにアプリ側に設定します。
今回は Elgato Eveというアプリでの設定例を紹介します。
Homebridgeの設定が上手くいっていると、
Elgato Eve アプリの 「設定(アプリ右上の歯車アイコン)」 -> 「アクセサリ」 の一覧にRoombaが表示されているはずです。
まずは、一覧からRoombaを選択後、「Siri用の名前」のところを、「ルンバ」に設定します。
日本語でSiriにお願いする場合、「ルンバ」と設定しておかないと認識してもらえないみたいです。
「Siri用の名前」のところを、「ルンバ」に設定
次に、下記の順番で「掃除をして」というシーンを作成していきます。

  1. 「設定(アプリ右上の歯車アイコン)」
  2. 「自動制御」
  3. 「シーンを追加」
  4. 「アクションを追加 」
  5. 「部屋の選択(デフォルトだとホームにRoombaはいるはず)」
  6. 「ルンバ・ROOMBA」 の項目の電源のスイッチをONにする
  7. 「オフ」「オン」の選択肢が表示されるので、「オン」を選択
  8. 追加ボタンを押す
  9. シーンを追加画面に戻ってきたあと「次へ」ボタンを押す
  10. シーン名で「掃除をして」と入力
    (入力が上手くいかない場合は、メモ帳アプリ等に記入したものをコピペするとうまくいきます)

ほぼ同じ手順で、「掃除を止めて」も登録します。
「掃除を止めて」の場合は、6の「オフ」「オン」の選択肢が表示されるところで、
「オン」を選択します。
あと、細かいところですが、シーン名を「掃除をやめて」のように
ひらがなで登録していると認識してくれませんでした。
「掃除をして」「掃除を止めて」
ここまでの設定で、Siriに向かって「掃除をして」「掃除を止めて」と頼むと
ルンバが動き始めます。

おわりに

「掃除を止めて」というと、一時停止した後、
しょぼーんとしながらDocへ帰っていくRoombaさんがとてもかわいいです。
お掃除したいときに「掃除をして」とつぶやくだけで掃除がはじまる。
妻が求めていたUXがここに完成しました。
NHNテコラスでは、お掃除からECカートシステムまで、あらゆるUXを改善をしたい
フロントエンドエンジニアを募集しています。

テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら