
我が家ではアレクサから照明をOn/Offしています。
でも、イラッとする時があります。それは”主電源問題”。
夕方になったりうたた寝明けとかに「アレクサ、照明つけて」って言っても動いてくれない。なぜなら、壁のスイッチが切られているから!
みんなが壁スイッチを押さずに照明を消せばいいんですが、寝るときなどアレクサに話しかけるより壁スイッチをポチっと押したほうが手っ取り早い。
ということで、壁スイッチを”押させない”方法として、壁スイッチの近くにボタンを置き、壁スイッチを押す代わりにこれを押すようにしました。(下にあるほうです。上はSwitchbotで、今回の話とは関係ないやつです)

私はアマゾンのエンタープライズボタンを選びましたが、IoTボタンはいくつか出ています。それぞれ主観で紹介しますね。
IoTボタンを選ぶ
Flic
非常に面白そうな製品で好奇心をとっても刺激されますが、単なる照明ボタンにするにはちょっと値段が高いのと、日本に販売代理店がなさそうというので、避けました。別の使い方を考えてみようと思います。
MESH
こちらも同様に、かなりお値段がお高いので、敬遠です。
Qmote S
お値段はお手頃なのですが、こいつが動くにはスマホが近くにあってQmoteSがBluetoothでスマホにつながってないとだめで、”家の照明ボタン”として使うにはちょっと厳しいです。
実はすでに1個持っていて、私はこれを家の鍵として使っています。スマホとセットで動くこいつは、鍵として使うのが一番いい使い方かも。
ちなみにAmazonではめっぽう評価が低い。。多分IFTTTが(直接は)使えなくなったからかな?WebhooksというサービスをかませばIFTTTを使えますし、私自身はそれほど不自由なく使えてます。
Amazon IoT エンタープライズボタン(ダッシュボタン)
結局こいつにしました。こいつ単体でWifiにつながって機能するし、なんせ安い!
アマゾンページ
昔は(?今も?)ダッシュボタンと呼ばれていました。このボタンは「アマゾンでこのボタン1プッシュで特定の商品を再購入するもの」と思っていました。
今は、IoTボタンとしていろいろなことができるようです。
でも、こいつを使うにはAWSというちょっと変態チックなサービスを使う必要があります。そこのハードルが越えられそうな人は、こいつがベストかと思います。
注意!! ブツがやってきたら、箱は捨てないでください!AWSへ登録する際「DSN番号」が登録に必要なためです。私はそそくさとゴミ箱に捨ててしまってゴミあさりするハメにあいました。。。

