Androidスマホのアラームが鳴ったら部屋の電気を自動でつけたい【Nature Remo】

今回はGoogle Apps Script(GAS)を使い、Androidスマートフォンのアラームと部屋の電気を連動させる方法をご紹介します。

コードをコピーして簡単にできるので、Nature製品をお持ちの方はぜひ試してみてください。

必要なもの

  • googleアカウント
  • 部屋のライトを登録したNature Remo
  • Androidスマートフォン

 

Nature Remo APIへの登録

https://api.nature.global/login にアクセスし、Natureアカウントに登録しているメールアドレスでログインします。

Access tokens一覧より「Generate access token」を選択し、アクセストークンを作成します。

アクセストークンは一度しか表示されないため、忘れずにコピーしましょう。(クリップボードの履歴はWindowsの場合[Win] + [V]キーで確認できます)

Google Apps ScriptでAPIを作成

Google Apps Script(GAS)ではGET、POSTメソッドのAPIを作成する機能が提供されています。

Googleドライブの任意の場所に新しいGASファイルを作成しましょう。特にディレクトリにこだわりがなければ、ここから作成できます。

・ライトのシグナルIDを取得する

操作するデバイス(信号)のIDを特定します。以下のコードを入力してください。

function findSignalId() {
apiAccessKey = 'コピーしたアクセスキー'
baseURL = 'https://api.nature.global/1'
headers = {
'Authorization' : 'Bearer ' + apiAccessKey,
'accept' : 'application/json',
'Content-Type' : 'application/x-www-form-urlencoded',
}
options = {
'method' : 'GET',
'headers' : headers,
}

response = JSON.parse(UrlFetchApp.fetch(baseURL + '/appliances', options).getContentText())

response.map((device) => {
console.log('デバイス名 : ' + device['nickname'])
device['signals'].map((signal) => {
console.log(signal['name'] + " : " + signal['id'])
})
})
}

関数を実行すると、実行ログに登録された機器名と各操作のシグナルIDが出力されるので、その中からライト点灯のIDを探してコピーします。

・APIをデプロイする

先程とは別のスクリプトを作成します。左のメニューより「スクリプト」を選択してください。

 

以下のコードを入力します。今回はPOSTメソッドのAPIを作りたいのでdoPostメソッドを使います。

function doPost() {
apiAccessKey = 'コピーしたアクセスキー'
signalId = 'ライト点灯のシグナルID'
baseURL = 'https://api.nature.global/1'
headers = {
'Authorization' : 'Bearer ' + apiAccessKey,
'accept' : 'application/json',
'Content-Type' : 'application/x-www-form-urlencoded'
}
options = {
'method' : 'POST',
'headers' : headers,
}

response = JSON.parse(UrlFetchApp.fetch(baseURL + '/signals/' + signalId + '/send', options))

//今回は使用しませんが、APIの疎通を確認するアプリを使うとレスポンスとしてメッセージを取得できます。
message = 'ライトを点灯しました'
return ContentService.createTextOutput(message).setMimeType(ContentService.MimeType.TEXT)
}

 

APIをデプロイします。画面上部の「デプロイ」ボタンから「新しいデプロイ」をクリックします。

種類の選択から「ウェブアプリ」、アクセスできるユーザーの欄で必ず「全員」を選択してください。

デプロイを実行するとウェブアプリのURLが表示され、すでにAPIでライトを操作できる状態になっています。早速呼び出してみましょう。

Andriodスマートフォンに「Sleep」アプリをインストールしてセットアップ

アラームが鳴るのと同時にAPIを呼び出せるアプリ「Sleep」を使います。

[設定] > [各種サービス] > [オートメーション] の順に選択、「Webhooks」を有効化し先ほど表示されたウェブアプリのURLを入力します。

このアプリからAPIの呼び出しが行われるタイミングは複数あるのですが、今回呼び出してほしいタイミングはアラームが鳴ったときだけなので、上にある「イベント」から「ALARM_ALERT_START」以外のチェックを外しておきます。

これで設定は完了です。アラームを鳴らして動作を確認しましょう。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

1人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です