この機械は何か
SwitchBot ハブ2は、赤外線リモコン・温湿度計・照度センサーを1台に収めたスマートホームハブである。単体でもエアコンやテレビなど赤外線家電を操作できるが、本領はSwitchBotデバイス群をクラウドAPIに束ねる接続点になることだ。
このエコシステムを特徴づけるのが「ボット」— 物理ボタンを人の指の代わりに押す小型アクチュエータである。給湯器のスイッチ、コーヒーメーカー、古い壁スイッチ、インターホンの解錠ボタン。メーカーがAPIを用意していない機器でも、ボタンさえあればAIの操作対象にできる。「APIのない機械にAPIを生やす」最後の手段が製品として量産されており、SwitchBotはその代表格で、カーテン・ロック・プラグ・ロボット掃除機・加湿器までデバイス層も厚い。家の物理操作の大半をひとつのAPIに集約できる。
接続の口
口は3系統ある。
- 公式クラウドAPI v1.1 — トークン+シークレット認証のREST API。
GET /v1.1/devicesで全デバイス列挙、GET /v1.1/devices/{id}/statusで状態取得、POST /v1.1/devices/{id}/commandsで制御。シーン実行とWebhook(対応機種のイベントのプッシュ配信)も揃う。どの操作に対応するかは機種ごとに違い、公式の対応表ではハブ2本体はList・Status・Webhookに対応し、Command(本体への命令)は無い。命令を受けるのはハブ2に登録した赤外線リモコン(仮想IR機器)と、ハブ経由でつないだBLE機器である。上限は1日10,000リクエスト。 - 公式MCPサーバー — 2026年時点の決定打。公式CLI(
@switchbot/openapi-cli)がswitchbot mcp serveでそのままMCPサーバーになり、既定17・最大28のツールをClaudeやCodexに公開する。コミュニティ実装(yasu89版・genm版)も実在するが、公式が出た今は本命が明確。 - Matterブリッジ — ハブ2配下のボット・カーテン・ロック等を最大8台までMatterデバイスとして公開できる。ただし多くはON/OFFのみで、AI連携用途ならAPI/MCP経由が本線。
AIから動かすまでの道のり
生APIを直接叩く場合は、SwitchBotアプリのプロフィール→設定(Preferences)→アプリについて(About)→アプリバージョンを10回タップすると開発者オプションが現れ、トークンとシークレットを取得できる(アプリV9.0未満はAboutを挟まない)。公式CLIを使う場合、この隠し扉は不要になった(後述)。
署名は自前で生成し、トークン・13桁のUNIXタイムスタンプ t・ランダムな nonce をこの順で連結してHMAC-SHA256署名し、Base64エンコードした値を sign ヘッダに載せるが、公式説明文はnonceを含まない token+t を入力として大文字化を指示し、Python 3・JavaScript・Goの例は token+t+nonce を使い、Base64出力はPython 3/JavaScriptがそのまま、Goが大文字化しており、実際にAPIが受理する表記は未検証である(公式の署名説明と各サンプル)。Pythonなら10行程度だが、毎回書くのは面倒だ。
MCP経由ならこの署名は完全に隠蔽される。npm install -g @switchbot/openapi-cli して switchbot auth login を実行するとブラウザでログインでき、認証情報はOSのキーチェーンに保存される(トークンの手動コピーは不要)。Claude側にMCPサーバーとして登録すれば、「エアコンつけて」「風呂のスイッチ押して」を自然言語でツール呼び出しへ渡せる。うちでは実機接続をまだしていない(実測済バッジなし)。ハードウェア改造も非公式ハックも一切不要で、hack_difficultyは「none」である。
できること・できないこと
できること: ハブ2自身の温度・湿度・照度の読み取りと、ハブ2に登録した赤外線リモコン(エアコン・テレビ・扇風機など)への命令送信。ボットやカーテンなどのBLE機器もハブ経由でクラウドAPIから扱えるが、状態取得と制御の可否は機種別の対応表で確かめる。ハブ2自身が温湿度・照度センサーなので、「室温を読む→冷房の赤外線命令を送る→室温を読み直す」というセンサー値起点のフィードバックループをハブ単体で組める。Webhookを受ければポーリングなしのイベント駆動もできる。開閉センサー・人感センサーを足せば状態の解像度はさらに上がる。
できないこと・注意点: 制御はクラウド経由なので、応答にはクラウド往復分の遅延が乗る(うちでは未計測)。リアルタイム性が要る用途には向かない。赤外線命令は送信までしか分からず、家電が実際に動いたかは温度変化やカメラで別途確かめる。1日10,000回の上限は平均8.6秒に1回に相当し普通の家庭運用では余裕だが、複数エージェントで高頻度ポーリングする設計は避けてWebhookに寄せるべきだ。ハブ2本体に公式のローカルAPIは無い。ボットやカーテンなど一部のBLE機器は公式のBLE仕様(SwitchBotAPI-BLE)で直接叩けるが、AI連携の本線はクラウドAPI/MCPである。ボットの物理押下は確実性が高いものの、押した「結果」はボット自身には見えない — 結果確認は後述のセンサーやカメラで別途取る設計になる。
組み合わせのヒント
SwitchBot APIガイド — 公式CLIのOAuth認証、MCPのツール範囲、API v1.1の署名をまとめた。
Home Assistant に統合すれば、SwitchBot群を他社デバイスと同じ抽象化レイヤで扱え、自動化の実行基盤もHome Assistant側に置ける。
赤外線リモコン機能は Nature Remo 3 と競合する。API単体の素直さはRemoに分があるが、ボット・カーテン・ロックまで一気通貫で欲しいならSwitchBotに軍配。
ボットで押した結果の確認には Tapo C200 のようなカメラを向けておくと、AIが「押す→見る→判断する」の閉ループを作れる。
掃除は純正ロボット掃除機もAPIに乗るが、掃除性能重視なら Roborock S8 と役割分担する手もある。
レーティング基準の詳細は /rating を参照。