Nature Remo API で部屋の温度・湿度を取得する

2018-01-31Nature RemoTech

スマートリモコン Nature Remo の公式 API が公開されましたので試してみます。

Nature Remo とは、赤外線リモコンの遠隔操作と温湿度センサーなどを搭載した製品です。
Google Home や Amazon Echo とも連携できます。

現在では、本体がコンパクトになり価格も下がった Nature Remo mini がオススメです。

アクセストークン発行

公式サイトにメールアドレスを入力すると、ログイン用の URL が届きます。
https://home.nature.global/

Nature Remoにログイン

許可される権限は次の通り。センサー情報も取れそうですね。

Nature Remoアクセス許可により取得できる情報

他の連携サービスもここから管理できます。左下のボタンからトークンを作成。

Nature Remoアクセストークンの管理

トークンは一度しか表示されません。安全な場所に記録しておきます。

発行したアクセストークン

状態取得 API を叩く

Swagger ドキュメントが公開されています。
ひとまず、デバイスの状態を取得する API を実行してみます。

https://swagger.nature.global/#/default/get_1_devices

/1/devices の curl コマンド例を確認

Nature Remo API の使い方

先ほど取得したアクセストークンをリクエストヘッダとして末尾に追加します。
形式: -H "Authorization: Bearer <アクセストークン>"

$ curl -X GET "https://api.nature.global/1/devices" -H "Authorization: Bearer gyYP(略)"

結果が JSON で返ってくるため、jq コマンドで整形。
コマンドがない場合は jq play が便利です。(JSON をコピペ後 Filter 欄に . を入力)

$ curl -X GET "https://api.nature.global/1/devices" -H "Authorization: Bearer gyYP(略)" | jq .

無事に取得できました。
.newest_events.te.val が摂氏の気温です。21度。hu.val は湿度ですね。

[
  {
    "newest_events": {
      "te": {
        "created_at": "2018-01-30T15:57:55Z",
        "val": 21
      },
      "hu": {
        "created_at": "2018-01-30T20:50:34Z",
        "val": 30
      }
    },
    "name": "Remo",
    "id": "xxxxxxxxxxxxxx",
    "created_at": "2018-01-11T12:14:09Z",
    "updated_at": "2018-01-30T23:13:07Z",
    "firmware_version": "Remo/1.0.62-xxxxxxxx",
    "temperature_offset": 0,
    "humidity_offset": 0,
    "users": [
      {
        "superuser": true,
        "nickname": "yuu26",
        "id": "xxxxxxxxxxxxxx"
      }
    ]
  }
]

気温だけを取得するため、さらに絞り込みます。

$ curl -X GET "https://api.nature.global/1/devices" -H "Authorization: Bearer gyYP(略)" | jq .[].newest_events.te.val
21

湿度を取得する場合は以下のようになります。

$ curl -X GET "https://api.nature.global/1/devices" -H "Authorization: Bearer gyYP(略)" | jq .[].newest_events.hu.val
30

(2020/06/04追記)
いつの間にか、照度センサー・人感センサーの値も取れるようになっていました。

$ curl -X GET "https://api.nature.global/1/devices" -H "Authorization: Bearer gyYP(略)" | jq .[].newest_events.li.val
246
$ curl -X GET "https://api.nature.global/1/devices" -H "Authorization: Bearer gyYP(略)" | jq .[].newest_events.mo.val
1

まとめ

  • Nature Remo Cloud API を呼び出しました
  • 部屋の温度やデバイス状態を取得しました

もちろん、エアコンや家電の操作も可能ですので近いうちに試したいと思います。

→試しました。