SwitchBot純正アプリで実現する完全なスマートホーム化【擬似フラグ管理テクニック】

教えて
  1. はじめに
  2. SwitchBotの「シーン」と「オートメーション」の基本
    1. シーン
    2. オートメーション
  3. よくある問題:センサー連携の落とし穴
    1. 問題1:ライトのチャタリング
    2. 問題2:在室しているのに家電が切れる
  4. 解決策:シーンとオートメーションで擬似フラグ管理
    1. 基本的な考え方
    2. 具体例:照明の自動制御(チャタリング防止付き)
    3. オートメーション設定
    4. シーン
    5. シーン設定
    6. 照明を消すための設定
    7. 動作の流れ
  5. 応用例1:在室判定による空気清浄機制御
    1. 在室判定の開始
    2. 在室の継続監視
    3. ポイント
    4. さらに高精度な在室判定:SwitchBotセンサー3種比較
    5. センサー総合比較表
    6. 在室判定に最適:人感センサーPro
    7. Hub3の温湿度・照度センサーも活用
  6. 応用例2:Stream Deck+とHub3の連携
    1. Hub3のダイヤル操作
    2. Stream Deckとの連携方法
    3. 温湿度の表示
  7. 実現可能性のまとめ
    1. 1. 日中の人感照明制御(チャタリング回避付き)
    2. 2. 在室判定による空気清浄機制御
    3. 3. Stream Deck+とHub3の連携
  8. SwitchBot純正アプリの可能性
    1. この方法の利点
    2. 注意点
  9. Home Assistant vs SwitchBotアプリ 実用性比較
  10. FAQ: SwitchBot擬似フラグ管理に関するよくある質問
    1. Q1: オートメーションのON/OFFはどのくらいの速度で切り替わりますか?
    2. Q2: 複数の部屋で同じ仕組みを使う場合、設定は複雑になりませんか?
    3. Q3: この方法は他のデバイス(エアコン、カーテンなど)にも応用できますか?
    4. Q4: 人感センサーProは通常の人感センサーより何が優れていますか?
    5. Q5: この擬似フラグ管理の方法は公式に推奨されていますか?
  11. まとめ:完全なスマートホーム化への道

はじめに

前回の記事でHome AssistantとSwitchBotの連携について検証しましたが、技術的な不具合により断念せざるを得ませんでした。

設定の学習コストは問題なく、技術的にも対応可能な範囲だったのですが、以下のようなHome AssistantとSwitchBotの連携における技術的な制限や不具合に直面しました:

  • Hubに登録されたリモコンが認識しない
  • エアコンの温度が取得できない
  • SwitchBotで作成したシーンが読み込めない

これらの問題により、Home Assistantでの実装を断念。そこで、SwitchBot純正アプリでどこまで実現できるかを検証したところ、色々と発見がありました。

今回は、私が目指していた以下の高度なオートメーションを、SwitchBot純正アプリだけで実現する方法を紹介します:

  • 日中の人感照明制御:動作を検知した場合、明るさに応じて照明をON(フラグによるチャタリング回避も実装)
  • 在室判定による空気清浄機制御:在室している時は空気清浄機をON(もしくはオート)、在室していない時は弱に切り替え
  • Stream Deck+との連携:Hub3に登録したエアコンのリモコンで簡単に温度操作、室温や湿度も表示

SwitchBotの「シーン」と「オートメーション」の基本

まず、SwitchBot純正アプリには2つの重要な機能があります:

シーン

複数のデバイスやアクションをまとめて、手動で実行する機能です。ワンタップで一括操作ができます。

例:

  • 「おはよう」→ カーテン開く、照明ON、エアコン起動

オートメーション

特定の条件が満たされたときに自動的にアクションを実行する機能です。

例:

  • 「朝7時になったら」→ カーテンを開ける
  • 「室温が28℃以上になったら」→ エアコンをON

この2つの機能は、SwitchBotユーザーなら誰でも使ったことがあると思います。しかし、これらを組み合わせることで、プログラミング的な「フラグ管理」に近い高度な制御が可能になることは、あまり知られていません。

よくある問題:センサー連携の落とし穴

例えば、こんなことありませんか?

問題1:ライトのチャタリング

「人感センサーを導入して動体検知を条件に入れてみたけど、何度もライトがピッピッうるさい」

