※当記事は、chillSAP 夏の自由研究2021 の8/1分の記事となります。
はじめに
今年で2回目の開催となるchillSAP夏の自由研究。
去年は、子供の見守りアプリを作りました。
これが割と好評&今でも運用中ということで、今年も何かIoTっぽいものを作ろうかなと。自由研究だし、動くもの楽しいし。
で、思い出したのが、SAP Inside Track 2021で登壇したときにお話ししたIoTのフローのこと。以下の資料の10ページ目〜参照。
(余談)去年はこんなこともやりました
目次
できたもの
作り方
今回は、ラズパイとかセンサーを一から組み合わせて~というのはせずに、市販のSwitchBotという製品を使いました。 実際に使ったのは、以下の3製品。
我が家で普段から使用しているものなのですが、こちらがAPI操作可能ということで今回はこれを使いました。
今回使ったのは、「温度計」「カーテン操作」「プラグ(コンセントON/OFF)」の3つ。スマホの専用アプリからの操作も簡単なので、スマートホーム的なものが好きな方におすすめの製品です(たまにセールやってます)。
※今回のNGワード「それ、SwitchBotのアプリでほとんどできるじゃん」
以下、作成手順となります
T-CD:STRUSTで証明書の設定
SwitchBotのAPIを調べる
Postmanでテスト
デバイスID取得
- リクエストメソッド:GET
- URL:"https://api.switch-bot.com/v1.0/devices"
- Header:トークンを設定(ピンク色のところ)。トークンはSwitchBotのアプリで確認できる
- Body:登録しているSwitchBotのデバイス情報が返ってくる。デバイスIDは水色のところ。
温度計から温度取得
- リクエストメソッド:GET
- URL:"https://api.switch-bot.com/v1.0/devices/<デバイスID(水色)>/status"
- Header:トークンを設定(ピンク色のところ)。
-
Body:temperatureが温度(黄色箇所)。30℃です。ちなみに湿度が52%。
扇風機のスイッチを入れる
- リクエストメソッド:POST
-
URL:"https://api.switch-bot.com/v1.0/devices/<デバイスID(水色)>/commands"
- Header:トークンを設定(ピンク色のところ)。Content-Typeは"application/json"(赤枠)
-
Body(黄枠):commandが"turnOn"。ここの設定値は公式参照
カーテンを閉める
- リクエストメソッド:POST
-
URL:"https://api.switch-bot.com/v1.0/devices/<デバイスID(水色)>/commands"
- Header:プラグと同じなので省略
-
Body(黄色箇所):commandが"turnOff"。 turnOffで閉める、turnOnで開ける
これでAPIの確認はおしまい
ABAP
- 温度を取得
- 取得した温度が、選択画面で入力した温度よりも低い場合は何もしない
- 取得した温度が、選択画面で入力した温度よりも高い場合はカーテンを閉めて扇風機を付ける
選択画面
取得した温度が、選択画面で入力した温度よりも低い場合
何もしない。

取得した温度が、選択画面で入力した温度よりも高い場合
「やること」で、ONになっている機器を操作します(API叩きます)
ソースコード(抜粋)