#やること
NatureRemoとgooglehomeだけだといろいろと制限がでてくると思います。
マクロも組めないのでどうしても1to1動作になってしまいます。
※追記、2019年現在はすべてがオフィシャルでマクロ作成して動作でできます!
なので、他のサービスを絡めて便利にしちゃいます。
##下準備
以下、integromat使用の手順になるのですが、
各自のNatureRemoで取得しておくべきものがあります。(IDとかアクセストークン)
こちらで紹介しています。
##動作する仕組み
google home → IFTTT → integromat → NatureRemo
いままではIFTTTが、
NatureRemoとGoogle homeの間のやりとりをしていたかとは思うのですが、
今回はそこにIntegromatをはさみます。
いままで1to1だった動作が複数動作が可能になります。
#integromat
integromatを使います。
有料版もあったりしますが
無料版で十分です(使用制限あり
お好きなアカウントでログインしてください。
sign upでアカウント作れますが、gmailアカウントでよいとおもいます。
##基本画面 ![2.jpg](https://qiita-image-store.s3.amazonaws.com/0/242965/4b8e867a-8bc2-c1bd-7439-81859ce90762.jpeg)
ホーム画面になります。ここにいろんな情報が並びます。
もう既に作ってあるレシピが並んでますが、
はじめて作成する場合はまだ何も表示されていないはずです。
グラフはその月の使用量です。
無料プランは、月1000 moduleが使えるっぽいです。
##レシピ作成
右上の【Create new scenario】で新規作成できます。
なんかいろいろでてきますがskipで大丈夫です。
#Webhooks
今回はIFTTTからのGetリクエストでの動作を想定してますので
レシピ作動のトリガーはWebhooksにします。
Custum web hookで作成します。
addで新規作成、適当な名前でだいじょうぶです
名前の下にアドレス(https://~)が作成されますので、
一度、ブラウザを新しく開いてアクセスしておきます。
画面が以下のようになれば準備完了です。(Successfuly determined.)
このアドレス(https:~)に対してGETリクエストがあった場合、
このモジュールにぶら下がっているmoduleが動作します。
#HTTP
NatureRemoのAPIを叩いて動作させるために、
特定のアドレスにPOSTするので、HTTPをぶら下げます。
Webhooks横にカーソルを合わせると+がでるので新規作成できます。
HTTP、Make a requestで作成します。
#HTTP 設定
左下の【Show advanced settings】にチェックを入れると項目増えます。
【URL】
NatureRemoの実行したいコマンドのアドレスをいれます。
取得していなければcurl getコマンドを利用して取得します。(→こちら)
実際に記入するURLは以下です。
https://api.nature.global/1/signals/[動作させたいコマンドのid]/send
##取得したデータの一部
{
"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のアクセストークン] →アクセストークン発行
以上を設定すれば完了です。
あとは作動させたいコマンド分、ツリー型にぶら下げていくだけです。
右クリックでModuleをCloneできたりするので複製は簡単だと思います。
##waitなど
ただHTTPを並べるだけだと都合が悪いときは、
Tools Moduleを追加し、Sleepを選びます。
Wait動作ですね。
秒数指定できます。
NatureRemoは赤外線の連射が得意ではないようなので、
各コマンドの間には4秒ほどのsleepを入れています。
またスケジューリングもできます。
WebhooksではなくHTTPに直接付けます。
#動作させる
RunOnceを押すと、Webhookが待機になるので
アドレスにアクセスすれば動作すると思います。(一度だけの動作です
このまま稼動させるためには下にフロッピーマークがあるので保存。
そして隣にON、OFFのトグルがあるのでONにします。
これで継続的に稼動状態になります(webhook待機
実際にWebhookのアドレスにアクセスすれば動作するかどうか確認しましょう。
#実際に使ってるレシピ
帰ってきたよ! → 電気を付けてテレビを付ける。
おやすみ! → テレビを消して、電気を常夜灯にする。
いってくるよ! → テレビを消して、電気を消す。
スケジュール作動(毎朝6時半)→ テレビを付けて、特定のCHにする。
全てGoogleHomeを作動させて、IFTTTに投げています。(WebhookをGETリクエストするため
#まとめ
integromatを使うとかなりのことができると思います。
テレビ音量50%!とかで[Volume up]を連射することで音量をかなりあげたり、
同時起動ではうまく動作しない機器などをSleepでズラして起動させるなどなど
やれることはまだまだあると思うので楽しいです。
PCを立ち上げたときのようにTaskerでHTTPgetしてもいいですしね。
またなんか面白いことを思いつけばな~、って思います。