全体像
ダッシュボタン(こっちのほうが言いやすい♪) を押して照明を消すまでの流れは、以下の図のとおりです。
ダッシュボタン
↓
AWS IoT 1-Click
↓
AWS Lambda
↓
Webhooks
↓
IFTTT
↓
Nature Remo
↓
照明リモコンのOn/Off信号が送られる
↓
照明オフ
後半の「Webhooks→IFTTT→Nature Remo→照明を消す」というところは参考ページがたくさんあるのですが、AWS→IFTTTへの信号の送り方がむずかしかった。。。
なので、そこを重点的に書きます。具体的には、
- AWSにアカウント作成
- AWSにダッシュボタンを登録する
- AWSにlambdaというプログラムを作る。こいつがWebhooksに信号を送ります。
- AWSに「ボタンを押したらlambdaのプログラムを動かす」というアプレット(?)を作る。
Webhooksから先はすでに設定済みという前提で話してます。Webhooks→IFTTT→Nature Remo→アクション(照明を消すとか)は、以下のページなどを参考にしてみてください。
IFTTT→Nature Remo: https://qiita.com/fkooo/items/f2ae1af3f51976275654
Webhooks→IFTTT: https://ifttt-japan.club/apply-webhooks
AWSのアカウント作成
こいつをIoTボタンとして使うには、AWSというサービスを利用しないといけません。が、登録してから使えるようになるまでちょっと時間がかかるようです(最大24時間)。なので、ダッシュボタンをアマゾンでポチったら、そいつが家にやってくるまでにAWSへ登録しておきましょう。
https://aws.amazon.com/jp/register-flow/
ちなみに、クレジットカードを登録させられたりと、ちょっとハードルは高いです。「1年間無料」だそうですが、1年後どうなるんだろう。。。
登録時にちょっとトラブったこと
登録は、すべて半角英数字
住所とかも、全部半角英数字で入れます。
「次へ」ボタンが押せない
住所を登録して次に行こうとしても、ボタンが押せない状態になりました。一度ページを戻って入力しなおして・・・を3回繰り返したらなぜか押せるように。。
クレジットカードの登録が終わらない
最初JCBのカードを登録したら、「入力に不備があります」とでて、その先に進めなくなりました。VISAカードを登録したらそれはすんなり登録でき、デフォルトをそのカードにし、再度デフォルトカードをJCBに戻したら、なぜかJCBも使えるようになってました。
ダッシュボタンをAWSに登録
スマホを使って登録します。AWS IoT 1-Clickというアプリをスマホにインストールしてください。登録までの流れはアプリがわかりやすくリードしてくれます。DSN番号の登録でもバーコードリーダーが使えるのでとっても楽ちんでした。
一点、箱にあるバーコードを読み取った後、どうやったら次に進めるのかで迷いました。次に進むには、「スキャンの停止」を押してください。

AWSでプログラム登録 (lambda)
ここだけパソコンでの作業となります。
まずはリージョンを「東京」に!!
これがわからずにはまりました。。。
画面の右上にリージョン(地域)が表示されています。私は最初「オハイオ」になってました。これを、東京に変えてください。

lambdaプログラムの作成
AWSマネジメントコンソールというトップ画面に行ったら、「lambda」というサービスを検索してください。検索窓を使うと便利です。

次に、「関数の作成」をクリック。

一から作成、関数名は任意(日本語はNG。半角英数字のみ)、ランタイムはPython3.8を選択して、右下の「関数の作成」をクリック。

すると中段に以下のようなデフォルトのプログラムが出てきますので、そこを全部消して、以下のプログラムをまるっと貼りつけます。

↓↓貼りつけるプログラム↓↓
import json
import urllib.request
def lambda_handler(event, context):
url = 'Webhooksのアドレスを置き換える'
req = urllib.request.Request(url)
urllib.request.urlopen(req)
↓コード貼り替え後。こんな感じになります。

「url」の’’で囲まれた部分 は、Webhooksのアドレスに貼り替えてください。
[このページ]の真ん中くらいにWebhooksのアドレスについてまとめてくれています。続いて、画面上段にある「アクション」→「新しいバージョンを発行」をクリック

説明書きには、例えば以下のような感じで入力。

これでlambdaプログラムの登録終了!今度はまたスマホで作業です。
ボタンとlambdaとの紐づけ
パソコンでも作業ができますが、スマホでやったほうが楽だったので、そちらでの作業方法を書きます。
先ほど使った「AWS 1-Click」を起動してください。
以下のような画面が出てくるので、「プロジェクト」をタップ。

右下の「+」ボタンをタップ→「開始」をタップ


プロジェクト名と説明を適当に入力。

デバイステンプレートの定義をタップ

デバイステンプレート名を適当に入れて、デバイスタイプをボタンに、アクションには「Lambda」を選択、右下の「選択」ボタンで先ほど作ったLambda関数を選択。

いっこ前の画面に戻るので、プレイスメントの属性欄の「属性の追加」をタップし、名前を適当に入力、デフォルト値はなんでもOKですがとりあえず0と入力。

プレイスメントの作成から、

名前を適当に入れてデバイスで登録しているダッシュボタンを選択。

これで完成!!!
ダッシュボタンを押して、照明が消えるか試してみてください。