##最優秀賞の商品でIFTTTやってみた(やろうとした)
とあるハッカソンイベントで最優秀賞を受賞し、商品で「Nature Remo mini」を頂いたので、
これを使って何か便利なことができないかと思い立った、素人の奮闘記です。
##1. 話題のスマートリモコン「Nature Remo mini」
ざっくり言うと「リモコン代替品(の廉価版)」です。上位機種として「Nature Remo」があります。
普段はリモコンで赤外線を飛ばしていると思いますが、それをスマホ起点・Wi-fi経由で飛ばすことができ、
赤外線を受け取る家電(エアコン・テレビ・照明・オーディオ・空気清浄機など)が、古い機種でもスマホから操作できるようになるデバイスです。
屋外からも家電の操作が可能になり、”自宅付近のエリア外に出たら全ての家電をオフにする”とか、細かいルールも設定できるようになっています。
##2. 付加価値
すでに便利なものに、どんな価値を乗っけられるかを考え、
思い当たったのが、家電の稼働時間を計測できていない課題です。
どの家電をどれだけの時間使っているかを見える化して、日ごとの使用時間をグラフにできたらいいなと。
全体構成図はこんな感じ。いろいろ試行錯誤しましたが、IFTTTなどの連携型Webサービスを使わずに実現させることに。
##3. スマホからRemoを経由して赤外線を飛ばす仕組みをGASで実現
Remoに家電を登録するとボタンごとに「Signal ID」が割り当てられるようなので、
Nature社で公開されているAPI、アクセストークン、フリーソフトのPostmanを利用してSignal IDを特定しました。
アクセストークンとSignal IDを利用すれば、Remoに登録した家電をGASで操作できるようになります。
(アクセストークンとSignal IDはマスク化しています)
参考ページ:IFTTTを利用したNature Remoの操作に限界を感じたのでAPIを使う
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を実行した日時を記録し、できあがるスプレッドシートはこんな感じです。
スプレッドシートの日付表記は少々クセがあるようでしたが、秒数まで表記できるようにしておきました。
##4. アンテナを張っていなかったツケ
エアコンをOFFにするSignal IDも特定できているし、end_timeを記録して差分からグラフを作成するか、と息巻いていたある日。
Nature Remoの"計測用デバイス"が2019/12/17から発売されることを知りました。使用電力まで計測できるとな...。
もっと言うと、同年3/13にNature Remo Eを発売予定であることが発表されていました。
電力消費モニタリングデバイス「Nature Remo E」シリーズの予約受付開始、発売は12月17日から
さらに、親知らずの抜歯を甘く見ており、(アンテナでなく)顎がヒドく腫れたことで戦闘不能となりタイムアップ。。
再認したことは、
様々なサービスにアンテナを張りながら便利さを追求し、素早く実現して世に出すことの重要性です。
便利の先に感動があると思っている派なので、"感動までをスコープにする"ことも忘れないように、気持ちを新たにさせられました。
それと、こちらにはギリ対処できていましたが、社会人の抜歯には最低でも5連休が必要ということも共有しておきます。
以上でーす