NatureRemoをもう少し便利に作動させる



#やること
NatureRemoとgooglehomeだけだといろいろと制限がでてくると思います。
マクロも組めないのでどうしても1to1動作になってしまいます。

※追記、2019年現在はすべてがオフィシャルでマクロ作成して動作でできます！


なので、他のサービスを絡めて便利にしちゃいます。


##下準備
以下、integromat使用の手順になるのですが、
各自のNatureRemoで取得しておくべきものがあります。(IDとかアクセストークン)

[こちら](https://qiita.com/onm/items/8462b5b792132f42336d)で紹介しています。


##動作する仕組み

google home → IFTTT → integromat → NatureRemo

いままではIFTTTが、
NatureRemoとGoogle homeの間のやりとりをしていたかとは思うのですが、
今回はそこにIntegromatをはさみます。

いままで1to1だった動作が複数動作が可能になります。

#integromat

integromatを使います。
有料版もあったりしますが
無料版で十分です（使用制限あり






##ログイン
![1.jpg](https://qiita-image-store.s3.amazonaws.com/0/242965/d55d0be4-6e7f-cc5c-e2a5-86b58a4ea692.jpeg)

https://www.integromat.com/en/login

お好きなアカウントでログインしてください。
sign upでアカウント作れますが、gmailアカウントでよいとおもいます。

<br>
##基本画面
![2.jpg](https://qiita-image-store.s3.amazonaws.com/0/242965/4b8e867a-8bc2-c1bd-7439-81859ce90762.jpeg)

ホーム画面になります。ここにいろんな情報が並びます。
もう既に作ってあるレシピが並んでますが、
はじめて作成する場合はまだ何も表示されていないはずです。
グラフはその月の使用量です。
無料プランは、月1000 moduleが使えるっぽいです。

##レシピ作成
<br>
右上の【Create new scenario】で新規作成できます。
<br><br>
![3.jpg](https://qiita-image-store.s3.amazonaws.com/0/242965/10752d01-6dcb-6c5d-5c79-68f4c030d3cc.jpeg)
<br>
なんかいろいろでてきますがskipで大丈夫です。


#Webhooks
今回はIFTTTからのGetリクエストでの動作を想定してますので
レシピ作動のトリガーはWebhooksにします。


![13.jpg](https://qiita-image-store.s3.amazonaws.com/0/242965/4d7b933d-b29f-f4d2-53a7-6a0cdf38dcd2.jpeg)
<br><br>
Custum web hookで作成します。
addで新規作成、適当な名前でだいじょうぶです

![6.jpg](https://qiita-image-store.s3.amazonaws.com/0/242965/b010632c-cd18-bf8b-e57d-484a55765845.jpeg)

名前の下にアドレス(https://～)が作成されますので、
一度、ブラウザを新しく開いてアクセスしておきます。
<br><br>
画面が以下のようになれば準備完了です。(Successfuly determined.)

![7.jpg](https://qiita-image-store.s3.amazonaws.com/0/242965/fa0f53c0-852c-d892-6e02-a90ce389cb4f.jpeg)
<br>
このアドレス（https:~）に対してGETリクエストがあった場合、
このモジュールにぶら下がっているmoduleが動作します。

#HTTP
NatureRemoのAPIを叩いて動作させるために、
特定のアドレスにPOSTするので、HTTPをぶら下げます。


Webhooks横にカーソルを合わせると＋がでるので新規作成できます。
HTTP、Make a requestで作成します。
![8.jpg](https://qiita-image-store.s3.amazonaws.com/0/242965/f7422b6d-8ed6-86e0-6461-c6e47e2dff51.jpeg)

![9.jpg](https://qiita-image-store.s3.amazonaws.com/0/242965/f6280844-608d-e821-29ba-36f9df21c6a3.jpeg)


#HTTP 設定

左下の【Show advanced settings】にチェックを入れると項目増えます。

![10.jpg](https://qiita-image-store.s3.amazonaws.com/0/242965/fa4da5b1-48ce-9589-ad07-6ad6453a9c60.jpeg)

【URL】
NatureRemoの実行したいコマンドのアドレスをいれます。
取得していなければcurl getコマンドを利用して取得します。（→[こちら](https://qiita.com/onm/items/8462b5b792132f42336d)）
実際に記入するURLは以下です。

```
https://api.nature.global/1/signals/[動作させたいコマンドのid]/send
```

##取得したデータの一部
```json
{
    "id": "[device id]",
    "device": {
      "name": "Remo",
      "id": "[device id]",
      "created_at": "2018-02-20T12:02:31Z",
      "updated_at": "2018-03-18T10:22:27Z",
      "firmware_version": "Remo/1.0.62-gabbf5bd",
      "temperature_offset": 0,
      "humidity_offset": 0
    },
    "model": null,
    "nickname": "light",
    "image": "ico_light",
    "type": "IR",
    "settings": null,
    "aircon": null,
    "signals": [
      {
        "id": "[on/offするためのid]",
        "name": "on/off",
        "image": "ico_off"
      },
      {
        "id": "[常夜灯にするためのid]",
        "name": "small",
        "image": "ico_io"
      },
      {
        "id": "[フル点灯するためのid]",
        "name": "full",
        "image": "ico_on"
      }
    ]
  },
```
"nickname": ""
"image": ""
あたりで探せば目的のIDが見つかると思います。
NatureRemoに登録した赤外線は全て取得できると思います。

【Method】
POST

【BodyType】
application/x-www-form-urlencoded

【Headers】
add a Headerで追加。
name:　Authorization
Value:　Bearer [NatureRemoのアクセストークン] →[アクセストークン発行](https://home.nature.global/)


以上を設定すれば完了です。
<br>
<br>
あとは作動させたいコマンド分、ツリー型にぶら下げていくだけです。

![185.jpg](https://qiita-image-store.s3.amazonaws.com/0/242965/4efd72d8-9c09-04a1-9ebd-1bedbda4aa39.jpeg)


右クリックでModuleをCloneできたりするので複製は簡単だと思います。

##waitなど
ただHTTPを並べるだけだと都合が悪いときは、
Tools Moduleを追加し、Sleepを選びます。
Wait動作ですね。

秒数指定できます。
NatureRemoは赤外線の連射が得意ではないようなので、
各コマンドの間には4秒ほどのsleepを入れています。
![11.jpg](https://qiita-image-store.s3.amazonaws.com/0/242965/76601d23-44fb-1da4-d513-22a58e67a9df.jpeg)
<br><br>
またスケジューリングもできます。
WebhooksではなくHTTPに直接付けます。

![12.jpg](https://qiita-image-store.s3.amazonaws.com/0/242965/5369d710-d81b-31cb-fd90-cb9e4cfdda91.jpeg)


<br><br>
#動作させる
RunOnceを押すと、Webhookが待機になるので
アドレスにアクセスすれば動作すると思います。（一度だけの動作です

このまま稼動させるためには下にフロッピーマークがあるので保存。
そして隣にON、OFFのトグルがあるのでONにします。
これで継続的に稼動状態になります（webhook待機

実際にWebhookのアドレスにアクセスすれば動作するかどうか確認しましょう。


#実際に使ってるレシピ

帰ってきたよ！　→　電気を付けてテレビを付ける。
おやすみ！　→　テレビを消して、電気を常夜灯にする。
いってくるよ！　→　テレビを消して、電気を消す。
スケジュール作動（毎朝6時半）→　テレビを付けて、特定のCHにする。

全てGoogleHomeを作動させて、IFTTTに投げています。（WebhookをGETリクエストするため

#まとめ
integromatを使うとかなりのことができると思います。

テレビ音量50％！とかで[Volume up]を連射することで音量をかなりあげたり、
同時起動ではうまく動作しない機器などをSleepでズラして起動させるなどなど

やれることはまだまだあると思うので楽しいです。

PCを立ち上げたときのようにTaskerでHTTPgetしてもいいですしね。


またなんか面白いことを思いつけばな～、って思います。