🤖

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. カメラが動きを検知(〜1秒)
  2. 顔認識(〜0.5秒)
  3. 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