Roomba(ルンバ) のお掃除状況を飼い猫に鳴いてもらう
こんにちは、NHNテコラス株式会社 UIT室 NUIチーム フロントエンドエンジニアのumeです。
NHNテコラスではCARTSTARなどEC事業のフロントエンド開発全般を行っています。
最近 Roomba 980 を購入しました。
毎朝出勤時間の10分前に Roomba が掃除を開始するのを見届けてから家を出るのですが、
夜に帰宅するとRoombaが玄関やリビングで力尽きていることが多いです。
これではRoombaが心配で仕事に集中できません。
Roombaのために「家族の安否確認のため早退したいです。」とはさすがに言えないので、
掃除の「開始」「完了」「エラー発生」が起きた時に、Slackに通知が飛ぶ仕組みを作りました。
我が家では、猫(Raspberry Pi + Hubot)を飼っていたので、
飼い猫にRoombaを操作・完了報告をしてもらうことにしました。
<理想 (YouTubeより引用)>
<現実>
飼い猫の@hubonyanに 毎朝8:45に掃除が始まるようにしつけをして、
時間になったら@hubonyanから掃除開始をAPIにRequest、Responseが無事返ってきたら、
Slackで鳴いてもらいます。
そして、掃除開始から30分ほどたったら再度APIにリクエストしてもらい、
掃除状況を確認してもらいます。
このとき、まだ掃除中(run)だったら、5分間隔で確認しにいってもらい、
Docに帰り着いている状態(charge)であれば、
「掃除が完了しました」とSlackに鳴いてもらっています。
また、Slackに「@hubonyan:ルンバはどんな感じ?」のように投稿すると
現在のRoombaの状態を教えてもらえます。
### hubonyan に Roomba の状態をうかがう @hubonyan:ルンバはどんな感じ? ### robot.respond /(ルンバはどんな感じ?|お手|status)/, (msg) -> method = 'getStatus' BLID = 'xxxxxxxxxx' ROBOTPWD = 'xxxxxxxxxx' IROBOT_API = 'xxxxxxxxxx' data = 'blid=' + BLID + '&robotpwd=' + ROBOTPWD + '&method=' + method msg.http(IROBOT_API) .header('Content-Type', 'application/x-www-form-urlencoded') .post(data) (err, res, body) -> json = JSON.parse body json_robot_status = JSON.parse json.robot_status switch json_robot_status.phase when "charge" msg.send "Docにて充電中ニャー" when "run" msg.send "清掃中ニャー" when "stop" msg.send "一時停止中ニャー" when "hmUsrDock" msg.send "Docへ帰宅中ニャー" when "stuck" msg.send "問題発生ニャー!" msg.send "エラーコード:" + json_robot_status.error else msg.send "やばいまじで何か起きた!Helpme!" return return
Roombaにエラーが発生(stuck)しているとエラーコードが返ってくるので、
なぜRoombaがとまってしまったか詳細な理由を知ることもできます。
ルンバ900シリーズ エラーメッセージ
これで安心して仕事ができますね。
テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!
Follow @twitterRecommends
こちらもおすすめ
-
slackの操作系Tips10選 -前編-
2015.12.1
-
slackの操作系Tips10選 -後編-
2015.12.8
-
Slack、Brobotなどで快適GAレポーティング!
2015.12.20
-
AWSサービスをTerraformでコード化する:AWS Chatbot編
2024.3.11
Special Topics
注目記事はこちら
データ分析入門
これから始めるBigQuery基礎知識
2024.02.28
AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16