Nature RemoでIoTデビュー

# 目的
一昨年、赤外線リモコンで操作する家電をスマホやスマートスピーカーから操作できるスマートリモコンであるNature Remo 3を入手しました。
テレビ、エアコン、照明のオートメーションやAlexaで遊んでいたところ、API経由でスマートリモコンのセンサーデータが取れるとのことだったので実際に取ってみました。

NatureRemo公式ページ

https://nature.global/jp/nature-remo

NatureRemoAPI概要

https://developer.nature.global/

# NatureRemoに搭載されているセンサーについて

[こちら](https://nature.global/jp/nature-remo#block-edc294f4f33d7fbd6f1c)から販売されている商品に搭載されているセンサーが確認できます。
私が持っているのはNature Remo 3なので、温度、湿度、照度、人感の値を取ることができます。
これらの値は一部ですが、NatureRemoのモバイルアプリからも見る事ができます。

# API Token取得
APIにアクセスするためにTokenを取得します。
[NatureRemoログインページ](https://home.nature.global/) へ移動し、Googleアカウントを利用してログインします。
General access token ボタンからトークンを発行し、Copy ボタンからクリップボードにコピー。
このトークンは再発行できないため紛失に注意し、任意の場所に大事に保管しましょう。
流出した場合、AWSのアクセスキー流出のように高額請求されることはありませんが、他人がセンサーにアクセスし、設定変更等ができるため取り扱いには細心の注意が必要です。

# APIからデータ取得
APIの一覧、仕様はSwagger UIで公開されています。

https://swagger.nature.global

## curlで取ってみる
```bash
# 環境変数にトークンを保存
export NATURE_REMO_TOKEN="c8DHOxxxxx-3_yyyyy.5zzzzz_HLm2e9"

# デバイスの状態を取得
curl -X GET "https://api.nature.global/1/devices" -H "accept: application/json" -k --header "Authorization: Bearer ${NATURE_REMO_TOKEN}"
```

<details><summary>取得データ</summary>

```json
[
  {
    "name": "寝室",
    "id": "8507f8de-044a-44c1-9ac3-4bdb515f09b0",
    "created_at": "2020-12-22T02:50:41Z",
    "updated_at": "2022-09-26T12:02:27Z",
    "mac_address": "ac:67:b2:ef:b1:64",
    "bt_mac_address": "ac:67:b2:ef:b1:66",
    "serial_number": "1W3201000xxxxx",
    "firmware_version": "Remo/1.6.6",
    "temperature_offset": 0,
    "humidity_offset": 0,
    "users": [
      {
        "id": "d2bf4f6d-774c-46f1-81fd-216cb73xxxxx",
        "nickname": "@libra189",
        "superuser": true
      }
    ],
    "newest_events": {
      "hu": {
        "val": 73,
        "created_at": "2022-09-29T01:46:02Z"
      },
      "il": {
        "val": 0,
        "created_at": "2022-09-29T01:45:42Z"
      },
      "mo": {
        "val": 1,
        "created_at": "2022-09-29T01:15:27Z"
      },
      "te": {
        "val": 24.8,
        "created_at": "2022-09-29T01:47:02Z"
      }
    }
  },
  {
    "name": "リビング",
    "id": "a81b6d96-2a9e-4565-9da6-fac74ed3dba4",
    "created_at": "2020-12-22T02:35:11Z",
    "updated_at": "2022-09-16T19:35:24Z",
    "mac_address": "f4:cf:a2:83:d3:6c",
    "bt_mac_address": "f4:cf:a2:83:d3:6e",
    "serial_number": "1W3201000xxxxx",
    "firmware_version": "Remo/1.9.0",
    "temperature_offset": 0,
    "humidity_offset": 0,
    "users": [
      {
        "id": "d2bf4f6d-774c-46f1-81fd-216cb73xxxxx",
        "nickname": "@libra189",
        "superuser": true
      }
    ],
    "newest_events": {
      "hu": {
        "val": 70,
        "created_at": "2022-09-29T01:52:05Z"
      },
      "il": {
        "val": 0,
        "created_at": "2022-09-29T01:31:06Z"
      },
      "mo": {
        "val": 1,
        "created_at": "2022-09-11T09:40:58Z"
      },
      "te": {
        "val": 25.8,
        "created_at": "2022-09-29T01:43:04Z"
      }
    }
  }
]

```
</details>

# まとめ
NatureRemoはスマートリモコンの側面が強いですが、APIが公開されているため環境センサーとしても利用できそうです。(観測精度は未検証ですが...)
IoTでハードルになっているハード導入部分がまるっとスキップできるので、スマートリモコン導入のついでにIoTデビューしてみてはいかがでしょうか。
APIを利用すれば任意の条件、タイミングで家電操作ができるので季節、ライフスタイルに合った柔軟な操作も可能なので夢が広がりますね！

# 参照

- [Nature Remoの公式APIの使い方 - Qiita](https://qiita.com/sohsatoh/items/b710ab3fa05e77ab2b0a)
- [Nature RemoのAPIでターミナルから家電を操作してみた - Developers.IO](https://dev.classmethod.jp/articles/nature-remo-api/)