Nature Remo連続実行を『Integromat』で実現する方法

CHASUKEの記事をシェアする..

どうも、CHASUKEです。

前回の記事で、Alexaスキル『Node-RED』で家電操作する方法をアップしたところ、

「Google HomeでNature Remoの連続実行したい。」というリクエストをいただきました。(※他にリクエストがありましたら、問合せからメールください)

Alexaスキル『Node-RED』でNatureRemoノードを使う方法
どうも、CHASUKEです。 今回もAlexaスマートスキル「Node-RED」ネタです。 前々回は、デバイスを追加して、Al...

IFTTTのようなラズパイ不要のサーバーレス、ノープログラミングで実現する方法を考えてみました。IFTTTでは、基本的にトリガーに対してアクションが1つだけしか設定できませんし、「IFTTT Platform」を利用しても同一アクションが指定できず、詰みます。

[参考] Google Home から IFTTT でマルチアクションを実現する方法

最終的に、IFTTTと比べて自由度が高い『Integromat』を経由することでNature Remoから赤外線を連続して飛ばすことに成功しました。

それでは、いってみましょう!!

SPONSORED LINKS

Integromatとは?

IFTTTやZapierと同じく、WEBサービス同士をつなぐことができる自動化サービスです。海外のサービスなので、あまり周りで利用している人はいません..

フリープランが用意されており、無料で1000モジュール/月が利用できます。1シナリオではなく、シナリオ内で利用されるモジュール数が加算されます。1000もあれば十分です。この辺りは、後でわかると思います。

▼こちらの動画(約1分)でイメージが伝わると思います。

サーバーレスかつプログラミングレスで自由なAPIを作ったり、1つのトリガーに対して、複数のアクションをつなぐことができます。

今回は、試しに、Google HomeからNature Remoを使って、テレビのチャンネルを「1〜12」と3秒ごとに切り替えて総なめにするシナリオを作ってみました。

▼作った仕組みはこんな感じ

Nature Remoでは、信号を連続で飛ばすようなマクロ機能は用意されていません。また、1つのHTTPリクエストで複数の信号を飛ばすような便利なAPIも用意されていません。

連続実行を実現したい人は、参考にしてみてください。

Integromatでシナリオを作成する

Integromatでは、かなり自由度が高くて面白いことがたくさんできます。

今回はHTTPリクエストで呼出してから、Remoに一定間隔で連続してAPIアクセスする方法を説明していきます^^

Integromatアカウントを作成

アカウント登録してFreeプランで利用します。

サイトにアクセスして「Sign up」を選択。

名前やEmailを入力するとすぐに使えるようになります。

新規シナリオの作成

▼これがダッシュボード画面

さて、右上「Create a new scenario」からシナリオ作成します。

▼ここは何も入力せずに、右上「Continue」を選択

Webhooksモジュールを作成

▼これが、シナリオを作成する画面です。

中央の「」にIFTTTでいうチャンネル(※integromatではモジュールと呼ぶ)を設定します。隣の時計マークはシナリオのスケジュールを定義するものですが、今回はWebhook起動するため、「immediately」でOKです。

▼モジュール一覧から「Webhooks」を選択します。シナリオの入口ですね。

それにしても、たくさんのモジュールが選択できますな。

▼Webhookモジュールの「Custom webhook」を選択します。

▼すると、こんな画面になります。

矢印の「Add」から、このシナリオのみで利用されるWebhookを作成します。

▼適当な名前をつけて「Save」します。

▼保存すると、URLが青く表示されています。

このWebhookを利用するためには、表示されているURLにアクセスしてリンク付けが必要になります。

▼適当なWebブラウザに入力してアクセスすればOKです。

Acceptedと表示されます。

▼画面に戻ると、「Successfuly determined」に変わってます。

これでOKです。シナリオを呼び出すときのURLになるのでコピーしておきましょう!!

HTTPモジュールを設定する

Nature Remoに命令を出すためのHTTPモジュールを作成して、APIを設定していきます。

▼今はこんな感じになっています。

モジュール横の「+」から新しいモジュールを追加できます。

▼HTTPモジュールを選択する。

▼「Make a request」を選びます。

▼中身のURLに、赤外線信号ID(赤枠)を含んだAPIを設定します。

URLhttps://api.nature.global/1/signals/[赤外線信号ID]/send
MethodPOST
Body typeApplication/x-www-form-urlencoded

赤外線信号IDは、Remoアプリ内で登録した信号に割り振られているIDです。

IDの取得方法は過去記事のアプライアンスの取得を参考にしてください。

Node-REDで『Nature Remo』ノードを使う方法
どうも、CHASUKEです。 Node-REDでNature Remoを使ってみました!! 前回は、Alexaからの呼...

▼例えば、取得したJSONファイルのidが赤外線信号IDになります。

