0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Fitbit Versa3/SenseでSesame3を解錠する

Posted at

動作イメージ

準備

下記の2つの作業が必要になります。

  1. Sesame3をWebhookで解錠できるようにする
  2. Versa3からWebhookを送信できるようにする

1. Sesame3をWebhookで解錠できるようにする

Sesame3ではWebAPIが提供されています。

Web API

これを直接叩けるといいのですが、鍵を開けるためにはタイムスタンプとAPI_KEYをAES-CMAC 署名して渡す必要があり、これをクライアント側で実装するのはかなり面倒です。
そこで、Sesame3のAPIをラップしたAPIを作成し、自身が管理しているWebサーバにこれを配置することで、シンプルなGETリクエストでSesame3を解錠できるようにします。

今回は、有志の方が開発してくださったAES-CMAC認証まわりをラップしてくれるライブラリを使用しました。

pysesame3

以下のようなCGIスクリプトを用意し、PythonをCGIとして実行できる外部からアクセス可能なWebサーバ上に配置します。(URLが漏洩すると家の鍵が勝手に開けられちゃうのでご注意ください)

open_sesame.py
# !/usr/local/bin/python3

import cgi
import cgitb

# DEBUG用(エラーログを画面に表示する)
# cgitb.enable()

print("Status: 200 OK")
print("")

from pysesame3.auth import WebAPIAuth
from pysesame3.lock import CHSesame2

# API_KEY
auth = WebAPIAuth(apikey="XXXXXXXXXXXX")

# Sesame3のUUID
your_key_uuid = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

# 前段の手順で取得した秘密鍵の HEX 文字列
your_key_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

device = CHSesame2(
	authenticator=auth,
	device_uuid=your_key_uuid,
	secret_key=your_key_secret,
)

## 解錠処理。 `My Script` はヒストリに記録される文字列。
device.unlock(history_tag="API")

このスクリプトを動作させるには pysesame3 をサーバのシステムにインストールしておく必要があるので、pip等を使用してインストールしておきます。

# pip3 install pysesame3

上記のopen_sesame.pyで伏せ字になっているAPI_KEY、UUID、KeySecretの取得については、key3さんの↓の記事を参考に取得し、設定します。

Sesame 3 APIを使う

以上の作業を行ったあと作成したcgiにブラウザからアクセスすることで、部屋の鍵が開けられるようになったはずです。

2. Versa3からWebhookを送信できるようにする

Versa3/SenseにWebhookを送信するためのアプリ(just-webhook)をインストールします。

just-webhook by zrn-ns | Fitbit App Gallery

インストール後 just-webhookアプリの設定画面を開き、HTTPメソッド(GET)とURL(先程設置したcgiのURL)を指定します。

あとはVersa3/Sense上からjust-webhookアプリを起動するだけで、Sesame3の解錠が可能になります。

またVersa3/Senseの設定画面でサイドキーのショートカットにjust-webhookを設定することで、サイドキーを長押しするだけでSesame3を解錠することも可能です。

最後に

簡単にではありますが、Fitbit Versa3/SenseからSesame3を解錠する方法を解説しました。
just-webhookではIFTTTで生成したwebhookを呼び出すこともできるので、IFTTTに対応しているスマート家電などはFitbitから簡単に操作できそうですね。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?