タグ:Beebotte | IFTTT | Raspberry Pi
前回、ラズパイを使って鍵を使わずに自宅マンションのオートロックの解錠に挑戦して、
スマートスピーカーからラズパイを通して自宅インターホンの解錠ボタンを操作できるようになりました。

Raspberry PiとMQTT使ってマンションのオートロックを解錠してやんよ!!!(前編)
とはいえ、スピーカー経由で音声操作するには自宅にいる必要があり、そもそもそれは専用アプリで事足りる操作やんけ!!
ってことで後半ではちゃんと外からでもスマホだけで操作できる様にしていきます。

一番手っ取り早いのが自作WEBページのフォームからPOSTリクエストする方法です。
下記ファイルを作成して、レンタルサーバーなどにアップすれば外からスマホでこのファイルのURLにアクセスすれば、そこから操作可能です。
<div class="container">
<button id="release" class="button">オートロック解除</button>
<div id="output"></div>
</div>
//ボタンが押された時のイベント
document.getElementById('release').addEventListener('click', function(){
releaseShot();
});
function releaseShot(){
var url = 'http://api.beebotte.com/v1/data/publish/ENTRANC/release?token=token_トークン情報';
var param = {
"data" : [{"room":"living","device":"release","action":"on"}],
};
const headers = new Headers( { "Content-type" : "application/json" } );
return new Promise((resolve, reject) =>{
fetch(url, {
method : 'POST',
body : JSON.stringify(param),
headers: headers
}).then((response) => {
target = document.getElementById("output");
target.innerText = "通信成功:オートロック解除しました"
})
});
}
でもこれだと検索ロボットに引っかけたくないとか誰でもアクセスできる状態にしたくないからパスワード設定だとか
余計なリスク管理が必要になったりとあんまりイケてない・・・。
もっとイケてる感じの方法はないもんかと色々と探っていると、何やらiPhoneのショートカットアプリでAPIのリクエストを直接叩けるという事を知ったのでコレを試してみます!
実際には下記のcurlコマンドをショートカット上で設定していきます
curl -i -H "Content-Type: application/json" -X POST -d '{"data":[{"room":"living","device":"release","action":"on"}]}' http://api.beebotte.com/v1/data/publish/Entrance/entrance?token=token_トークン情報

まずはアクセス先のURLを設定します
次にオプション設定。ここで前回IFTTTでGoogleアシスタントに設定したGoogleHomeのトリガー部分を当てはめていきます。
これで最低限の設定はできました。
あとは通知アクションを追加したり、アイコンを作成してホーム画面に追加したりとカスタマイズしてください。
ショートカットを作成した事でネイティブアプリを使う感じで解錠に成功しました!
わかりやすく動画にまとめようと思いましたが、色々と面倒なのでそれはやめましたw
これで本来SwitchBotの専用ハブを購入しないと実現できなかった外からのSwitchBot操作が可能になりました。
(※)に関しては、各スイッチに個別パスワードを設定できるが、今回はラズパイにパスワード情報を引き継いでの実装はできなかったため、パスワードは未設定のままのため、この辺りも何とかしていきたい。
