Home AssistantとSwitchBot連携を断念した理由【検証記録】

教えて
SwitchBot Hub3

はじめに

Stream Deck+導入を機に、「デスクの手元ですべての家電を操作したい」という野望を抱きました。

そのための司令塔として選んだのが、最強のスマートホームOSと評判の「Home Assistant (HA)」です。

「HAなら何でもできるらしい」という噂を信じてMac上に構築しましたが、SwitchBot製品(特にHub 3やその他リモコン)との連携で思わぬ壁にぶつかりました。

今回は、HA導入から挫折、そして「あえてHAを使わない」という結論に至るまでの検証記録を共有します。


フェーズ1: Home AssistantをMac上にDocker導入

Macを常時稼働サーバーにするため、Dockerを使ってHAを構築しました。

やったこと:

  1. Docker Desktop for Macのインストール
  2. docker run コマンド一発でHAコンテナを起動
  3. ローカルサーバー(localhost:8123)へのアクセスと初期設定

結果:

  • 成功: Mac上でサクッとHAが立ち上がりました。環境構築自体は非常に簡単で、エンジニアでなくても約30分(筆者実測)で完了します。

フェーズ2: SwitchBotデバイスとの標準連携

Hub 3を含むSwitchBotデバイスをHAに取り込みました。

やったこと:

  1. SwitchBotアプリで開発者トークン/シークレットを発行
  2. HAの統合機能で「SwitchBot Cloud」を追加

結果:

  • ○ できたこと
    • 温湿度計のグラフ化: Hub 3の温度・湿度データがHAに取り込まれ、美しいグラフが表示されました。Stream Deckに表示するデータソースとしては理想的です。
    • 標準デバイスの制御: プラグ、ロボット掃除機、エアコンカテゴリのリモコンはON/OFF制御できました。
  • × できなかったこと
    • 「その他」リモコンの消失: Hub 3に学習させたアンプやKVM(その他カテゴリ)のリモコンが、HA上には一切表示されません。仕様上、標準統合では対象外のようです。

フェーズ3: 消失したリモコンを求めて(HACSと試行錯誤)

「標準で出ないなら拡張機能だ!」と、コミュニティストア(HACS)を導入しました。

試したこと:

  1. HACSの導入: 非公式プラグインを入れるためのストアをインストール
  2. カスタム統合「SwitchBot Remote IR」: 「その他」リモコンを無理やり認識させるプラグインを導入
  3. ID抽出スクリプト: Pythonスクリプトを書き、隠された deviceId をAPIから抽出して設定

検証結果:

  • △ 認識はした: アンプやKVMがデバイスとして画面に出現しました。
  • × 動作せず: ボタンを押しても invalid value エラーが発生。統合側のAPI処理がカスタムボタンに対応しきれておらず、実用は難しい状況でした。

TIPS: 唯一の抜け道「偽装登録」

SwitchBotアプリ側でアンプを「ライト」や「扇風機」として登録し直すと、HA標準統合でも認識され、電源ON/OFFだけは可能でした。

ただし、入力切替などの細かいボタンは使えず、万能な解決策とは言えません。


フェーズ4: 「スクリプトならできる」という誘惑と決断

技術的には、PythonでAPI認証署名(HMAC-SHA256というデータ改ざん防止用の暗号化技術)を計算するスクリプトを書けば、ほとんどの操作は実現可能です。

  • できること
    • アンプの入力切替
    • 掃除機のモップモード指定
    • シーン実行など、API仕様上用意されている操作全般
  • コスト
    • 全デバイスのID管理が必要
    • Wi-Fi変更やデバイス追加のたびにコード修正が必要
    • 「GUIでポチポチ」の手軽さが消滅し、運用の負担が増大

決断:

「スマートホームは、構築した後『楽』になるべきもの」。

維持管理に手間がかかるスクリプト運用は本末転倒であり、導入コスト(労力)を最小限にしたいという当初の目的に反すると判断し、今回は採用を見送りました。


結論: SwitchBotユーザーにHome Assistantは必要か?

