うめぞーコラム

思ったことを書き綴るだけの内容。IT業界ネタ中心。

ブラーバ jet m6 その後(まさか...?!)

 前回書いたこれの続き。

mumeno.hatenablog.com

 

International Supportとは...

うめぞーのブラーバ、アメリカのAmazonで買って、日本に持ち込んだもの。今や世界的に名の知れたiRobot社、一応

International Support | iRobot Customer Care

を標榜しています。で、日本のサポートに問い合わせをしたところ、回答がありました。

が、その内容は、「日本で販売したものではないのでサポートも修理も受けられません」というもの。外国製品あるあるですね。正規販売店を通したもの以外は面倒を一切遮断するスタイル。まぁ、ここまでは想定内。

で、iRobot社のUSの窓口に聞いたところ、「日本で使っているなら日本のサポートを受けろ」と。完全に難民化してますが... -_-#

私が勤める会社も「外資系」ですが、基本は買ったところに問い合わせをすればサポートは受けられます。Appleなんかは、その製品が偽物ではなければ、使用している国でサポートが受けられます。その当たり前が通じない。残念です。本当に。

 

まさか?っえ?!

で、今日のお話はその後のこと。

どうにもブラーバがエラーで動かないから初期化したわけですよ。で、もう一度再設定。その際にブラーバに名前が付けられます。デフォルトでは「Braava jet」。おそらく、このあと何度も初期化するだろうな、ということで、面倒なのでデフォルトの名前「Braava jet」のままセットアップをしました。

#ちなみに、正常に動いていた時は「ブラーバm6」と名付けていました。

 

そして。夜の10時とかに、「Braava jet」は突然の再起動。

え? 直った?!

いえ。そしてすぐに沈黙。でもまた再起動、そしてピコピコと聞いたことのない音や、再起動など、勝手に動き出す。動き出すと言っても、「Braava jet」が物理的に移動するのではなく、音と光が鳴り響くのみ。

サポートセンターが、シリアル番号から勝手にリモート操作でもしているのかな?と思っていたのですが、それにしてもなんかおかしい。事前通知もなく勝手に操作されている感じは、マジ気持ち悪い...うざい。うるさい。

 

そして、その翌日。やっぱり、夜の10時頃になってまた再起動やピコピコが始まるのです...おいおい。日本の夜の10時って、米国東海岸時間でいうと午前9時。

 

で、IT歴四半世紀のうめぞー、なんとなくの直感が働きました。ピキーン。

米国人が出勤後の朝9時に、タイマーで仕掛けておいたブラーバが掃除していないか?

 

Braavaは、iRobotクラウドを利用しています。iRobotクラウドに登録された情報を利用して、RoombaやBraavaの起動停止、掃除マップの登録や行動履歴やをiPhoneのアプリから操作できるようになっています。その通信はインターネットを介しているので、TCP/IPなはずです。実際にはIoT技術として注目されたMessage Queue Telemetry Transport (MQTT)プロトコルが使われているようです。

MQTTは基本、Pubisher / Subscriber がBrokerにあるTopicを介してメッセージのやり取りを行っています。そして、私うめぞーのIT的な直感は、

 

「操作系の指示は、Topicを機器特有のMAC Addressではなく、名付けたマシン名にしていないか?」

 

MAC Address (Media Access Control Address) は、インターネットに接続されるインターフェースの物理識別として世界で唯一となるように付けられているものです。48ビットで構成されているため2^48個のパターンがあります。(特別な制御系を除くと実際に使えるのはおよそ70兆個、でもこれだけあればIPv4のようにそう簡単に枯渇することもなかろう...)

Pubulisher (この場合は掃除の開始・停止指示を行うiPhoneiRobotアプリ)がこのMac Addressをtopicに指定しておけば、SubscriberとなるBraava本体は自分のMac Addressのtopicがあるかどうかを確認すればよいはずです。

 

ところが、このtopic名にマシンの名前を使ったらどうなるでしょうか。ユニークな名前にしていれば、特に問題はないですが、デフォルトで使われている名前で設定している方がたくさんいるとすると、誰のiRobotアプリからの指示なのか、わからなくなりますよね?つまり、「掃除開始」「掃除開始」「停止」「掃除開始」「掃除開始」「停止」「停止」「停止」... などという、めちゃくちゃな指示を立て続けに受けてしまって、メチャクチャな動作になりますよね。さらに、うめぞーの「Braava jet」、なぜか充電スペースから出られないのです。おかげで誰も操作していないのに、リングが白くなったり赤くなったり青くなったり、ピコンピコンと鳴り続ける「ポルターガイスト現象」となっています。。。怖い。

 

行動履歴やログ、部屋情報のデータ送信はMQTTではなくHTTPを使ってRESTでやり取りしているのではないかと想像します。データ量が多いからね。

 

そこで、改めて初期化を行い、マシン名としてこんな名前は誰も付けないだろうと、カタカナで「ダメ」と名付けました。(w

どうでしょう。暴れまくっていた操作指示がピタリと止みました。

 

f:id:mumeno:20200510001206j:plain

ダメ

MAC Address、ソフトウェア的に偽装することも可能ですが、お掃除ロボットMAC Addressを偽装させる有益な意味など存在しないし...

もちろん製品にはシリアル番号があります。Topicをシリアル番号にしておけば論理的にはユニークにはなり、偽装したシリアル番号のマシンで同じような事が起きると思いますが、マシン名を変えたことでポルターガイスト現象が収まるという上の状況の説明がつきません。

 

まさか...ねぇ。(あくまでも仮定の話です)

 

技術のお話

今日のお話の中で、レッドハットでご用意している技術・製品は下記のとおりです。
データ連携:Red Hat Integration (AMQ, Kafka, Data Virtualization)