SwitchBot AIハブ(¥39,980)を買わなくても、手持ち機材で「顔パス自動解錠」が30分で作れた件
SwitchBot AIハブ、¥39,980。高くない?
SwitchBotが最近出した「AIハブ」。カメラ映像をVLM(視覚言語モデル)で解析して、「誰が来たか」「何をしてるか」を判断してスマートホームを制御する——コンセプトは最高。
でも**¥39,980**。しかもAI機能はサブスク課金が別途必要。さらに対応カメラも買い足す必要がある。
全部揃えたら5〜6万円コース。
で、ふと思った。
「これ、自分で作れるのでは?」
結論:追加コスト¥0、開発時間30分で同等以上のものができた。
何を作ったか
玄関カメラが家族の顔を認識して、自動でスマートロックを解錠するシステム。
- 家族(登録済み) → 自動解錠 + 「おかえり」通知
- 知らない人 → 顔写真付きでアラート通知
- カメラ障害 → 自動検知・復旧通知
SwitchBot AIハブの「見守り+認識+制御」を、手持ちの機材だけで実現した。
使ったもの(全部家にあった)
| 機材 | 用途 | 追加購入 |
|---|---|---|
| TP-Link Tapo C120 | 玄関カメラ(RTSP対応) | ¥0(既存) |
| Mac mini | 24時間サーバー | ¥0(既存) |
| SwitchBot Lock Ultra | スマートロック | ¥0(既存) |
ソフトウェアは全てオープンソース。Python + face_recognition(dlib)+ ffmpeg。
合計: ¥0
システム構成
Tapo C120(RTSP)
↓ 1秒間隔フレーム取得
Mac mini
├─ フレーム差分で動体検知
├─ face_recognition で顔照合
├─ 一致 → SwitchBot API で解錠
└─ 不一致 → 写真付きDiscordアラート
全部ローカル処理。クラウドに顔データを送る必要なし。
SwitchBot AIハブはクラウドのVLMに映像を送って処理する。つまりあなたの家の映像がクラウドに飛ぶ。プライバシー的にどうなの、それ。
技術的な中身(エンジニア向け)
動体検知
前フレームとの差分をRMSEで計算。閾値超えで「何か動いた」と判定。シンプルだけど十分。
img1 = np.array(Image.open(path1).resize((320, 240)).convert('L'), dtype=float)
img2 = np.array(Image.open(path2).resize((320, 240)).convert('L'), dtype=float)
rmse = np.sqrt(np.mean((img1 - img2) ** 2))
顔認識
face_recognition(dlib)で128次元ベクトルに変換、登録済みの顔と距離を比較。tolerance 0.5で誤認識を防ぐ。
face_locations = face_recognition.face_locations(img, model="hog")
encodings = face_recognition.face_encodings(img, face_locations)
distances = face_recognition.face_distance(known_encodings, enc)
if min(distances) < 0.5: # 一致
1人あたり2〜3枚の写真で十分な精度が出る。
SwitchBot API解錠
HMAC-SHA256で認証して、Lock UltraにPOST一発。
requests.post(f"https://api.switch-bot.com/v1.1/devices/{LOCK_ID}/commands",
json={"command": "unlock"}, headers=auth_headers)
SwitchBot AIハブとの比較
| 自作システム | SwitchBot AIハブ | |
|---|---|---|
| 初期費用 | ¥0(手持ち機材) | ¥39,980 + 対応カメラ |
| 月額費用 | ¥0 | サブスク課金あり |
| 顔認識 | ✅ ローカル処理 | ✅ クラウドVLM |
| 自動解錠 | ✅ API直接制御 | ✅ |
| 不審者アラート | ✅ 写真付き | ✅ テキスト通知 |
| プライバシー | ✅ 完全ローカル | ❌ クラウド送信 |
| カスタマイズ | ✅ 自由自在 | ❌ アプリの範囲内 |
| セットアップ | 30分(要Python知識) | 箱開けて設定 |
| 対応カメラ | RTSP対応なら何でも | SwitchBot製 + RTSP |
正直、AIハブの「VLMで映像を理解する」機能は面白い。「人がよじ登っている」とか「ペットがご飯を食べた」とかの判定は、単純な顔認識では難しい。
でも**「家族が帰ってきたら鍵を開ける」**というユースケースに4万円払う必要があるかというと——ない。
ハマったポイント
Python 3.14でface_recognitionが動かない
pkg_resources が削除されたのでパッチが必要。
# face_recognition_models/__init__.py を直接修正
# Before: from pkg_resources import resource_filename
# After: os.path.join(os.path.dirname(__file__), 'models')
macOS LaunchAgentとPython venv
.venv/bin/python をLaunchAgentから直接叩くとシンボリックリンクが解決されてシステムPythonが起動する。bashラッパー経由で source activate してから exec python で回避。
この2つで合計15分ロスした。残りの15分は実装。
実際の動作
帰宅してドアの前に立つ。
- カメラが動きを検知(〜1秒)
- 顔認識(〜0.5秒)
- SwitchBot API解錠(〜1秒)
約2〜3秒で解錠。 鍵もスマホも出さない。
知らない人が来たら、顔写真付きでDiscordに即通知。外出先でもすぐ確認できる。
セキュリティについて
これは利便性のための機能で、セキュリティの最終防衛ラインではない。指紋認証パッドは別途ある。写真攻撃への耐性はないので、あくまで「あったら便利」の領域。
でもそれはSwitchBot AIハブも同じ。顔認識の精度でセキュリティを担保する製品はまだない。
まとめ
- SwitchBot AIハブ: ¥39,980 + サブスク + 対応カメラ購入 + クラウドに映像送信
- 自作: ¥0 + 30分 + 完全ローカル + 好きなようにカスタマイズ可能
エンジニアなら自作一択。RTSP対応カメラとPythonが動くマシンがあれば、今日から作れる。
もちろんAIハブには「VLMによる高度な状況認識」という自作では難しい強みがある。ペット監視とか高齢者見守りとか、顔認識じゃ対応できないユースケースには価値がある。
でも「顔パスで鍵を開けたい」だけなら、4万円の製品は要らない。
全コードはPython 200行ちょい。face_recognition + SwitchBot API + ffmpegだけ。
Discussion