SwitchBot API を TypeScript で操作するサンプルプロジェクトです。照明・エアコンなどの赤外線リモートデバイスをコマンドラインから制御できます。
- デバイス一覧の取得(物理デバイス・赤外線リモートデバイス)
- 照明のオン/オフ
- エアコンのオン(温度・モード・風速指定)/オフ
npm install.env.example をコピーして .env を作成し、各値を設定します。
cp .env.example .env| 変数名 | 説明 |
|---|---|
SWITCHBOT_TOKEN |
SwitchBot APIトークン |
SWITCHBOT_SECRET |
SwitchBot シークレットキー |
LIGHT_DEVICE_ID |
操作する照明のデバイスID |
AC_DEVICE_ID |
操作するエアコンのデバイスID |
APIトークンとシークレットキーは SwitchBot アプリの「開発者向けオプション」から取得できます。
デバイスIDは npm run dev devices コマンドで確認できます。
# デバイス一覧を表示
npm run dev devices
# 照明をオン
npm run dev light-on
# 照明をオフ
npm run dev light-off
# エアコンをオン(冷房 26℃・風速自動)
npm run dev ac-on
# エアコンをオフ
npm run dev ac-offsrc/
index.ts - エントリーポイント(コマンド解析・処理)
switchbot.ts - SwitchBotClient クラス(API呼び出し)
auth.ts - HMAC-SHA256 署名による認証ヘッダー生成
- TypeScript 5.5+
- axios - HTTP クライアント
- dotenv - 環境変数管理
- ts-node - TypeScript 直接実行