センサーが反応するたびに照明ON信号が送られ、既にONの状態でさらにON信号が送られることで、照明が点滅を繰り返してしまいます。

問題2:在室しているのに家電が切れる

「まだ部屋にいるのにエアコンが切れた」

人感センサーは動きを検知するため、じっとしていると「不在」と判定されてしまい、エアコンや空気清浄機が勝手に停止してしまいます。

これらの問題、実はシーンとオートメーションを組み合わせた「擬似フラグ管理」で解決できます。

解決策:シーンとオートメーションで擬似フラグ管理

基本的な考え方

SwitchBotには、オートメーション自体をON/OFFする機能があります。これを活用することで、プログラミングでいう「フラグ管理」のような制御が可能になります。

役割分担:

  • シーン:「デバイス制御」と「フラグのON/OFF切り替え」を管理
  • オートメーション:「条件(動体検知、照度など)」と「フラグ機能」として使用

具体例:照明の自動制御(チャタリング防止付き)

オートメーション設定

名前: 「日中の照明自動点灯」

条件(いつ):

  1. 「動体検知」(人感センサーが反応)
  2. かつ 「部屋が暗い」(照度6以下など)
  3. かつ 「日中」(9:00~18:00)

SwitchBotアプリでは、「詳細オプション」から複数条件をANDで組み合わせることができます。

アクション(実行内容):

  • シーン「照明ONシーン」を実行

シーン

複数のデバイスやアクションをまとめて設定できる機能です。アプリからワンタップで手動実行するのが基本です。

例:

  • シーン「照明全開」:シーリングライトON + 間接照明ON
  • シーン「エアコン冷房25度」:エアコンを冷房25度に設定

※音声アシスタント(Alexa、Siriなど)と連携すれば、「おはよう」などの音声でシーンを実行することもできますが、シーン自体は手動実行用の機能です。

シーン設定

名前: 「照明ONシーン」

アクション:

  1. シーリングライトをON
  2. 間接照明をON
  3. オートメーション「日中の照明自動点灯」をOFF

この3番目が最も重要なポイントです。オートメーション自体をOFFにすることで、照明ON信号のチャタリングを防止できます。

照明を消すための設定

消灯用の設定も必要です。

オートメーション名: 「日中の照明自動消灯」

条件:

  • 「動体未検知」(人感センサーが一定時間反応なし、例:5分間)

アクション:

  • シーン「照明OFFシーン」を実行

シーン名: 「照明OFFシーン」

アクション:

  1. シーリングライトをOFF
  2. 間接照明をOFF
  3. オートメーション「日中の照明自動点灯」をON(再びセンサーが動作するように戻す)

