A library for controlling Sesame smart locks via BLE.
Project description
gomalock
Sesame スマートロックをPythonからBluetooth Low Energy (BLE)経由で操作するためのライブラリ。
機能説明
- Sesame 5 (Pro)をBluetooth経由で施錠、開錠などの操作
- 施錠状態、電池残量などの変化をリアルタイムで受信
- Sesame Touchの電池電圧、残量の変化をリアルタイムで受信
- 周囲のSesameデバイスをスキャンして情報を取得
- 新規Sesameデバイスの登録
- 施錠、開錠角度の設定
- オートロック秒数の設定
- 鍵の共有用QRコードの作成
インストール
最新のソースからインストール
pip install git+https://github.com/meronepy/gomalock.git
特定のバージョンをインストール(v0.0.0の部分を任意のバージョンに書き換えてください)
pip install git+https://github.com/meronepy/gomalock.git@v0.0.0
使用方法
開錠例
import asyncio
from gomalock.sesame5 import Sesame5
MAC_ADDRESS = "XX:XX:XX:XX:XX:XX"
SECRET_KEY = "1234567890abcdef1234567890abcdef"
async def main():
async with Sesame5(MAC_ADDRESS, SECRET_KEY) as sesame5:
await sesame5.unlock("gomalock")
if __name__ == "__main__":
asyncio.run(main())
MAC_ADDRESSはdiscover.pyを使用して周囲のSesameをスキャンして取得できます。SECRET_KEYはmochipon様作成のQR Code Reader for SESAMEを使用して、マネージャー権限以上のQRコードから抽出できます。- 詳細な使用方法はexamplesおよびdocsをご覧ください。
MQTTとブリッジするサンプルコード
https://github.com/meronepy/ssm2mqtt
注意事項
- Linuxで動作させる場合、 BlueZ 5.82以降を強く推奨します。 Raspberry Pi OS Bookwormにインストール済みのBlueZ 5.66では、バグによってSesame 5のGATT Serviceが取得できず正常に動作しません。
- 履歴機能は公式アプリやクラウドとの連携が困難であるため実装しておりません。
- 非公式のライブラリです。動作保証はありません。自己責任でご使用ください。
テスト環境
- Windows 11 24H2, Python 3.13.3
- Raspberry Pi Zero 2W, Raspberry Pi OS Trixie (64bit), Python 3.13.3
- Sesame 5, 3.0-5-18a8e4
- Sesame 5 Pro, 3.0-7-848a2d
対応機種
| 対応状況 | 機種 |
|---|---|
| ✅ | Sesame 5 |
| ✅ | Sesame 5 Pro |
| ⚠️ | Sesame 5 USA |
| ❌ | Sesame 4以前 |
Sesame 5 USAは恐らく動作しますが、動作未確認です。
Sesame 4以前はOSが違うため動作しません。対応予定もありません。
| 対応状況 | 機種 |
|---|---|
| ✅ | Sesame Touch |
| ⚠️ | Sesame Touch Pro |
| ❌ | Sesame Face |
| ❌ | Sesame Face Pro |
Sesame Touch Proは恐らく動作しますが、動作未確認です。
Sesame Faceシリーズは簡単な改修で対応できるはずなので、手に入れたら将来的に対応する予定です。
対応環境
OS
| 対応状況 | OS |
|---|---|
| ✅ | Windows 10 version 16299 以降 |
| ✅ | Linux with BlueZ 5.82 以降 |
| ⚠️ | macOS 10.13 以降(動作未確認) |
内部で使用しているbleakライブラリに準じますが、macOS環境は動作未確認です。
Linux環境では前述のバグが原因で、BlueZ 5.82以降が必要です。
Python
Python 3.12以降が必要です。
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gomalock-1.0.1.tar.gz.
File metadata
- Download URL: gomalock-1.0.1.tar.gz
- Upload date:
- Size: 21.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7996bccef06650781be141472e41097f63012abde9b2ce181ca127d63db8d87
|
|
| MD5 |
4a76da53b8a553ab99c725a301556fc1
|
|
| BLAKE2b-256 |
320b28efc76de34deda0e253367b36bbf928b62f894f13c334df0cf542d36728
|
File details
Details for the file gomalock-1.0.1-py3-none-any.whl.
File metadata
- Download URL: gomalock-1.0.1-py3-none-any.whl
- Upload date:
- Size: 26.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc5b89f650c1dde136319df7f723188c749c51c583f9d62cf2cacd9186c8c872
|
|
| MD5 |
85c959c2e6aa639006504e8b32aba6e9
|
|
| BLAKE2b-256 |
5fc2e518567e88dc3188d4be654f9c85a8bd9bd825a77650330bcdc8cb85aef5
|