Nature Remo で快適生活

[テックタッチアドベントカレンダー](https://qiita.com/advent-calendar/2019/techtouch)9日目担当する@smith-30です。
8日目は@ikazoy_y による [プロダクションReadyなRedashを5分で立ち上げるためのCfn template](https://qiita.com/ikazo_y/items/5312144346dd028ab9ba) でした。Redashはバックエンド担当の人間としては色々触って使い心地を確かめていこうと思っています。下地を用意していただいてるようですぐ取り組めそうです、ありがたいですね。

## このページについて

前職を去るときに [Nature Remo mini](https://www.amazon.co.jp/gp/product/B07CWNLHJ8/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B07CWNLHJ8&linkCode=as2&tag=parkour12019-22&linkId=530182645dcbd2f53a91918323fbb832) をもらったので Nature Remo mini の紹介、何ができたのかを書いてみました。
弊社の技術領域とは全く関係ないため、箸休めと思って楽しんでもらえたらうれしいです！

## 内容

### Nature Remo とは

エアコンやテレビのリモコンの情報を保持して、スマホアプリから家電を操作できるようにするハブ。
設定が非常に簡単で、節電や快適な自宅環境を構築できます。僕の家に操作できる家電はエアコンしかなかったのですがエアコン操作のためだけでも一家に一台あれば役立つかなぁと思いました。

![IMG_20191207_163705.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47896/fffc3240-827e-d2c4-78f1-280210239bb1.jpeg)

こんな感じで壁にかけています

![IMG_20191207_174446.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47896/71e66d83-607e-3017-414f-54e8bc78774b.jpeg)


### 僕の利用手順

- 専用アプリをダウンロードしてNature Remoをwifi接続する
    - IOS/Android 両方あり
- エアコンと接続してみる

![Screenshot_20191207-191641_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47896/164e207c-a908-24cb-b857-ee4cb7a85757.png)

Nature Remo に向けてエアコンのボタンをおしてみたらすぐに認識してくれました

![Screenshot_20191207-191635_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47896/1c5ace7d-3cba-27c1-c1ce-378664029c2d.png)

真ん中の電源ボタンをタップすると本当にエアコンの電源が落ちたときには感動しました。

接続先はたくさんありますが、僕の家にリモコン使う家電ないのが残念、、
![Screenshot_20191207-191757_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47896/73f320d2-08fa-23c1-c0c7-687ee7cd6546.png)


- 自分用にルールを作る

家電を操作するためのルールがいくつか使えるようになっています

![Screenshot_20191207-191923_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47896/11777fd9-b83e-4968-8e6e-602121ab25e4.png)

上記を使って、とりあえず自分は以下のようなルールを作ってみました。

- 起床タイマー
    - 8時にエアコン起動
- 睡眠タイマー
    - 27時にエアコンオフ
- 自宅200m以内に入ったらエアコン起動
- 自宅100m圏外になったらエアコンオフ

これで、外出時にエアコンつけっぱなしによる電気代を無駄にしたという徒労感、家に帰ってきたときに寒くない、睡眠中に常時エアコン起動による乾燥を解決することができました。
Nature Remo自体はそこそこな値ですが、これらの心理的負担がなくなることと、節電効果を考えれば十分payできるのではないかと思いました。

(家のエアコンのタイマーが壊れていて困っていたのですが、Remo さんがオン/オフやってくれるようになったので助かりました)

### 他にできること

これでは、ただのレビュー記事になってしまうので少しはエンジニアリングよりのことを。。

Nature Remo では2種類のAPIが公開されています

- Cloud
    - access token を利用して api.nature.global 経由で操作を行うAPI
- Local
    - 自宅のNature RemoのIPを直接叩いて赤外線を送るAPI

Local API は手順通りにやってもLocalのIPが返ってこなかったのでCloud APIを試してみました

### Cloud API

token は[このページ](https://home.nature.global/)から発行できます
取り扱いには気をつけましょう

疎通確認

```
$ curl -X GET "https://api.nature.global/1/users/me" -H "accept: application/json" -H "Authorization:  Bearer xxxxx" | jq .
{
  "id": "xxxxx",
  "nickname": "xxxxx"
}
```

**/devices**

Remo のメタ情報がとれます。Remo miniでは気温だけ取れるので te フィールドが返っていました。
mini でなければ湿度や照度、人感センサの値がとれるようです。家をモニタリングしたい場合はRemo を買ってしまうのがよさそうですね。

```json
[
  {
    "name": "Remo mini",
    "id": "xxxxx",
    "created_at": "2019-12-07T10:14:59Z",
    "updated_at": "2019-12-07T10:18:43Z",
    "mac_address": "xxxxx",
    "serial_number": "xxxxx",
    "firmware_version": "Remo-mini/xxxxx",
    "temperature_offset": 0,
    "humidity_offset": 0,
    "users": [
      {
        "id": "xxxxx",
        "nickname": "xxxxx",
        "superuser": true
      }
    ],
    "newest_events": {
      "te": {
        "val": 21,
        "created_at": "2019-12-07T13:02:20Z"
      }
    }
  }
]
```

**/appliances**

登録している家電のデータと、送信できる操作(signal) が取得できます
レスポンス最下部の signals が入っている場合、api の `POST /signal` を叩くことで APIからRemoに操作実行を依頼することができるようです。僕のエアコンは古いタイプだからかsignals が入っておらず遊ぶことができませんでした。。

```json
[
  {
    "id": "xxxxx",
    "device": {
      // 省略
    },
    "model": {
      "id": "xxxxx",
      "manufacturer": "panasonic",
      "remote_name": "xxxxx",
      "series": "Panasonic AC",
      "name": "Panasonic AC 001",
      "image": "xxxxx"
    },
    "type": "AC",
    "nickname": "エアコン",
    "image": "xxxxx",
    "settings": {
      "temp": "20",
      "mode": "warm",
      "vol": "auto",
      "dir": "",
      "button": "",
      "updated_at": "2019-12-07T10:18:43Z"
    },
    "aircon": {
      "range": {
        "modes": {
          "cool": {
            "temp": [
              "16",
              "17",
              "18",
              "19",
              "20",
              "21",
              "22",
              "23",
              "24",
              "25",
              "26",
              "27",
              "28",
              "29",
              "30"
            ],
            "dir": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "auto"
            ],
            "vol": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "auto"
            ]
          },
          "dry": {
            "temp": [
              "16",
              "17",
              "18",
              "19",
              "20",
              "21",
              "22",
              "23",
              "24",
              "25",
              "26",
              "27",
              "28",
              "29",
              "30"
            ],
            "dir": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "auto"
            ],
            "vol": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "auto"
            ]
          },
          "warm": {
            "temp": [
              "16",
              "17",
              "18",
              "19",
              "20",
              "21",
              "22",
              "23",
              "24",
              "25",
              "26",
              "27",
              "28",
              "29",
              "30"
            ],
            "dir": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "auto"
            ],
            "vol": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "auto"
            ]
          }
        },
        "fixedButtons": [
          "power-off"
        ]
      },
      "tempUnit": "c"
    },
    "signals": []
  }
]

```



## おわりに

QOLを上げるのに役立つガジェットであるとは言えると思います。自宅のモニタリングしたい場合はRemo のほうがいいですね。最低限自宅の家電をリモート操作したい場合はminiで十分かと！

10日目は 弊社のワンレンSWE @mxxxxkxxxx が担当します！

## 参考

- [cloud api](http://swagger.nature.global/)