Amazon AWS スマートホーム

AWS IoT エンタープライズボタンとIFTTTで帰宅時に家電を全部つけてもらう

投稿日:

スポンサードリンク

はじめに

自宅に着いたらスマホ(Android)のWiFi接続を検知して自動で家電や音楽をつける」や「ラズパイ+人感センサで自動で照明をつける」で帰宅時に自動で照明やエアコンとBGMが付くようにしましたが、それぞれ反応が遅いという問題と、誤検知があるという問題のため使いづらいという結果に終わっていました。そこで、今回はシンプルに入り口に設置したスイッチを押して照明などをつけるという方法を試したいと思います。

といっても意外にもWiFi接続可能なスイッチ自体なかなか見当りませんでした。しかし、色々探した結果Amazonの「AWS IoT エンタープライズボタン」にたどり着きました。


https://www.amazon.co.jp/gp/product/B075FPHHGG/

かつてAmazonはダッシュボタンというボタンを押すと特定の商品を注文するというボタンを売っていましたが、これはその挙動を自由にカスタマイズできるボタンです。今回はこれを使ってボタンを押したら照明などがすべてつくようにしました。流れはボタンを押したらIFTTTのWebHooksで照明などをつけるというものになります。

IFTTTのWebHooksの作成

IFTTTでWebHooksを作成します。作成方法にいては「IFTTT+SwitchBot Hub Plusで自宅をスマートホーム化 第1弾(照明の自動ON/OFF)」などをご参照ください。

また、今回は1つの機器だけでなく、照明とエアコン、BGMと複数機器になるのである程度工夫が必要です。「[Google Home]IFTTTで複数処理などの複雑な処理を実行する(IFTTT+Slack+Hubot)」でSlackHubotを活用したときのものをそのまま使いたいと思います。流れはWebHooksでSlackの複数処理をさせるコメントをつぶやかせて、その複数処理内でIFTTTのWebHooksを複数叩くというようになります。

AWS IoT エンタープライズボタンの登録

AWS IoT エンタープライズボタンを使うにはAWSの登録および購入したIoTデバイスの登録が必要です。公式のページやわかりやすい記事などを参考に進めてください。

自分はWindows10で進めたのでPowerShellを使って疎通テストを行いました。

Lambda関数の作成

上記の参考記事などではSMSを送るということをやっていますが、今回はIFTTTで作成したWebHooksのURLにアクセスするということをしたいと思います。

デバイステンプレートを作成して適当な名前を付けます。アクションにはLambda関数を選択します。はじめの段階ではLambda関数には何もないので新規に作成します。

画像はLambda関数作成後のものなのですでに「home_allon」という関数が書かれていますが、初めは無いので新規作成します。1から作成を選択して自分はPython3.7がわかるのでそれを選びました。関数名は自宅の照明等をすべてつけるので「home_allon」と適当につけましたが各自適当につけてください。

そして、関数の中を埋めます。デフォルトではHello Worldの返事をするだけの関数が提示されていますが、そこにurllibを使ってIFTTTのWebHooksのURLを叩く記述を追加します。

ソースコードは下記のとおりです。import urllib.requestの個所とurllib.requestの2行だけ追加しました。

import json
import urllib.request

def lambda_handler(event, context):
    # TODO implement
    urllib.request.urlopen("https://maker.ifttt.com/trigger/allon/with/key/{{ キー }}")
    
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

ちなみにリージョンは上のバーから東京に変更できます。

テスト

AWSのLambda関数のページからテストができます。そこでちゃんと動いていれば問題ありません。実際にボタンも押してみてきちんと動くかも確認してください。自分の場合は無事に照明やエアコンやBGMが付きました。

ただ、押してから実際つくまで若干(といっても数秒)時間がかかりました。今回色々と経由してやっと家電がONになるようになっています。この辺の時間短縮は難しいのでこれが最速とあきらめるしかないのかなと思います。

懸念点

バッテリー持ち

FAQのコーナーにバッテリー持ちに関して記述があります。

Q.バッテリーはどれほどの長さ使用できますか?

第 2 世代の AWS IoT ボタンのバッテリーは約 2,000 クリック分持続します。デバイスのバッテリー残量がなくなった場合、バッテリーの再充電や交換はできません。
AWS IoT ボタンのよくある質問

電池の交換はできないようで、2,000クリックほどしたら買いなおすしかなさそうです。

課金要素

Lambda関数とAWS Iot 1-Clickに対して課金する必要があります。これは購入してから気づきました…。しかし、Lambda関数は無料枠があることと、AWS Iot 1-Clickは比較的安価なのが救いでしょうか…

まとめ

AWS IoT エンタープライズボタンを使ってボタンを押すことで帰宅時に家電を全部ONにすることができました。懸念点としてはAWSの課金要素があるということでしょうか…とりあえずしばらくは使ってみようと思います。

スポンサードリンク

-Amazon, AWS, スマートホーム

Copyright© めめんと , 2019 All Rights Reserved Powered by AFFINGER5.