せっかくStream Deckを買ったのだから、できるだけ有意義につかいこなしたい。 ひいてはNature Remoに登録した家電をStream Deckのボタンで操作したい!
なんて風に考えて、インターネットを検索しまくった人は私だけじゃないはず。
やり方を解説している記事はポツポツと見つかるんだけども・・・
ウェブフック?エンドポイント?GETリクエスト? 何言ってるか全然わからないんですが…?
当たり前のように解説されているけど、普通の人にとっては意味不明の言葉が羅列してあり、何回読んでも意味わからん! となってしまっている人もけっこういることでしょう。
ここでは、そんな初心者さんにもわかりやすいよう、やり方を解説していくことにします。
難しい用語は使わず、図解でできるだけ簡単に解説していきますが、それでも多少のハードルの高さがあるというのも事実。 順を追って丁寧に進めていってもらえればと思います。
Windows PCで作業してます
Stream Deckとは
Stream Deckとは、Elgato社が開発した液晶画面付きの物理ボタンが搭載された(左手)デバイスです。このボタンにショートカットなどの機能を割り当てることで、パソコン操作を効率化できる便利ツールです。
基本的には配信者やクリエイター向けのデバイスのようですが、普通のパソコン作業やゲームなどでもかなり有用。
たとえばこんなことができます。
- 特定のアプリやウェブサイトを開く
- フォルダーやアプリを開く
- ショートカットキーを登録して送信する
- 音量調整やマイクミュートを行う
- 複雑なマクロをワンボタンで実行する
Nature Remoとは
Nature Remoとは、スマホアプリから家電を操作したり、室温や温度などを計測したりできるスマートリモコンです。 照明、テレビ、エアコンなどリモコンが赤外線に対応していれば、ひとつのアプリでまとめてコントロールできる便利デバイス。 いわゆる IoT ってやつですな。
本来はアプリ経由で操作するものなんですが、Nature RemoはAPI を提供してくれているので、これを使ってStream Deckのボタンで操作できるようにします。
必要な準備
事前に必要な準備はざっくり以下の3つ。
1番のみ完了している前提で、2番以降を解説していきます。
1.Nature Remoアカウント
Nature Remoアプリでデバイス(照明など)が登録されていること。
2.APIトークンの取得
Nature RemoのAPIを使用するために必要なトークンを取得します。
3.Stream Deck:Web Requestsプラグイン
Stream DeckアプリにWeb Requestsプラグインがインストールされていること。
Nature RemoのAPIトークンを取得
まずは以下のNature Remo公式ページで、APIトークンを取得しましょう。
APIトークンを取得するには、Nature Remoアカウントを作成し、ログインしておく必要があります。(もしない場合はリンク先のページでGoogleアカウントを使ってサクッとアカウント作成しましょう)
ログインできたら以下のような画面。「Generate access token」のボタンをクリックするだけで、APIトークンが生成されます。
APIアクセストークンがこんな感じで表示されるので、メモっておきましょう。というか、このページをタブで開きっぱなしにしておくのがいいですね。
Nature Remoの機器IDを調べる
続いて上で取得したAPIトークンをつかって、パソコン上であなたのNature Remoの中に登録されている機器ID(照明なら照明のID、エアコンならエアコンのIDのこと)を調べていきましょう。
調べるために、Windowsのコマンドプロンプトという機能を使います。
Windowsのタスクバー(私のは左にありますが、普通は画面下にあります)のWindowsロゴ(虫眼鏡アイコンでもOK)をクリックして「 cmd 」と入力するとコマンドプロンプトが表示されるので、これをクリック。
真っ黒な画面が開くので、以下のコードを入力してエンターキーを押しましょう。
ここにAPIトークン のテキストを、上で取得したAPIトークンに置換えてくださいね。(APIトークンの手前に半角スペースが入っている必要があります)
curl -X GET "https://api.nature.global/1/appliances" -H "Authorization: Bearer ここにAPIトークン"
すると、こんな感じでずらずらとわけのわからんコードが出力されます。
この中から、あなたがNature Remoに登録している照明などのデバイスのIDを見つけ出します。
ただ、このままだとわかりにくいので、「JSONきれい」というサービスを使って読みやすいように整形しましょう。
こんな感じできれいになって読みやすくなりました。
ここで重要になるのが、ハイライトで囲んである部分。
idの項目はたくさんあってわかりにくいのですが、1番上のハイライトで囲んである部分が「寝室の照明( type:LIGHT)」の「機器ID」です。 見つけたらメモっておきましょう。
あと、「 type:LIGHT 」というのも重要です。まずはこの「 LIGHT 」タイプのデバイスの設定方法を解説しています。
Stream DeckにWeb Requestsプラグインをインストール
次に、Stream DeckアプリにWeb Requestsプラグインをインストールしましょう。
このプラグインを利用して、Nature Remoにリクエストを送信(POST)します。
Stream Deckマーケットプレイスを開いて、「 Web Requests 」で検索するとプラグインが見つかります。
Stream Deckでボタンを設定する
Type:LIGHTのボタン設定
Web Requestsプラグインをインストールしたら、右のメニューに「 Web Request 」という項目が追加されているので、この中の「 HTTP Request 」を使います。
各項目に以下のように入力しましょう。
照明をオンにしたいとき。
タイトル | 任意で(例:寝室の照明) |
---|---|
URL | https://api.nature.global/1/appliances/ここに機器ID/light?button=on |
Method | POST |
Content Type | 空欄のまま |
Headers | Authorization: Bearer ここにAPIトークン |
Body | 空欄のまま |
赤字の部分は、それぞれ上で取得した「機器ID」と「APIトークン」に置き換えてくださいね
照明をオフにしたいときは、URLの末尾を「 off 」に置き換えるだけです。
タイトル | 任意で(例:寝室の照明) |
---|---|
URL | https://api.nature.global/1/appliances/ここに機器ID/light?button=off |
Method | POST |
Content Type | 空欄のまま |
Headers | Authorization: Bearer ここにAPIトークン |
Body | 空欄のまま |
実際に入力したしたものがこれ。
これでボタンを押したら、照明のオンオフがちゃんとできるはず!(最初は反応するまでに時間がかかりました。)
Stream Deckのボタンを押したときに「緑の丸いチェックマークアイコン」が出たら設定に成功、「黄色の三角のビックリマークアイコン」が出たら失敗しているので、もう一度設定を見直してみてください。
もし緑のチェックマークアイコンが出ているのに照明の操作ができない場合は、Nature Remo側に問題がある可能性があります。
1つのボタンでオンオフしたいときは「マルチアクションのスイッチ」を使いましょう!
Type:IRの場合
Nature Remoに登録されている機器は、Type: LIGHT(照明)」「 AC(エアコン)」など識別されているのに対して、登録されていない機器は、「 IR(ただの赤外線信号)」と区別されています。
これが、API経由で操作するのをややこしくしているポイント。
たとえばLIGHTの場合だと、「APIトークン」で「照明」を「オン/オフ」してね。と命令しているのに対して、
IRの場合は、「APIトークン」で「赤外線信号」を「送信」してね。といった形です。
なので、機器タイプが「 IR 」だった場合は、少しやり方が変わってきます。
IRの機器を登録する際には、一番上の機器IDではなくて各操作に割り振られた「操作ID」(便宜的にここではそう呼びます)を使います。
具体的には、以下のハイライトのように、それぞれの操作に割り振られたIDを使います。
照明をオン/オフしたいとき。
タイトル | 任意で(例:リビング東の照明) |
---|---|
URL | https://api.nature.global/1/signals/ここにオン/オフの操作ID/send |
Method | POST |
Content Type | 空欄のまま |
Headers | Authorization: Bearer ここにAPIトークン |
Body | 空欄のまま |
風量を「弱」にしたいとき。
タイトル | 任意で(例:リビング東の照明) |
---|---|
URL | https://api.nature.global/1/signals/ここに風量(弱)の操作ID/send |
Method | POST |
Content Type | 空欄のまま |
Headers | Authorization: Bearer ここにAPIトークン |
Body | 空欄のまま |
といった感じで、URLの部分だけが置き換わる形ですな。
単純に赤外線信号を送信しているだけになります。
さいごに
Nature Remoに登録した機器を、Stream Deckのボタンで操作する方法の解説でした。
私自身、やる前は「楽勝っしょw」って感じでなめてかかっていたんですけど、意外にけっこう苦戦させられました。
しかしその分、Stream Deckのボタンで家電を遠隔操作できたときの喜びもひとしお!
プログラムに詳しくないド素人にとっては多少ハードルの高い作業ですが、デスクにいながらにして、手元で家電をいろいろ操作できるのはとても便利。
うまくできた際には、ぜひ家族や友達に「どや?すげーやろ?」と自慢してやりましょう。
さらに踏み込んだ設定をしたい場合は、以下のNature Developer Pageとか、Swaggerを参考にして頑張ってみてくださいね。(見てたら頭痛くなりそうだけど)
─── あわせて見て欲しい記事 ───
コメント