結論: 無理して導入する必要はない(Hub 3があれば十分)

  • HAが得意なこと
    • センサー値の長期ログ保存・可視化
    • HueやIKEAなど、他社メーカーを含む混在環境の一括制御
  • HAが苦手なこと(少なくともSwitchBot連携において)
    • 純正アプリにある「シーン」や「オートメーション」の手軽さの再現
    • ロボット掃除機など、詳細モードのきめ細かな制御

Stream Deckに温度を出したいだけならSwitchBot APIを直接叩くだけでも十分ですし、オートメーションを組みたいならHub 3と純正アプリの方が圧倒的に扱いやすいと感じました。

「何でもできる」は「何でも自分で作らなきゃいけない」の裏返しでした。

筆者の環境では、Macのリソースを食うHAサーバーは一旦停止し、「SwitchBotアプリ + Stream Deck(CLI連携)」 というシンプル構成でデスク環境を完成させることにします。


Home Assistant vs SwitchBotアプリ 機能比較

項目Home AssistantSwitchBotアプリ
初期設定の難易度中~高(Docker/技術知識必要)低(アプリDL後5分)
SwitchBot「その他」リモコン対応×(標準統合では非対応)○(完全対応)
温湿度データのグラフ化○(長期保存・カスタマイズ可)△(7日間のみ)
オートメーション作成○(複雑な条件設定可)○(GUI操作で簡単)
シーン実行△(自作が必要)○(ワンタップで実行)
他社製品との連携○(Hue、IKEAなど多数)△(限定的)
ロボット掃除機の詳細制御△(モード指定に制約)○(全モード対応)
運用コスト(保守・更新)高(定期的なメンテ必須)低(自動更新)
必要な常時稼働サーバー必須(Mac/RaspberryPiなど)不要(Hub 3で完結)
カスタマイズ性非常に高い中程度

FAQ: Home AssistantとSwitchBotに関するよくある質問

Q1: Home AssistantはRaspberry Piでも動きますか?

A: はい、動作します。むしろRaspberry Pi(特にPi 4以降)での運用が推奨されており、専用OSイメージ「Home Assistant OS」も公式提供されています。Macよりも消費電力が少なく、24時間稼働に適しています。

Q2: SwitchBotの「その他」リモコンを絶対にHAで使いたい場合の方法は?

A: 以下の2つの方法があります。

  • 方法1: SwitchBotアプリ側でデバイスを「ライト」や「扇風機」として偽装登録(電源ON/OFFのみ可能)
  • 方法2: Python等でSwitchBot APIを直接叩くスクリプトを自作(全機能使用可能だが保守コストが高い)

Q3: Home Assistantを使うメリットが大きいのはどんな人?

A: 以下に当てはまる方には導入価値があります。

  • 複数メーカーの製品(Philips Hue、IKEA、Shelly等)を一元管理したい
  • センサーデータを長期間保存してグラフ分析したい
  • 「温度が25度を超えたら、かつ人感センサーが反応したらエアコンON」のような複雑な条件分岐を設定したい

Q4: 今回の検証環境(Mac + Docker)以外の構築方法はありますか?

A: 主に以下の方法があります。

  • Raspberry Pi + Home Assistant OS(最も一般的)
  • NAS(Synology/QNAPなど)上のDocker
  • Windows PC + Docker Desktop
  • 仮想マシン(VirtualBox、VMwareなど)

Q5: SwitchBotアプリのオートメーションとHAの違いは何ですか?

A: SwitchBotアプリは「SwitchBot製品同士」の連携に特化しており、GUIで直感的に設定できます。一方、HAは他社製品やWebhook、APIとの連携など高度な自動化が可能ですが、設定の難易度は高めです。


次回

Home Assistantの導入は見送りましたが、スマートホーム化への挑戦はまだ続きます。

次回は、今回の検証で見直したSwitchBot純正アプリのポテンシャルを最大限に引き出し、オートメーションとシーンを駆使して**「理想の自動化」**を構築する方法を紹介します。

HAなしでもここまでできる、というSwitchBot活用術。お楽しみに。

タイトルとURLをコピーしました