メンチカツには醤油でしょ!!

AWS/Java/Node.js/Spreadsheets/Docker/Jenkins/コミュニティ・勉強会レポを主とした技術系ブログ

Nature RemoのAPIが公開されたので温度・湿度を取得

Nature Remoとは

IRKitをご存知の方はその進化版という説明が早いのですが、これらはスマート家電の一種で、家庭にあるリモコンなどの赤外線を記録することができ、そしてネットワークに繋げることができるというシロモノです。

Nature Remoの特長ですが、
・赤外線リモコンの信号を学習させることができる
・赤外線の指向性を気にしなくて良い (IRKitから進化した点)
Wi-Fiに繋がる (アプリやAPIなど外部から制御可能)
IFTTTが対応している (myThingsは未対応の模様)
APIが公開されている ←new!
などが挙げられます。

リモート操作できる

赤外線の設定を行うと、スマフォから操作できます。

f:id:ryoichi0102:20180214095255p:plain

ボタンの1つ1つを覚えさせることもできます。
エアコン各社は初期状態で豊富に対応しているので、記憶させようとするとリモコンの機種名のようなものがサジェストされ、セットアップはより簡単です。
また、画面に表示される情報も豊富です。

f:id:ryoichi0102:20180214095311p:plain

ウチが寒すぎるというツッコミはナシでm(_ _)m

温度・湿度が見れる

先程のキャプチャにも表示されていましたが、温度・湿度が外から見れるので、たとえば、室温が○○度以下になったらエアコンをオンにしたり、家に近づいたらエアコンを入れたりなどの操作が自動でできたりもします。

APIが公開されました

以前よりAPIに関する記事はQiitaなどには存在したのですが、このたび2018/01/30に正式にAPIが公開されました。

nature.global

ドキュメントはSwaggerで書かれており見やすいです!
ということで、さっそく叩いてみましょう(ここからが本題です)

最初のセットアップ

はじめてのRemo — Nature

公式サイトがとても丁寧なので、それに合わせてセットアップします。
"アカウントの登録" 項で使用したメールアドレスを下記のAPIでも使用します。

API使用準備

https://home.nature.global にアクセスします。

f:id:ryoichi0102:20180214125316p:plain

ログインするにはメールアドレスを入力します。

f:id:ryoichi0102:20180214125506p:plain

f:id:ryoichi0102:20180214130042p:plain

f:id:ryoichi0102:20180214142738p:plain

ログインするとこんな感じのシンプルなtoken一覧管理画面が出てきます (キャプチャはセットアップ済のもの) 。Generate access tokensで新たにアクセス用のトークンを発行することができます。

f:id:ryoichi0102:20180215000022p:plain

curlからデータを取得する

設定されたトークンを使用して以下のコマンドを実行します。

$ curl -X GET -H 'Authorization: Bearer ****** -H 'Content-Type: application/json' https://api.nature.global/1/appliances

f:id:ryoichi0102:20180228152506p:plain

Postmanから取得する

PostmanとはGUIAPIが叩けるツールです。特にWindows環境の場合などはGit BashCygwinを入れていないとLinux/UNIX系コマンド(今回はcURL)が実行できない不便を解消してくれます。

Postman | API Development Environment

f:id:ryoichi0102:20180215000918p:plain

コード

AWS LambdaからNature RemoのAPIを叩いて、Dynamoに格納するコードを書きました。ビルドして環境変数を設定すればそのまま動きます。

github.com

私はこれをCloudWatch Eventsで1分に1回定期実行して、DynamoDBにデータを溜めてます。

f:id:ryoichi0102:20180214081105p:plain

 

DynamoDBに溜めたデータの可視化についてはまた書きます!