SwitchBot温湿度計の値をOBSでリアルタイム配信する

ダウンロード
Download is available until [expire_date]
  • バージョン
  • ダウンロード 1
  • ファイルサイズ 20.28 KB
  • ファイル数 1
  • 投稿日 2025年8月4日
  • 最終更新日時 2025年8月4日

SwitchBot温湿度計の値をOBSでリアルタイム配信する

SwitchBot温湿度計の値をOBSでリアルタイム配信するマニュアル

目標

SwitchBot温湿度計のデータ(温度)をPythonスクリプトを使って取得し、その情報をOBSのライブ配信画面にリアルタイムで表示する。

必要なもの

  • SwitchBot温湿度計(Bluetooth接続)
  • SwitchBot Hub Mini(クラウドAPI経由で取得するため)
  • スマートフォン(SwitchBotアプリを使用)
  • Windowsパソコン(Pythonをインストール可能なもの)
  • OBS Studio(インストール済)

手順一覧

  1. Pythonのインストール
  2. SwitchBot APIトークンの取得
  3. デバイスIDの取得
  4. Pythonスクリプトの準備
  5. ライブラリのインストール
  6. スクリプトの実行(バッチ化)
  7. OBSで温度表示の設定
  1. Pythonをインストール
  1. Python公式サイト:https://www.python.org/downloads/
  2. 「Download Python 3.x.x」をクリック
  3. インストーラーで「Add Python to PATH」にチェックを入れてから「Install Now」
  4. インストール後、コマンドプロンプト(cmd)で次のコマンドを実行して確認:

python --version

  1. SwitchBot APIトークンの取得
  1. スマホでSwitchBotアプリを開く
  2. 「プロフィール」→「設定」→「アプリバージョン」を10回タップで「開発者向けオプション」が表示
  3. 「APIトークンを表示」からトークンをコピー
  1. デバイスIDの取得
  1. 任意の場所にフォルダを作成(例:C:switchbot_obs)
  2. 以下のコードを get_devices.py という名前で保存:

import requests

import json

 

TOKEN = "YOUR_API_TOKEN"

 

headers = {

    "Authorization": TOKEN,

    "Content-Type": "application/json; charset=utf8"

}

 

response = requests.get("https://api.switch-bot.com/v1.0/devices", headers=headers)

data = response.json()

 

print(json.dumps(data, indent=2, ensure_ascii=False))

  1. コマンドプロンプトで保存したフォルダへ移動:

cd C:switchbot_obs

  1. 実行:

python get_devices.py

  1. 表示された deviceId と deviceName をメモする(deviceType が Meter)
  1. 温度取得スクリプトを作成
  1. 同じフォルダに get_temperature.py を作成し、以下を記入:

import requests

import time

 

TOKEN = "YOUR_API_TOKEN"

DEVICE_ID = "YOUR_DEVICE_ID"

 

headers = {

    "Authorization": TOKEN,

    "Content-Type": "application/json; charset=utf8"

}

 

def get_status():

    url = f"https://api.switch-bot.com/v1.0/devices/{DEVICE_ID}/status"

    response = requests.get(url, headers=headers)

    data = response.json()

    if data["message"] == "success":

        temp = data["body"].get("temperature")

        humi = data["body"].get("humidity")

        return f"現在の気温:{temp:.1f} ℃
現在の湿度:{humi:.1f} %"

    else:

        return "エラー"

while True:

    temperature = get_temperature()

    with open("temperature.txt", "w", encoding="utf-8") as f:

        f.write(f"現在の気温:{temperature}")

    time.sleep(180)  # 3分ごとに更新

  1. ライブラリ(requests)のインストール

pip install requests

または、うまくいかない場合:

py -m pip install requests

  1. スクリプトの実行方法(バッチ化)
  1. C:switchbot_obs フォルダ内に start_temperature.bat というファイルを作成
  2. 以下の内容を記述:

 

@echo off

chcp 65001 > nul

cd /d C:switchbot_obs

echo [SwitchBot温度取得スクリプト] 起動中...

echo.

python get_temperature.py

echo.

echo スクリプトが終了しました。何かキーを押してください。

  1. pauseこのファイルをダブルクリックするだけでスクリプトが実行されるようになります

※ pause は実行後にウィンドウが自動で閉じないようにするための設定です。

  1. OBSで温度表示を設定
  1. OBSを起動
  2. ソース → 「+」 → 「テキスト (GDI+)」
  3. 「テキストをファイルから読み込む」にチェック
  4. 「参照」で C:switchbot_obs emperature.txt を指定
  5. 表示フォント・サイズ・位置を調整

よくある質問と対処法

Q1. 温度が5〜10分たっても変わらない?

  • アプリでも温度が変わっていなければ、センサが検知していない(温度を変えてみる)
  • アプリでは変化しているが表示されない → API側の更新が遅延している可能性(少し待つ)
  • スクリプトが正しく動作しているか確認(temperature.txtの更新時刻など)

Q2. requests が使えないと出る

pip install requests

で解決。pipが使えないときは py -m pip install requests

Q3. OBSで表示されない

  • ファイルパスが間違っている
  • テキストソースで「ファイルから読み込む」にチェックが入っていない

参考

  • SwitchBot公式APIドキュメント:https://github.com/OpenWonderLabs/SwitchBotAPI
  • Python公式サイト:https://www.python.org/
  • OBS Studio:https://obsproject.com/ja

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA