6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MDCAdvent Calendar 2019

Day 18

スマートリモコンNature Remo miniとGASで家電の使用時間を計測してみた

Last updated at Posted at 2019-12-17

##最優秀賞の商品でIFTTTやってみた(やろうとした)
とあるハッカソンイベントで最優秀賞を受賞し、商品で「Nature Remo mini」を頂いたので、
これを使って何か便利なことができないかと思い立った、素人の奮闘記です。

##1. 話題のスマートリモコン「Nature Remo mini」
ざっくり言うと「リモコン代替品(の廉価版)」です。上位機種として「Nature Remo」があります。
普段はリモコンで赤外線を飛ばしていると思いますが、それをスマホ起点・Wi-fi経由で飛ばすことができ、
赤外線を受け取る家電(エアコン・テレビ・照明・オーディオ・空気清浄機など)が、古い機種でもスマホから操作できるようになるデバイスです。
屋外からも家電の操作が可能になり、”自宅付近のエリア外に出たら全ての家電をオフにする”とか、細かいルールも設定できるようになっています。

##2. 付加価値
すでに便利なものに、どんな価値を乗っけられるかを考え、
思い当たったのが、家電の稼働時間を計測できていない課題です。
どの家電をどれだけの時間使っているかを見える化して、日ごとの使用時間をグラフにできたらいいなと。

全体構成図はこんな感じ。いろいろ試行錯誤しましたが、IFTTTなどの連携型Webサービスを使わずに実現させることに。
nature remo (1).jpg

##3. スマホからRemoを経由して赤外線を飛ばす仕組みをGASで実現
Remoに家電を登録するとボタンごとに「Signal ID」が割り当てられるようなので、
Nature社で公開されているAPI、アクセストークン、フリーソフトのPostmanを利用してSignal IDを特定しました。

アクセストークンとSignal IDを利用すれば、Remoに登録した家電をGASで操作できるようになります。
(アクセストークンとSignal IDはマスク化しています)

参考ページ:IFTTTを利用したNature Remoの操作に限界を感じたのでAPIを使う

on_test.gs

function doGet() {
  
  /*エアコンの電源をonにする*/
  var options = {
    'method': 'post',
    'headers': {
       'Authorization': 'Bearer XXXXXXアクセストークンXXXXXX'
    }
  };
  var response = UrlFetchApp.fetch('https://api.nature.global/1/signals/XXXXXXSignal IDXXXXXX/send', options);

  /*スプレッドシートに電源on時間を記録*/
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var last_row = spreadsheet.getLastRow();
  var i = last_row + 1;
  var start_time = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'yyyy-MM-dd HH:mm:ss');
  SpreadsheetApp.getActiveSheet().getRange(i,1).setValue(start_time);
}

連携型Webサービスが必要かなと思っていたのですが、
”スクリプトの実行日時をスプレッドシートに記録する”スクリプトをGASで書いてしまえば解決しました。
スクリプトはContainer Bound Scriptで作成し、プロトタイプとして、家電をONしてその日時を記録するところまで実装しました。

GASを実行した日時を記録し、できあがるスプレッドシートはこんな感じです。
スプレッドシートの日付表記は少々クセがあるようでしたが、秒数まで表記できるようにしておきました。
スクリーンショット 2019-12-17 19.55.03.png

##4. アンテナを張っていなかったツケ
エアコンをOFFにするSignal IDも特定できているし、end_timeを記録して差分からグラフを作成するか、と息巻いていたある日。
Nature Remoの"計測用デバイス"が2019/12/17から発売されることを知りました。使用電力まで計測できるとな...。
もっと言うと、同年3/13にNature Remo Eを発売予定であることが発表されていました。
電力消費モニタリングデバイス「Nature Remo E」シリーズの予約受付開始、発売は12月17日から

さらに、親知らずの抜歯を甘く見ており、(アンテナでなく)顎がヒドく腫れたことで戦闘不能となりタイムアップ。。

再認したことは、
様々なサービスにアンテナを張りながら便利さを追求し、素早く実現して世に出すことの重要性です。
便利の先に感動があると思っている派なので、"感動までをスコープにする"ことも忘れないように、気持ちを新たにさせられました。
それと、こちらにはギリ対処できていましたが、社会人の抜歯には最低でも5連休が必要ということも共有しておきます。

以上でーす

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?