【Nature Remo】気温をスマホの通知バーに表示する例|Taskerで条件設定
Nature RemoはWi-Fi機能の付いた赤外線リモコンデバイス。そして、AndroidアプリのTaskerは、設定した条件によって、スマートフォンにさまざまな命令をできるアプリ。
今回は、TaskerとNature Remoを連携させて、指定した条件によってスマホの通知バーに現在の気温を表示する例となります。
Nature RemoとTaskerを利用し、部屋の気温を指定した時間に通知する例
Nature Remoアプリでも自動操作は行なえますが、Taskerを使用することで、より複雑な条件でのNature Remoの操作や、その他のスマホ設定変更も同時に自動で行えます。
Taskerで実行するタスクの流れ
例で作成するTaskerのタスクの流れは以下となり、その作成したタスクを18:50時時点で外出している場合に実行させます。
- Nature Remo の Cloud APIを使い、Nature Remo本体がもつ情報を取得
- 取得したデータをJavaScriptで処理をして、気温が28.0度以上または10.0度以下の場合に気温のデータを返す
- 気温のデータが返された場合に、通知バーに気温を表示
TaskerでNature Remo本体がもつ情報を取得する方法
TaskerからNature Remo本体がもつ情報を取得するためにCloud APIを利用するため「アクセストークン」が必要となります。
アクセストークンを発行する方法は以下のリンク先を参考にしてみてください。
気温をセットするユーザ定義変数を追加
例では、気温をセットするTaskerのユーザ定義変数を「%RemoTe」として、以下の手順で追加します。
- 「変数」タブを選択します。
- 「変数」タブ内の右下にある「+」ボタンをタップします。
- 変数名を入力するダイアログが表示されるので、変数名を「%RemoTe」としてユーザ定義変数を追加します。
取得したデータから気温を取り出すJavaScriptを作成
次に以下のJavaScriptファイルをスマホ内のストレージに用意します。
JavaScriptファイルでは、Cloud APIで取得したデータから気温を取り出し、気温が28.0度以上または10.0度以下の場合に、ユーザ定義変数の %RemoTe に取得した気温をセットします。それ以外の気温の場合には空文字をセットします。
また、Cloud APIのレスポンスコードが200以外の場合には「エラー」の文字列を%RemoTe にセットします。
const response = http_response_code;
let result = 'エラー';
if(response == '200'){
const data = JSON.parse(http_data);
const te = data[0]['newest_events']['te']['val'].toFixed(1);
if(te > 27.9 || te < 10.1 ){
result = te + '°';
}else{
result = '';
}
}
setGlobal ('RemoTe', result);
Taskerの変数をJavaScriptからアクセス
Taskerの変数は、Taskerで扱うJavaScriptからでもアクセスできます。上記例では以下のTaskerの変数を利用しています。
- %http_response_code
- %http_data
- %RemoTe
%http_response_code と%http_dataは、後述する「HTTPリクエスト」アクションが返す情報となり、%http_response_code はレスポンスコード、%http_dataはレスポンスデータが文字列で格納されています。
Taskerの変数については以下のリンク先を参考にしてみてください。
Taskerで扱うJavaScriptで利用できる関数
setGlobal()はTaskerで扱うJavaScriptで利用できる関数となり、Taskerのグローバル変数に値をセットできます。第1引数にはグローバル変数名、第2引数にはセットする値を指定します。
Taskerで扱うJavaScriptで利用できる関数は他にもあります。詳しくは文末の参考サイトを確認してみてください。
気温を表示する通知バーのタスクを作成
次に、気温を表示する通知バーを以下のようにタスク・アクションで設定します。
タスクを作成
- 「タスク」タブを選択します。
- 「タスク」タブ内の右下にある「+」ボタンをタップします。
- タスク名を入力するダイアログが表示されるので、タスク名を「Remo 気温」として新規タスクを作成します。
タスクのアクションを追加
新規タスクを作成すると「タスク編集」画面に移行するので、画面の右下にある「+」ボタンから、以下の順番でアクションを追加・設定します。
また、1つのアクションを設定し終えたら「戻る」ボタンで「タスク編集」画面に戻り、次のアクションを追加します。
- カテゴリー「ネット」>「HTTPリクエスト」アクションを追加して以下を設定します。
- HTTPリクエスト設定画面で、「方式」にGETを指定、「URL」に「https://api.nature.global/1/devices」を入力、「ヘッダー」には以下を入力します。また、XXXXXXXXの箇所には上記で発行したアクセストークンを指定します。
Accept:application/json
Authorization:Bearer XXXXXXXX - 次にカテゴリー「コード」>「JavaScript」アクションを追加して以下を設定します。
- JavaScript設定画面の「パス」へ上記JavaScriptファイルのパスを指定します。また、「パス」の右側にある虫眼鏡アイコンから、ストレージ内のファイルパスを検索し指定できます。
- 次にカテゴリー「アラート」>「通知を出す」アクションを追加して以下を設定します。
- 通知を出す設定画面の「タイトル」に「自宅の気温」、「文字」に「%RemoTe」を入力し、「優先度」を5 に設定します。
- 「通知を出す」設定画面の「カテゴリー」の右側にある虫眼鏡ボタン押して「ユーザー通知」を選択し、「If」に「%RemoTe」を入力し「値あり」を選択します。
以上がタスク・アクションの設定となります。
Nature Remo本体がもつ情報を取得できるCloud API
上記のタスクで利用したNature Remo本体がもつ情報を取得できるCloud APIについては、以下のリンク先を参考にしてみてください。
タスクの動作確認
作成したタスクが正常に動作するかを確認するには、「タスク編集」画面の左下にある「再生ボタン」をタップすることで確認できます。
その他のタスクのアクションについて
例のタスクは、Nature Remoを操作するだけですが、Bluetoothの接続・切断、画面の明るさ変更など、タスクのアクションは豊富にあり、上記アクションに追加できます。
タスクのアクション例については以下のリンク先を参考にしてみてください。
「自宅」「外出」の判断について
後述のプロファイルでは、「自宅」と「外出」によって値を変更するユーザー定義変数 %MYLOC を利用して帰宅を判断しています。
そのため、 %MYLOC の値を切り替えるプロファイルを以下のページ内の手順どおり作成します。
指定した実行条件のプロファイルを作成
最後に、上記のタスク「Remo 気温」を指定した時間に実行させるプロファイルを、以下の手順で作成します。今回の例では18:50時時点で外出している場合にタスクを実行させます。
18:50時を条件とするプロファイルを作成
まずは、18:50時を条件とするプロファイルを次のように作成します。
- 「プロファイル」タブを選択します。
- 「プロファイル」タブ内の右下にある「+」ボタンをタップします。
- コンテキストが表示されるので「時間」を選択します。
- 時刻編集画面となるので、「開始」と「ここへ」の値を「18:50」に設定し「戻る」ボタンを押します。
- タスクを選択する画面が表示されるので、作成したタスク「Remo 気温」を選択します。
プロファイルを修正し自宅以外の条件を追加
「自宅」と「外出」を判断するプロファイルを作成すると、帰宅時にユーザー定義変数 %MYLOCの値に0がセットされます。
その変数を利用して上記で時間を設定したプロファイルを、次のように修正します。
- 「プロファイル」タブに、上記の時間を設定したプロファイルがあるので選択します。
- コンテキストの時間「18:50」が表示されるので長押しします。
- メニューが表示されるので「追加」を選択します。
- コンテキストが表示されるので、「状態」>「変数」>「変数の値」を選択します。
- 変数の値の設定画面で、「条件」を「%MYLOC !=0」と設定します。
以上の設定により、TaskerとNature Remoを連携させて、指定した条件によってスマホの通知バーに気温を表示できます。