IFTTT対応コンセントのオフタイマーを作る(IFTTT+Alexa+GAS)

やりたいこと

スマホの過充電を防止するために、2時間でスマートコンセントをオフにしたい!
また、アレクサに喋りかけるだけで、タイマーをセットしたい!
(無料で実現したい!)

必要なもの

  • Googleアカウント(Google Apps Scriptを使います)
  • IFTTTアカウント
  • スマートコンセント(IFTTTでオン・オフできるもの)
  • アレクサ(今回は…)

下調べ

自分の買ったコンセントは、専用のアプリ上でタイマーをセット可能です。しかし、アレクサ(IFTTT)ではタイマーをセットすることが不可能でした。そこで、アレクサに話しかけるだけでオフタイマーをオンにできるようにしたいと思います。

少しネットで調べると、MESHというアプリを使えばできるらしいです
(参考:https://chasuke.com/mesh_ifttt/)。しかし、MESH(6000円〜)を購入する必要があったり、アプリがバックグラウンドで実行されるため、スマホ自体の電池持ちが悪くなる可能性があります。
そもそも、Linuxのコマンド的に考れば、sleep(2h)で済む話なので、アレクサの2倍の値段である6000円も払いたくないと思い、自作を決意しました。

しかし、少し考えればわかることですが、Sleepコマンドを2時間も使うのは愚かですし、IFTTTからLinuxマシンに(httpとかで)リクエストを送るには、Linuxをウェブ上に公開することが必要なので、NASとかセキュリティとかめんどくさい…

そこで、「Google Apps Script」を使うことで、解決しました!

やり方

10分で作った概要図

IFTTT上でコンセントオフのアプレットを作る

https://ifttt.com/createにて、Webhookがあったらコンセントをオフというアプレットを作ります。(Webhookってのは、要は特定のURLにアクセスがあったらオフっていう意味です)
WebhookのURLはhttps://ifttt.com/maker_webhooksの右上のDocumentationを押すと入手できます。{event}のところは、アプレットを作るときに指定した文字列(上の例ではhogehoge)になります。
(参考:http://oita.oika.me/2017/09/16/ifttt-push-to-phone/

Google Apps Script(GAS)を作成

※適宜、保存してください

1. Googleドライブを開いて、Google Apps Scriptを新規作成

図のように、GASスクリプトを作ります。(選択肢がない場合は「Google Apps Script 新規作成」とかでググってください())

2. 以下のコードをコピペ

コピペして保存してください。
IFTTTのURLを、↑で作ったものに変えてください。
時間(var dif)はご自由に変えてください。例では、60*60*2秒で2時間になっています。

(難しいコードでもないと思うので、なんとなく理解するといいかもしれません…)

3. index.htmlを作成

アクセスしたときに表示されるindex.htmlを作ります。何も追記しなくてもいいと思います。

4. プロジェクトのプロパティから変数を追加

このスクリプトは、変数として時間を保持します。そこで、プロパティサービスというものを用います。
スクリプトのプロパティ欄を開いて、「追加」みたいなところから追加してください
このコードでは変数名(プロパティ)は「time」、初期値は適当に「1E15」などとしておいてください。

5. トリガーを設定

Linuxでいうところのcronみたいなものを設定します。1分おきに関数「check」を実行し、時間が経過してたら、IFTTTを実行してコンセントをオフにします。

6. スクリプトを公開

IFTTTからアクセスできるように、スクリプトを公開します。
「全員(匿名含む)」にしておくのを忘れないように。
最後に出てくるURLをコピーして持っておきます。

7. IFTTTアプレットを設定

今回は、アレクサに語りかけるとタイマーをオンにしたいので、「IF アレクサ, THEN Webhook(GASスクリプトのURL)」というアプレットを設定します。

まとめ

ソニーに6000円課金せずとも、IFTTTで操作できるコンセントタイマーを作ることができました!
IFTTTで操作できる製品すべてに使える方法なので、コンセントタイマーのみならず色々使えると思います。
参考になったら幸いです。((そしてこの記事を広めていただければ幸いです))
ただし、1分おきにチェックするので、厳密に2時間という設定はできません…

この記事は参考になりましたか?(率直な投票お願いします!)(間違っている場合はコメントでも指摘いただけるとありがたいです!)
  • とても参考になった (2)
  • 少し参考になった (0)
  • 普通 (0)
  • 参考にならなかった (0)

返信を残す

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

CAPTCHA