Garmin(IFTTT)とSwitchbotを使ってマンションのオートロックを解除する方法

## はじめに <!-- omit in toc -->

最近SwitchBotを導入して、ドアのロックを指紋で解錠&オートロック化しました。
外出時は完全キーレスでとても便利なのですが、帰宅時はマンションの入り口でオートロックを解除するために一度カギを取り出す必要があります。
そこで、Garmin、IFTTT、SwitchBotを用いてスマホも出さないで解除するシステムを作ったので紹介します。

以下目次
- [必要なもの](#必要なもの)
- [手順](#手順)
- [詳細な手順](#詳細な手順)
  - [2. SwitchBotをインターホンの解錠ボタンに取り付け](#2-switchbotをインターホンの解錠ボタンに取り付け)
  - [4. IFTTTで新しいアプレットを作成](#4-iftttで新しいアプレットを作成)
  - [5. GarminのCONNECT IQでIFTTTアプリをインストールし、トリガーとなるURLを設定](#5-garminのconnect-iqでiftttアプリをインストールしトリガーとなるurlを設定)
- [まとめ](#まとめ)
- [参考URL](#参考url)


## 必要なもの

- Garminのスマートウォッチ
- SwitchBot ボット(指ロボット)
- SwitchBot Hub Mini
- スマートフォン

使用環境
- Garmin Descent Mk1
- SHARP AQUOS Sense4

## 手順

1. SwitchBotとSwitchBot Hub Miniをセットアップ
2. [SwitchBotをインターホンの解錠ボタンに取り付け](#2-SwitchBotをインターホンの解錠ボタンに取り付け)
3. IFTTTアプリまたはウェブサイトにアクセスし、アカウントを作成
4. [IFTTTで新しいアプレットを作成](#4-iftttで新しいアプレットを作成)
5. [GarminのCONNECT IQでIFTTTアプリをインストールし、トリガーとなるURLを設定](#5-garminのconnect-iqでiftttアプリをインストールしトリガーとなるurlを設定)
6. マンション入り口でインターホンを鳴らすと同時(もしくは少し前)にGarminでアプリ実行することでロック解除

## 詳細な手順

### 2. SwitchBotをインターホンの解錠ボタンに取り付け

↓を参考にSwitchBotを取り付けました。

<!-- マンションのオートロックのエントランスをスマホで開ける方法と3つの効果。鍵を忘れても遠隔操作で開ける。 -->
https://walkonlands.net/autolock-smartphone/

その他、[一旦通話ボタンを押さないと反応しないタイプ](https://aakira.app/blog/2020/11/iot-auto-lock/)や、[受話器をとらないと解錠ボタンが反応しないタイプ](https://note.com/1000tea_/n/n7764da9bad1c)も力業ですがなんとかなるそうです。

### 4. IFTTTで新しいアプレットを作成

Webhooksの詳しい使い方は[こちら](https://ifttt-japan.club/apply-webhooks)が詳しいです。
下記に手順を書いておきます。

1. IFTTTページでCreate
2. IF This選択→Webhooksを検索→Receive a web request→適当なイベント名を入力(button_pressed等)→Ceate Trigger
3. Then That選択→SwitchBotを検索→Bot pressを選択→SwitchBotアカウントにログインして、使用するボットを選択→Create action
4. create→適当なタイトルにしてFinish
  ↓のようになっていたら成功
    <img width="300" alt="1.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521511/cc977e38-5fb4-3c9c-5901-e83d6ad194a8.jpeg">
5. テスト
   1. Webhooksページ(下図矢印)に飛び、Documentationを選択
        <img width="300" alt="2.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521511/eee8ca90-679e-fdaa-e6f3-cefd49544533.jpeg">
   2. 中段の`To trigger an Event with 3 JSON values`に手順2でつけたイベント名(下図参照)を入力
        <img width="700" alt="3.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521511/5ac850e6-2371-832c-4ec4-ab3d4caf245e.jpeg">
   3. Test itでテスト
    SwitchBotが動いたら成功です
   4. `https://maker.ifttt.com/trigger/button_pressed/with/key/{自分のkey}`をコピー(Garminで設定するための前準備)
    Webhooksページで右上のSettingに飛んでもkeyから後ろのコピーは可能です

### 5. GarminのCONNECT IQでIFTTTアプリをインストールし、トリガーとなるURLを設定

ざっくり説明してくれている[ページ](https://garmin.space/?p=139)があるのですが、connect IQストアのwebhooksというアプリが現在は無くなっています。
自作するのもありですが、かなりシンプルなアプリ(IFTTTで検索)が既にいくつかあるので、活用させていただきます。
自分はDescent Mk1を愛用しているので、`Simple Web Request`をインストールしました。
`IoT Button`はGithubでソースコードも公開してくれているので、それを元に作成する手もあります。
https://apps.garmin.com/ja-JP/apps/8c189cd4-377b-46d8-9fb9-316da44526e4
https://apps.garmin.com/ja-JP/apps/62460e2c-fec5-4839-bdac-e47d9af4c293
https://apps.garmin.com/ja-JP/apps/ac9a81ab-a52d-41b3-8c14-940a9de37544#0

`Simple Web Request`アプリを前提に設定について説明します。
1. スマホのConnect IQストアからアプリをインストール
2. スマホのConnectアプリにて、自身のデバイス→アクティビティ→アプリの管理→アプリ(もしくはウィジェット)
3. `Simple Web Request`を選択→設定
4. URLに`https://maker.ifttt.com/trigger/{イベント名}/with/key/{自分のkey}`を入力して保存
5. Garminからアプリを実行してみて、SwitchBotが動けば成功！

私の環境だと実行してから5-7秒くらい後にボットが作動します。
[ショートカット](https://support.garmin.com/ja-JP/?faq=AtSnj2d6q03bgWX7XNy7G8)(ボタン長押し)で実行できると便利なのですが、残念ながら設定できません。
せいぜいアクティビティの一番上に配置してアクティビティボタンを2度押しで実行できるようにするくらいだと思います。ただ、それだと前回使用したアクティビティにフォーカスが移っているので、その点は気をつけないといけません(ダイビングを始めてしまう)。

## まとめ

以上、Garmin、IFTTT、SwitchBotを使ってキーレス、スマホレス(所持は必須)でオートロックを解除する方法でした。
セキュリティ上のリスクも把握しつつ、スマートホームを楽しみましょう。

## 参考URL

[マンションのオートロックのエントランスをスマホで開ける方法と3つの効果。鍵を忘れても遠隔操作で開ける。](https://walkonlands.net/autolock-smartphone/)
[IFTTTの『Webhooks』の使い方を例題で簡単説明【初心者向け解説】](https://ifttt-japan.club/apply-webhooks)
[GarminとIFTTTを連携させるwebhooksの設定方法を詳しく紹介。](https://garmin.space/?p=139)