引っ越して来たときから、今住んでいる貸家には玄関チャイムがついていなかった。ほとんど訪ねて来る人はいないのだけれど、たまに郵便局の人が来た。「郵便でーす!」と配達の人が声をかけてくれるのが申し訳なくて中国製のチャイムを取り付けたのだけど、一年ほどで鳴らなくなってしまった。改めてAmazonでチャイムを探すも中国製、日本製を問わず、後付のチャイムで定番の品がないようだった。 また口コミを読んでいるとどれを買ってもすぐに壊れそうな気がしてくる。なんだかどれも買えなくなってそれならば自分でチャイムの仕組みを作ろうと、AWS Iot ボタンをポチった。
玄関チャイムの構成
AWS IoT ボタンを有効にするには、AWS上でIoTボタン用のプロジェクトを作成し、色々と設定する必要がある。少し手間取ったけれど、ちょっとググるだけで詰まったりせずに設定できた。 プロジェクト内のテンプレートでボタンが押されたら呼び出すLambda関数を設定して、このテンプレートに設定する物理的なボタンをプレイスメントで紐付けてあげるような仕組みのようだ。 プロジェクトまわりの設定については、こちらのドキュメントの「ThumbsUp」と「ThumbsDown」の例がわかりやすい。
ここまでできれば後はLambda関数でIFTTTのWebhookを呼び出すだけだ。
import urllib.request
url = 'https://maker.ifttt.com/trigger/{event}/with/key/XXXXXXXX'
def lambda_handler(event, context):
req = urllib.request.Request(url)
with urllib.request.urlopen(req) as res:
body = res.read()
全体としては以下のような構成というか、呼び出し順になっている。
IFTTTでは、Webhookが呼び出されたときに、LINE通知をするように設定した。
設置してみた
そのままボタンを玄関に設置しても、訪問者がなんだかわからない可能性が高い気がしたので、テプラで玄関チャイムだとわかるような絵文字を選んでシールを貼り付けた。ボタンを押すとLEDが点滅してから、呼び出し成功の緑に変わるまで少し間があるがなんとか使えている。
何よりも押されたときにログが残ることと、家にいないときでも通知が来ることが便利だ。家の近くで仕事をしている私のような人には荷物を受け取りに家まで戻ることも出来てしまう。