動作の流れ

  1. 暗い部屋に人が入る → センサー反応 → 照明ON → オートメーションOFF
  2. 照明ONの状態で動き続けても、オートメーションがOFFなので再度ON信号は送られない(チャタリング防止
  3. 5分間動きがない → 照明OFF → オートメーションON(次の入室に備える)

この仕組みにより、Home Assistantで実装したかった「フラグによるチャタリング回避」が実現できます。

応用例1:在室判定による空気清浄機制御

同じ仕組みで、在室管理も実現できます。

在室判定の開始

オートメーション: 「在室検知」

条件:

  • 人感センサーが動体検知

アクション:

  • シーン「在室モード開始」を実行

シーン: 「在室モード開始」

  1. 空気清浄機をONまたはオートモード
  2. オートメーション「在室検知」をOFF
  3. オートメーション「在室監視」をON

在室の継続監視

オートメーション: 「在室監視」(初期状態:OFF)

条件:

  • 人感センサーが動体未検知(10分間など)

アクション:

  • シーン「不在モード開始」を実行

シーン: 「不在モード開始」

  1. 空気清浄機を弱モードまたはOFF
  2. オートメーション「在室監視」をOFF
  3. オートメーション「在室検知」をON

ポイント

この設定により、一度在室と判定されれば、10分間動きがなくても空気清浄機は稼働し続けます。完全に退室して10分経過して初めて不在モードに切り替わります。

「まだ部屋にいるのにエアコンが切れた」という問題も、この方法で解決できます。

さらに高精度な在室判定:SwitchBotセンサー3種比較

SwitchBotには現在3種類の人感センサーがあります。さらに、照度センサーや温湿度センサーなど、搭載されているセンサーの種類や性能も異なります。在室判定の精度を高めたい場合、それぞれの違いを理解して選ぶことが重要です。

センサー総合比較表

項目Hub3内蔵センサー人感センサー(標準)人感センサーPro
人感センサー○(動体のみ)○(動体のみ)◎(動体+静止)
検知方式モーションセンサー赤外線センサー60GHzミリ波レーダー+赤外線
動体検知距離公式未公表最大9m最大約8m
静止状態検知距離×検知不可×検知不可○最大約5m
検知角度公式未公表水平110°/垂直55°広角120°
AI学習機能なしなし○あり
照度センサー○(1~10段階○(明/暗の2択)○(1~20段階)
照度詳細FW V12.8.9以降境界値調整可能最大1000lux
温湿度センサー○(ケーブル内蔵)×なし×なし
温度測定範囲-20℃~80℃
温度精度±0.4℃(-20~0℃)
湿度測定範囲0~99%RH
その他
ディスプレイ○温湿度等表示×なし×なし
設置自由度Hub3位置のみ○自由○自由
電源USB給電電池(約3年)電池(約2年)
適した用途環境総合監視動線上の自動化高精度在室判定

在室判定に最適:人感センサーPro

通常の人感センサーやHub3内蔵センサーは動きを検知するため、静止している時の判定に限界があります。

より精度を高めたい場合は、SwitchBot人感センサーProの導入をおすすめします。

特徴:

  • ミリ波レーダー搭載で、動かなくても人の存在を検知可能
  • 読書中のソファや食卓での団らんなど、動きの少ない状況でも在室を認識
  • AIが環境を学習し、エアコンや扇風機の動きをノイズとして判別して誤検知を防止

Hub3内蔵センサーとの違い: Hub3にも人感センサーが搭載されていますが、これは動体検知のみで、静止状態は検知できません。また、Hub3の設置場所でしか検知できないため、部屋全体の在室判定には向きません。

本格的な在室判定を行いたい場合は、人感センサーProを部屋の適切な位置に設置することで、「まだ部屋にいるのにエアコンが切れた」という問題を完全に解決できます。

Hub3の温湿度・照度センサーも活用

Hub3には温湿度センサー(電源ケーブル内蔵)と照度センサー(10

段階表示)も搭載されています。これらを組み合わせることで:

  • 「室温28℃以上」かつ「在室中」→ エアコンON
  • 「照度レベル6以下」かつ「動体検知」→ 照明ON

といった、より高度なオートメーションが実現できます。

応用例2:Stream Deck+とHub3の連携

Hub3のダイヤル操作

Stream Deckを使わなくても、Hub3本体の「Dial Master」機能でエアコンの温度を1℃単位で直感的に調整できます。物理ダイヤルを回すだけで操作可能で、リモコン同様の細かな操作性が実現します。

Stream Deckとの連携方法

より高度な操作をしたい場合は、以下の方法でStream Deckから操作できます:

  1. SwitchBotアプリでシーンを作成(「エアコン温度+1℃」「エアコン温度-1℃」など)
  2. シーンをSiriに追加
  3. Macの「ショートカット」アプリで使用可能になる
  4. ショートカットをDockに追加(アプリとして作成される)
  5. そのアイコンをStream Deckにドラッグ&ドロップ

この方法なら、技術的なハードルが低く、誰でも簡単に設定できます。

温湿度の表示

Hub3本体のディスプレイに温湿度が表示されます。他のSwitchBot温湿度計やCO2センサーと連携すれば、そのデータも表示可能です。

Stream Deckへのリアルタイム表示は、SwitchBot API経由での取得が必要ですが、技術的ハードルが高いため、まずはHub3本体の表示で十分実用的です。

実現可能性のまとめ

Home Assistantで実現したかった3つの要件について、SwitchBot純正アプリでの実現結果:

1. 日中の人感照明制御(チャタリング回避付き)

実現度:◎ 完全に実現可能

シーンとオートメーションの擬似フラグ管理により、Home Assistantと同等のチャタリング回避が可能です。

2. 在室判定による空気清浄機制御

実現度:○ 実用レベルで実現可能

通常の人感センサーでも擬似フラグ管理で実用的な制御が可能。より精度を上げたい場合は、ミリ波レーダー搭載の人感センサーProを使えば、静止状態でも検知できます。

3. Stream Deck+とHub3の連携

実現度:○ 実現可能

Macのショートカット経由で操作可能。Hub3本体のダイヤル操作も非常に便利です。

SwitchBot純正アプリの可能性

当初はHome Assistantでなければ実現できないと思っていた高度なオートメーションですが、SwitchBot純正アプリのシーンとオートメーションを組み合わせることで、擬似的なフラグ管理が実現でき、ほぼ同等の制御が可能であることがわかりました。

この方法の利点

  • 設定が直感的:GUIで設定でき、複雑なYAML編集が不要
  • 安定性が高い:公式アプリのため、アップデートで動かなくなるリスクが低い
  • デバイス連携がスムーズ:SwitchBot製品間の連携に制限がない
  • 学習コストが低い:プログラミング知識不要で、誰でも設定可能

注意点

オートメーションのON/OFF切り替えには若干のタイムラグがあるため、極端に短い間隔での切り替えには向きません。通常の生活パターンでは問題ありませんが、設計時に余裕を持った時間設定が推奨されます。

Home Assistant vs SwitchBotアプリ 実用性比較

項目Home AssistantSwitchBotアプリ
初期設定の難易度中~高(Docker/技術知識必要)低(アプリDL後5分)
SwitchBot「その他」リモコン対応×(標準統合では非対応)○(完全対応)
チャタリング防止○(変数管理で実現)○(擬似フラグ管理で実現)
在室判定の精度○(複雑なロジック可)○(人感センサーProで実現)
オートメーション作成○(複雑な条件設定可)○(GUI操作で簡単)
シーン実行△(自作が必要)○(ワンタップで実行)
他社製品との連携○(Hue、IKEAなど多数)△(限定的)
運用コスト(保守・更新)高(定期的なメンテ必須)低(自動更新)
必要な常時稼働サーバー必須(Mac/RaspberryPiなど)不要(Hub 3で完結)
カスタマイズ性非常に高い中程度(擬似フラグで拡張可)

FAQ: SwitchBot擬似フラグ管理に関するよくある質問

Q1: オートメーションのON/OFFはどのくらいの速度で切り替わりますか?

A: 通常2~3秒程度で切り替わります。瞬時の切り替えではないため、極端に短い間隔での切り替えには向きませんが、通常の生活シーンでは全く問題ありません。

Q2: 複数の部屋で同じ仕組みを使う場合、設定は複雑になりませんか?

A: 各部屋ごとにオートメーションとシーンを作成する必要がありますが、命名規則を統一することで管理しやすくなります。例:「リビング_照明ON」「寝室_照明ON」など。

Q3: この方法は他のデバイス(エアコン、カーテンなど)にも応用できますか?

A: はい、応用可能です。基本的な考え方は同じで、「オートメーションで条件判定」→「シーンでデバイス制御+フラグ切替」という構造を維持すれば、どのデバイスにも適用できます。

Q4: 人感センサーProは通常の人感センサーより何が優れていますか?

A: 通常センサーは「動き」を検知しますが、人感センサーProは「存在」を検知します。ミリ波レーダー技術により、静止している人も認識できるため、在室判定の精度が大幅に向上します。

Q5: この擬似フラグ管理の方法は公式に推奨されていますか?

A: 公式ドキュメントには詳しく記載されていませんが、オートメーション自体をON/OFFする機能は正式に提供されている機能です。この記事で紹介している使い方は、その機能を応用した実用的なテクニックです。

まとめ:完全なスマートホーム化への道

Home AssistantとSwitchBotの連携不具合により一度は諦めかけましたが、SwitchBot純正アプリだけで、私が目指していた「完全なスマートホーム化」が実現できることが分かりました。

シーンとオートメーションを活用した擬似フラグ管理のテクニックは、SwitchBotの公式ドキュメントにも詳しく載っていない応用的な使い方です。この方法を使えば、プログラミング的な状態管理に近い複雑な制御が可能になります。

もちろん、Home Assistantの柔軟性や拡張性には及びませんが、実用面では十分すぎるほどの自動化が実現できます。SwitchBotユーザーの皆さんも、ぜひこのテクニックを活用して、快適なスマートホーム生活を実現してください。


関連記事:

コメント

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