Androidスマホ + Taskerで、SwitchBot(スイッチボット)をNFCタグのタッチで操作する方法。API連携の手順をコード付きで解説し、公式のSwitchBotタグを使うアプリ標準の書き込み手順も紹介する。

本記事はプロモーションを含みます。
「寝る前に毎回アプリを開いて照明をオフにするのが面倒…」 「外出時にリビングの電気を消し忘れた!」
そんな悩みは NFCタグ1枚で解決できる。

この記事では、NFCタグとTaskerアプリを使って、SwitchBot(スイッチボット)デバイスをタッチ操作できる仕組みを構築する。実際に筆者が検証した手順を、コピペで使えるコード付きで徹底解説する。
使う機器は次の 2 つ (ほかに NFC 対応の Android スマホと Tasker アプリを使う)。
YFFSFDC NFCタグ NTAG215 コイン型 30枚セット
SwitchBot プラグミニ 2個入り
iPhoneを使っている場合や、Taskerを使わずに済ませたい場合は、公式の「SwitchBotタグ」とSwitchBotアプリだけで設定する方法を後半で紹介している。
本記事の手順を実行すると、以下のような自動化が可能になる。

SwitchBot APIを使用するには、専用トークンが必要。
| 開発者オプションの表示 | トークンの取得 |
|---|---|
![]() | ![]() |
重要: トークンは第三者に絶対に教えない。全デバイスを操作できる権限がある。
SwitchBotアプリで作成済みの「シーン」を、API経由で実行する。まず、シーンIDを調べる。
# トークンを環境変数に設定(XXXの部分を自分のトークンに置き換え)
token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# シーン一覧を取得
curl -fSsL \
-X GET \
-H "Content-Type: application/json" \
-H "Authorization: $token" \
"https://api.switch-bot.com/v1.1/scenes" | jq .
{
"statusCode": 100,
"body": [
{
"sceneId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"sceneName": "オフィスでんきOFF"
},
{
"sceneId": "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY",
"sceneName": "オフィスでんきON"
},
{
"sceneId": "ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ",
"sceneName": "オフィス棚"
}
],
"message": "success"
}
ポイント: sceneId をメモしておく。次のステップで使用する。
APIが正しく動作するか、事前に確認する。
# sceneIdを指定してシーン実行(IDは自分のものに置き換え)
curl -fSsL \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: $token" \
"https://api.switch-bot.com/v1.1/scenes/ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ/execute" | jq .
{
"statusCode": 100,
"body": {},
"message": "success"
}
トラブルシューティング:
statusCode: 190 → トークンが無効。再取得するstatusCode: 404 → シーンIDが間違っているいよいよTaskerアプリでNFCタッチ時の動作を設定する。
req と入力| 項目 | 設定値 |
|---|---|
| 方式 | POST |
| URL | https://api.switch-bot.com/v1.1/scenes/【sceneId】/execute |
| ヘッダー | Authorization: 【取得したトークン】Content-Type: application/json |
ヘッダー入力例:
Authorization: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Content-Type: application/json
nfc と入力 → NFCタグ を選択
設定完了後、実際にNFCタグをスマホにかざしてテストする。
| 問題 | 原因 | 解決策 |
|---|---|---|
| タッチしても反応しない | NFCが無効化されている | 設定 → 接続 → NFCをONに |
| エラーメッセージが出る | ヘッダー形式が間違っている | : の後にスペースを入れる |
| 一部デバイスだけ動かない | シーン設定が不完全 | SwitchBotアプリでシーン再設定 |
使用製品: SwitchBot プラグミニ + デスクライト シーン名: “就寝モード” NFCタグ設置場所: ベッドヘッドボード
効果:
使用製品: SwitchBot プラグミニ × 2(デスクライト、棚ライト) シーン名: “オフィス棚” NFCタグ設置場所: デスクマット下
効果:
TaskerやAPIを使わず、SwitchBotアプリだけでNFCタグに操作を書き込むこともできる。iPhone(XS以降)でも使えるのがこの方法の利点。
公式サポートの手順(ロックの例)は次のとおり。ほかのデバイスも、それぞれの設定画面から書き込む。
筆者が試したところ、次の問題が起きた。
公式の使用注意事項には「NTAG216のタグを使うこと」「タグの残り容量が足りないと書き込めない」とある。本記事で紹介しているNTAG215(504バイト)のタグは、アプリの書き込みには容量が足りない可能性がある。反応については、スマホの機種やケースで感度が変わる、充電中は使えないことがある、とも書かれている。
アプリの書き込み機能を使うなら、NTAG216(888バイト)の公式タグを選ぶのが確実。
SwitchBot タグ (NFCタグ NTAG216) 3枚入り
上のエラーに当たったことに加え、TaskerならタグのIDだけで動くため書き込みが要らず、1つのタグで複数のシーンを続けて実行するといった柔軟な設定もできる。Androidを使っているなら、Tasker + API連携の方が確実で柔軟性も高いと判断した。
A: 残念ながら、Taskerアプリが存在しないため実現不可。iOS版の代替案として「ショートカット」アプリが考えられるが、バックグラウンドでのNFC起動に制限がある。iPhone(XS以降)なら、SwitchBotアプリ標準の書き込み機能を使う方法がある。
A: 書き込み回数は約10万回程度。1日10回使用しても約27年持つ。
A: 公式ドキュメント上、明記されていないが、再発行するまで有効と思われる。セキュリティ上、定期的な更新を推奨する。
A: Taskerタスク内で複数のHTTPリクエストアクションを連続で設定すれば可能。
A: スマホの機種にもよるが、通常1cm以内。金属面に貼ると読み取り精度が低下する。
本記事では、SwitchBot × NFCタグ × Taskerの組み合わせで、タッチ操作によるスマートホーム自動化を実現した。
NFCタグとスマートプラグを足すだけでここまでできるのは、コスパ最強である。
YFFSFDC NFCタグ NTAG215 コイン型 30枚セット
SwitchBot プラグミニ 2個入り
他のスマートホーム自動化記事も随時更新中。