Bluetoothボタンシャッターを使ってスマートプラグを操作してみました

こんにちは。GMOアドマーケティングのH.Tと申します。
Bluetoothボタンシャッターを使ってSwitchBotのスマートプラグを操作してみたのでご紹介いたします。

きっかけ

自宅にSwitchBotのスマートプラグがあり照明のオンオフを制御しています。
GoogleHomeと連携して声で「照明つけて」などと言って制御しています。
声で操作するのは状況によっては便利なのですがいちいち声を出したくない時もあり、かと言ってスマートプラグをアプリで操作するのも大げさなのでBluetoothボタンで操作する方法を試してみました。

Bluetoothボタンシャッターとは

100円ショップで売っている(売っていた?)スマホにBluetooth接続してカメラのシャッターボタンを押せたりするボタンです。
100円ショップ数店舗に問い合わせたのですが今は在庫がないとのことでAmazonで似たようなのを500円ぐらいで購入しました。結論、問題なく動作しました。残念ながら100円ショップではもう売ってないのかも知れません。
LTE通信もできるAWSのIoTボタンというのもあるみたいですが今回は見送りました。

実現できたこと

Bluetoothボタンを使ってスマートプラグを操作
Bluetoothボタン -> Raspberry Pi -> IFTTT -> スマートプラグのオン/オフ

手順

Raspberry PiでBluetooth環境の準備をします。

ペアリング
Raspberry Piにログインしてbluetoothctlを立ち上げます。

Bluetoothボタンをスキャンします。

Bluetoothボタンの電源をonにすると検知されます。
※自分の買ったボタンのDevice名はCW Shutterでした。

ペアリングします。

次回から自動接続されるように設定します。

次にBluetoothボタンシャッターの操作を受け付けるbluebuttonというミドルウェアをインストールします。

rubyのインストール

bluebuttonのインストール

bluebuttonの設定

bluebutton起動
起動後にボタンをポチポチ押すとconfigで設定した処理が走ります。
※Bluetoothボタンシャッターの仕様としてはiOSボタンとAndroidボタンがあるのですがどちらを押してもkeyupとkeydownには変わりませんでした。

次にIFTTTのAppletを作成します。

IFTTTにログインして右上のCreateをクリックします。

「If This add」をクリックしてトリガーを設定します。

webhookのサービスを検索してクリックします。

「Receive a web request」をクリックします。

event nameを設定します。後にこれがwebhookのURLに組み込まれる形になります。

次に「Then That」をクリックして動作を設定します。

SwitchBotのサービスを検索してクリックします。

筆者はSwitchBot側で予め作っておいたシーンを選択しました。

自分で作成したシーンを選択できます。

完成したらFinishをクリックして終了します。

次にwebhookのURLを確認します。まずExploreをクリックします。

webhookを検索して選択します。

webhookを画面が表示されたら右上の「Documentation」をクリックします。

こちらでwebhookのURLを確認することができます。これをbulebuttonが押されたときの実行コマンドとして設定します。

最後に ~/.config/bluebuttonに上で確認したwebhookのURLをトリガーしたいボタンの動作に設定します。

ここまでで全ての連携が完了しました。
Bluetoothボタンシャッターをカチカチやるとスマートプラグが動作するはずです!

やってみた感想

結論、動くんですが反応が遅いです。。
どこで時間がかかっているかは調査してないですが反応が遅くボタンが押されて10秒後に電気が消えることもありました。
実用性は微妙でしたが楽しみながら実験できたのでよしとします笑

以上、Bluetoothボタンシャッターを使ったスマートプラグ操作のご紹介でした。