この記事は #RPAコミュニティアドベントカレンダー2021 by #RPALT の12月20日分の記事として執筆しています。
#はじめに
みなさんこんにちは。ソントレーゾの藤野です。
現在は、市民開発者として Power Platform を活用した業務アプリケーションの開発の仕事をしています。
Power Platform に出会ってもうすぐ2年になります。
こちらの記事で年末のひとり自由研究の成果を発表したいと思います!
#今回の自動化のテーマ
ズバリ 家の家電とスイッチ操作を楽にする です!
寒いのが苦手、超ズボラな私はとにかくこまめに動くのがイヤ!
この後ろ向きな気持ちをエネルギーにして前向きに作りたいと思います。
今までいつもこんな事を思っていました。
「朝起きて家中の暖房器具のスイッチを押して回るのがめんどくさい」
「子供を保育園に送迎しているタイミングで家の暖房器具のスイッチをいれておき、帰宅直後にちょうどいい暖かさの部屋で仕事をスタートしたい。」
「電気代節約のために楽してこまめに家電のオンオフをしたい」
そして、私には息子が2人いるのですが、なんでこーも家中のスイッチを入れっぱなしにするのか
「キッチンの電気消しといてー」
「トイレの電気消しといてー」
は多分トータル1,000回は言ってると思います。(本当に)
そんな時、偶然このYoutubeを見ました。
へえ!NFCタグっていうのがあるのか!
Amazonでよく見るSwitchBot でスマートホーム化したら楽だなー。
SwitchBot(スイッチボット)| Japan公式サイト
SwitchBotのスマホアプリやiphoneのショートカットアプリ、IFFFTアプリでやればいいのか。
と同時にふと「これ Power Platform 使えばできるかも?」と思いました。
で、さっそくググりました。
最初は Power Apps + NFCタグで。
すると、NFCタグを読み込みする関数があるんですね!知りませんでした。
Power Apps の ReadNFC 関数
ピッ!ってタグを読み込んで一発で操作できたら楽だなーと。
(NFCタグはまた研究します)
次に、Power Platform + SwitchBot で色々ググりました。
Webの大海原に広がるあれやこれやの情報を探しているうちにたどり着いたのは
弊社 ソントレーゾ CTOのスライドでした。
Power Automate を使ってローコードで電子機器を操作しよう!
はい、灯台下暗しです。とても近いところにありました!
・SwitchBotはAPIが提供されていること
・カスタムコネクタを作成してPower Platform で活用できること
がわかりました。
大ヒントです。早速やってみました。
#準備編
##AmazonブラックフライデーセールでSwitchBot製品を購入
待ってたよ、このセール。ポチッとお得に買いました。
NFCタグも買ってみました。今後のために。
NFCタグはもっと安いタグがたくさんあります。
###アカウント登録
最初にアカウント登録を行います。
###開発者登録をしてトークンを取得
####1.アプリバージョンを10回程タップ
####2.開発者向けオプションが表示されるのでタップして、トークンを取得します。
取得したトークンは後にカスタムコネクタ作成、Power Platform の接続設定で使います。
###各製品のセットアップ
購入したSwitchBot各製品の初期設定を行います。
##APIドキュメントを熟読
OpenWonderLabs/SwitchBotAPI: SwitchBot API Documents
ガン見しました。
英語うおおおー!となったら翻訳ツールに突っ込めば大丈夫という勝手な安心感。
DeepL
いつもこのツールを使っています。
#Postmanを使ってAPIをテスト
Postman
今回は4つのアクションを作りました。
1.デバイスIDの取得(IDわからないと作れないから)
2.SwitchBotの操作(床暖房をオンにする)
3.Plugをオンにする(パネルヒーターをオンにする)
4.プラグをオフにする(パネルヒーターをオフにする)
です。
##Postman設定内容の概要
・デバイスIDの取得で各製品のデバイスIDを確認する
・アクションを作成する際にGETなのかPOSTなのか、、、 確認
・ホストドメインの確認
・ヘッダーに入れる情報
Authorizationの値は、SwitchBotアプリで取得したトークンの値を入れます。
APIのドキュメントを見ながら設定していきます。
##PostmanからJSONファイルを書き出す
カスタムコネクタ作成用にPostmanで作成したコレクションをエクスポートします。
##PostmanからエクスポートしたJSONファイルをインポート
インポートしただけでは設定は完了しませんでした。
↑の赤枠で囲った部分など、各種ヘッダーやパラメータの値が入っていない場合は入力をして設定を行います。
##テスト
APIキーの値は、SwitchBotアプリで取得したトークンの値を入れます。
#Power Automate のフロー作成
ここまで来ればほぼ完成です。
今回は2本フローを作成しました。
1.ボタントリガー→床暖房オン(SwitchBot)→パネルヒーターオン(Plug)
ボタンをトリガーにして、カスタムから先程作成したカスタムコネクタのアクションを選択します。
#完成
さっそくうまくいくか試してみます。
1.ボタントリガー→床暖房オン(SwitchBot)→パネルヒーターオン(Plug)
やってみたらボタンが落下したので、子供に持ってもらいましたPower Automate から SwichBotを使って床暖房をオン#PowerAutomate #SwitchBot #PowerPlatform pic.twitter.com/Qfc8r13kGu
— すみこ (@sumiko_web) December 19, 2021
Power Automate から プラグをオン#PowerAutomate #SwitchBot #PowerPlatform pic.twitter.com/nnZo5UerHl
— すみこ (@sumiko_web) December 19, 2021
動画は2つに分けて撮影しましたが、実際にはこの2つの操作は一度に実行され、大体5秒程で完了しました。
2.ボタントリガー→パネルヒーターオフ(Plug)
Power Automate から プラグをオフ#PowerAutomate #SwitchBot #PowerPlatform pic.twitter.com/XNdxcvnb9N
— すみこ (@sumiko_web) December 19, 2021
できました!感動!
作成したカスタムコネクターとPower Automate のフローを使って実際に家にある物を操作している、という事が不思議でした。
#感想
APIの仕様確認とカスタムコネクタの作成に時間がかかりましたが、スマートホーム化に向けて夢が広がります。
次は、廊下の電気のオンオフ、照明のオンオフ、ハブを使ってリモコン操作を試してみようと思います。
SwitchBotはスマホアプリが提供されていますが、Power Platform を活用すれば業務で使えるソリューション開発の可能性が増えると感じました。
購入したNFCタグを使って日常生活や業務で使えるアプリを何か作ってみたいという来年に向けての目標もできたので引き続き研究したいと思います!