"model": null,
"nickname": "ロボット掃除機",
"image": "ico_robot",
"type": "IR",
"settings": null,
"aircon": null,
"signals": [
    {
        "id": "aaaaaaaa-bbbb-cccccccc-aaaabbbbddddeeee",
        "name": "電源オン",
        "image": "ico_io"
    },
    {
        "id": "aaaaaaaa-bbbb-cccccccc-aaaabbbbddddeeee",
        "name": "ホームに戻る",
        "image": "ico_return"
    }
]

「URL」,「Method」,「Body type」を設定したら、「Advanced setting」にチェックしてHTTPヘッダーを設定していきます。

▼設定するヘッダー情報は1つ。

Authorizationに「Bearer [アクセストークン]」を指定して追加します。

これで、HTTPモジュールの設定は完了です。

▼こんな感じのシナリオが作成されました。

下部のアイコンから保存して、SCHEDULINGを「ON」とします。

この状態で、先ほどコピーしておいたWebhookをWebブラウザにて実行してみましょう。

Nature Remoから赤外線が飛べば成功です!!

モジュールの複製

赤外線送信を連続して実行するために、HTTPモジュールをたくさん作成する必要がありました。ただ中身は、ほとんど同じで赤外線信号IDが変わるくらいなので、モジュールの複製が超役立ちました。

▼HTTPモジュールを右クリックして「Clone」を選ぶ

複製してモジュールを繋いだら、中身のURLにある赤外線信号IDを目的のものに変更しましょう。

連続モジュールの実行間隔を指定する

今回のようにTVチャンネルを総なめにするような、シナリオだとモジュール間で実行間隔を取らないとテレビがつく前に次のチャンネル信号が飛んでしまいます。

▼モジュール間のペンチマークからモジュールを追加して、「Tools」を選択。

この「Tools」にある「Sleep」を作成します。

▼1秒から値を入力できます。

これを繰り返して完成したシナリオがこちら。

全部で14モジュールなので、1回シナリオ実行すると、フリープラン1000個分の14個が消費されます!!

IFTTTでGoogle Homeと紐づける

最後の仕上げとして、Google Homeから呼び出せるようにします。

Integromatには「Google Assistant」モジュールは用意されていないので、IFTTTでGoogle Homeと紐づけます。

▼IFTTTのWebhooksチャンネルにIntegromat呼出用のURLを設定します。

これで、利用できるようになりました!!!!

「OK、Google!! 全部のチャンネルをチェックして」

実行イメージをYoutubeにアップしたかったのですが、テレビ映すの微妙だったのでやめました..

IFTTTの使い方を詳しく知りたい人は、こちらを参考に。

【スマートホーム初心者向け】自動化サービス「IFTTT」の使い方
どうも、CHASUKEです。 スマートホームを実現する上で、AIスピーカーやIoTガジェットなどと相性が良いWebサービスIFTTT...

最後に

ここまで辿り着いた方、お付き合いありがとうございました。

目標にしていた、ラズパイ不要のサーバーレス、ノープログラミングでNature Remoの連続実行(マルチアクション)が無事に実現できました。

今回利用した自動化サービス『Integromat』は、Help英語でしたが翻訳しながら触っているとすぐに慣れました。めっちゃ使えるサービスだと感じます。

スマートホームと相性が良いので、これからも頻繁に使うと思います^^

それでは。

コメント

  1. かず より:

    はじめまして。
    Google Home➕Remoで、連続実行することが出来たら、ものすごく便利だな。と感じていました。しかし、コンピューターのスキルが足りず、あきらめていたところです。
    記事読まさせていただきました。まさに、私が一番欲しかった記事です!
    ありがとうございます。時間が作れる時に、実行してみます。
    不慣れですので、作業につまずいたら、質問させていただきます。
    よろしくお願いします。

    • CHASUKE より:

      かずさん
      不慣れな方でも読めるように書かせていただきました。
      つまずいたら一緒にがんばりましょう!!

  2. Chabiichi より:

    とても参考になりました。
    Remoの活用の幅が広がりました。
    ありがとうございました!!

    • CHASUKE より:

      Chabiichiさん
      参考になり、幸いです。
      記事を読んでいただきありがとうございます。

      • Chabiichi より:

        CHASUKEさま

        Integromat経由でNatureRemoでエアコンを操作したいと考えております。
        (Global_APIのPOST:/1/appliances/{appliance}/aircon_settings を使用)

        IntegromatにIFTTTからWebhookで
        temperature/operation_mode/air_direction/air_volume/button
        の値を受け取り、HTTPリクエストでPOSTしようと考えております。
        そこで、Webhookで受け取ったjsonをHTTPリクエストに受け渡す方法が見つからず困っております。何かヒントがあればご教示いただけると助かります。
        何卒よろしくお願いします。