【未完】シャープ製お掃除ロボット(cocorobo RX-V200)のAPIを叩く

ココロボは優秀な家庭用ロボだと公言しつつ、公式アプリからしか制御できないのでハックし甲斐がねえなと思って早幾年。8月26日にシャープから開発者向けAPIが公開されました。これ公開するまでに色々あったんだろうなあ(社内調整が)。

一個問題があってうまく動かせてないですが、備忘録的にAPIの叩き方を記録します。

APIの概要

今回公開されたAPIはWebAPIとアプリAPIの二種で、それぞれできることが違います。

  • WebAPI

    • 認証
    • 音声発話
  • アプリAPI

    • 機器制御
    • 機器情報の取得

何をやるにしてもWebAPIの認証をかける必要がありますが、そこでこけているのでこの記事は未完です。単なる作業記録。 ちょっと残念なのが、機器制御や情報取得がアプリAPIAndroid APK)の使用を前提としていること。機器制御に関しては法的な問題があるかも…と思う節もあるけれど、ココロボの情報取得だけだったら問題ないんじゃねえのかな。

ココロボは温度・湿度、電池残量、衝突回数などを取得しているので、そのデータをWebAPI経由で取れたら良いと思うんです。公開しない理由が良く分からない(APIのメイン開発者が辞めたとかだったらしゃーないけど)

WebAPIの叩き方

公式サイトのリファレンスにはサンプルコードがありますが、JavaPHPのサンプルだけでした。両方そんなに使ったことないので、UNIX系で汎用的につかえるcurlAPIを叩きます。

curlMac OSLinux系なら大概デフォルトで入ってます。今回はRaspberry Pi(Rasbian)使いました。

curl -H "Content-type: application/json" -d '{"apikey_cocorobo":"XXXXXXXXXXXXXXXXXX", "message":"ほげほげ"}' 'https://developer.cloudlabs.sharp.co.jp/cloudlabs-api/cocorobo/auth' 

JSONで投げます。apikey_cocoroboの部分は開発者登録をした際に割り振られるキーです。

POSTで渡せと書いてますが、-dオプションがデフォルトでPOSTなのでこれで大丈夫。なんだけど。。

{"resultCode":"1","errorCode":"E010106","message":"Registertd MAC Address:XXXXXXXXXXXXX different with COCOROBO MAC Address."}

なんかMACアドレスが違うらしい。というわけで一旦ここまで。シャープに問い合わせて回答もらえ次第つぎの作業に移ります。せっかく勉強しているのでPythonで制御したいなー。

developer.cloudlabs.sharp.co.jp