Skip to content

Repository files navigation

🌡️ SwitchBot Temperature Monitor

SwitchBotの温度計デバイスをモニタリングし、リモコン操作もできるStreamlitアプリやで〜!✨

🛠️ 開発経緯

最初に Replitでプロトタイプを作成、その後、Cursorで編集 Claude Sonnet 4で作成

このプロジェクトは、Replitでプロトタイプを作成し、その後Cursorで本格的な開発を行いました。Claude Sonnet 4を使用して、SwitchBot APIとの連携や美しいUIの実装を行っています。

�� 機能

🌡️ 温度監視機能 ✅

  • 🌡️ リアルタイム温度表示(摂氏・華氏)
  • 💧 湿度表示
  • 🔋 バッテリー残量表示(色分け)
  • 🔄 自動更新機能(5-60秒間隔)
  • 📱 美しいカード形式のWebインターフェース

📺 リモコン操作機能 ✅

  • 📺 テレビ制御 - 電源、音量、チャンネル操作(IRリモコン経由)
  • ❄️ エアコン制御 - 電源ON/OFF、温度設定、モード変更(IRリモコン経由)
  • 💡 照明制御 - 電源ON/OFF(物理デバイス・IRリモコン両対応)
  • 🔧 その他のデバイス - 電源ON/OFF制御

🏠 統合管理機能 ✅

  • 🌡️ 温度計デバイス監視 - リアルタイム温度・湿度・バッテリー表示
  • 📱 デバイス分類 - 自動的にデバイスをカテゴリ別に分類
  • 🔄 リアルタイム更新 - 手動・自動更新機能
  • 📊 デバイス集計 - サイドバーでデバイス数の確認
  • 🔧 Hub Mini表示 - 操作対象外デバイスの情報表示

🔧 開発中・API実装済み(UI未実装) 🚧

  • 🎭 シーン実行機能 - シーン一覧取得・実行(API実装済み、UI未実装)
  • 📋 デバイスタイプ別コマンド一覧 - 対応コマンドの表示(API実装済み、UI未実装)
  • 📡 IRリモコン状態取得 - リモコンデバイスの詳細状態表示(API実装済み、UI未実装)
  • 物理デバイス詳細制御 - テレビ・エアコンの物理デバイス制御(API実装済み、UI未実装)

🚀 セットアップ

1. 依存関係のインストール

# 仮想環境を使用
source .venv/bin/activate

# 依存関係をインストール
pip install requests streamlit python-dotenv

2. SwitchBot API認証情報の設定

  1. SwitchBotアプリを開く 📱
  2. 設定 → アプリバージョン → 開発者オプションに進む
  3. Open TokenSecret Keyを取得

3. 環境変数の設定

.envファイルを編集して、実際の認証情報を設定してください:

# .env
SWITCHBOT_TOKEN=あなたの実際のトークン
SWITCHBOT_SECRET=あなたの実際のシークレット

🎮 アプリの起動

🏠 統合ダッシュボード(メイン)

streamlit run SwitchbotMoniter.py --server.port 8502

URL: http://localhost:8502

📁 ファイル構成

SwitchSense/
├── SwitchbotMoniter.py     # 🏠 統合ダッシュボード(メイン)
├── switchbot_api.py        # 🔌 SwitchBot APIクライアント
├── test_ir_control.py      # 🎮 IRリモコン操作テスト
├── .env                    # ⚙️ 環境変数設定
├── .gitignore              # 🚫 Git除外設定
├── .gitmessage             # コミットテンプレート
├── pyproject.toml          # ⚙️ プロジェクト設定
├── uv.lock                 # 🔒 依存関係ロック
├── replit.md               # 📖 技術仕様書(英語)
├── replit_ja.md            # 📖 技術仕様書(日本語)
└── README.md               # 📖 このファイル

🎯 対応デバイス

🌡️ 温度監視対応デバイス ✅

  • SwitchBot Meter
  • SwitchBot Meter Plus
  • SwitchBot Outdoor Meter
  • その他のMeter系デバイス

📺 リモコン操作対応デバイス ✅

  • 仮想IRリモコン: テレビ、エアコン、照明(Hub Mini経由)
  • 物理デバイス: SwitchBot Bot、SwitchBot Curtain、SwitchBot Light(ON/OFF制御のみ)

🔧 情報表示デバイス ✅

  • Hub Mini - 操作対象外、情報表示のみ

🚧 開発中対応デバイス

  • 物理テレビ・エアコン: API実装済み、UI未実装

🔧 トラブルシューティング

よくある問題

  1. 認証情報が見つからない

    • .envファイルが正しく設定されているか確認
    • SwitchBotアプリでAPI認証情報を取得済みか確認
  2. デバイスが見つからない

    • SwitchBotデバイスがオンラインか確認
    • 温度計デバイス(Meter、Meter Plus、Outdoor Meter)が登録されているか確認
    • リモコン操作の場合、Hub Miniが設定されているか確認
  3. APIエラー

    • インターネット接続を確認
    • API認証情報が正しいか確認
    • API制限に達していないか確認
  4. リモコン操作ができない

    • Hub Miniがオンラインか確認
    • 仮想IRリモコンが正しく設定されているか確認
    • デバイスが制御可能な状態か確認
  5. 温度計が表示されない

    • デバイスタイプがMeter系か確認
    • デバイスがオンラインか確認
    • API認証情報が正しいか確認
  6. Hub Miniが表示されない

    • Hub Miniがオンラインか確認
    • デバイスタイプがHub Miniか確認
    • API認証情報が正しいか確認

🎮 IRリモコン操作テスト

python test_ir_control.py

🚧 開発予定機能

以下の機能はAPIレベルで実装済みですが、UIでの実装が未完了です:

  • シーン実行機能: シーン一覧表示とワンクリック実行
  • デバイス詳細情報: 各デバイスの対応コマンド一覧表示
  • IRリモコン状態監視: リモコンデバイスの詳細状態表示
  • 物理デバイス詳細制御: テレビ・エアコンの物理デバイス制御

📝 ライセンス

このプロジェクトはMITライセンスの下で公開されています。


使用した生成AIモデル: Claude Sonnet 4

About

SwitchBotの温度計表示、テレビ、エアコン、ライト操作

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages