SwitchBotといえば、既存の家電や照明のスイッチを工事不要で後付けし、スマホや音声で操作ができるスマートホーム製品です。
我が家では5年ほど前からSwitchBotハブミニを使用しており、Alexaと連携して以下の用途で活用しています。
- テレビやエアコンの音声操作
- 毎朝決まった時間にエアコンを起動するオートメーション
SwitchBotのデバイス登録や操作は基本的に上記のSwitchBotアプリを利用しますが、私の場合は音声操作がメインのため、アプリを起動する機会はほとんどありません。
一方で、このアプリは機能の割にサイズが大きく、スマホのストレージをそれなりに消費します。アプリよりも原則ブラウザ派の私ですが、残念ながら公式のWebアプリは提供されていないことに長いこと落胆していました。
最近になって調べなおしてみたところ、SwitchBotには公式APIが公開されていることを知りました。
「それなら自分でWEBコントローラーを作ればいいのでは?」ということで、SwitchBotコントローラーを作ってみることにしました。
ネットワーク構成
SwitchBotコントローラーにインターネットから直接アクセスできてしまうのは避けたいので、クラウドではなく、自宅ネットワーク内に配置したRaspberryPiへデプロイすることにしました。
自宅のルータがVPNに対応しているため、外出先から操作する場合はVPN接続したうえでコントローラーにアクセスする構成としています。
ネットワーク構成イメージは以下の通りです。
Claude Codeでバイブコーディング
以前は要件定義にGeminiを使用していましたが、最近はClaude Opus4.6の性能が非常に優秀と言われているため、今回はClaudeのみで開発してみました。
(ちなみに、2026年2月17日にリリースされたClaude Sonnet4.6はOpusとほぼ同等のベンチマークでありながら、入出力コストがOpus4.6の約1/5に抑えられているため、次回以降はSonnetを試してみたいと思っています。)
まず、以下のプロンプトでCLAUDE.mdを作成します。
あなたは優秀なエンジニアです。
以下の要件で自宅のraspberrypiをSwitchBotコントローラーにしたいです。
CLAUDE.mdを作成したいのでまずは要件定義を行なってください。
要件定義をするにあたり、足りない情報は私に質問をしながら整理してください。
- バックエンドでSwitchBotAPIを呼び出し、フロントエンドでSwitchBotHubMiniを操作できるWebアプリ
- アプリを搭載するraspberrypiは自宅環境(LAN)内からのみアクセス可能とする
- アプリの画面構成は以下の通り
- ホーム:SwitchbotHubminiおよび、Hubminiをリモコンとして登録している機器の操作パネルを表示する
- オートメーション:操作可能な機器の自動操作を登録できる
- プロフィール:ログインしているSwitchBotアカウント情報
最終的に生成されたCLAUDE.mdは以下のような内容になりました。
これをもとにClaude Codeに実装を依頼します。
RaspberryPiで動作させることも要件として指定していたため、デプロイ用スクリプトも自動で生成されました。
これを利用してRaspberryPi実機へデプロイします。
デプロイ後の設定
SwitchBotAPIを使用するためには、デバイスを認証するためのトークンが必要となります。
取得方法は以下の公式サポートページで公開されています。
完成したアプリは以下の通りです。
コードはGitHubで公開しています。
試しにテレビを操作してみました。
まとめ
なんと言っても驚いたのは、ここまでの作業がわずか1時間ほどで完了したことです。
これからの時代、単純なコーディング力だけでなく、非機能要件やシステムアーキテクチャの設計力、プロジェクトマネジメント力、UI/UXデザイン力といったプラスアルファの能力がより重要になってくるのではないでしょうか。
AIを「開発者の代替」として捉えるのではなく、開発速度を何倍にも高めるパートナーとして活用することが、これからのエンジニアには求められていくのだと思います。



