はじめに
ども、とみた(@_tamitom)です。
今回は、在宅ネタです。家で仕事をしていると、オンライン会議中でも家族はお構いなしに話しかけてくるのでw
会議中はONAIRライトを点灯させて、会議してますアピールをします!!!
今更だけど、web会議開始時にONAIRライトが点灯、終了時に消灯する仕組みを作った。
— print("とみー") (@_tamitom) 2020年6月1日
ブログは後で書こう。#PowerAutomate #IFTTT pic.twitter.com/mQ1C4sjQiA
ガチャつき方
まず、必要なモノです。
- ONAIRライト
これが無いと始まりません、意外に安いかなと思いました。
- スマートプラグ
ONAIRライトのON/OFFはスマートプラグで制御します。今回はIFTTTでON/OFFの命令を出すので、IFTTT対応のモノが必要です。SwitchBotの製品にしました。
※実は、自宅にいくつかスマートプラグあったのですが、Smart Lifeはいつの間にかIFTTTとの連携ができなくなってました(泣)
- Power Automate
Microsoftのサービスの一つで、アプリやサービス間の連携を自動化させるツールです。Office365の他サービスとの連携が容易です。今回は会議情報をOutlookの予定表から取ってくるので、必要です。
- IFTTT
Power Automateと同じ部類のサービスです。Power Automateでは、スマートプラグの制御ができないため、IFTTTも使用します。
早速設定をしてきます。
スマートプラグの初期設定や、各種サービスのアカウントは取得できている前提で進めていきます。
スマートプラグとONAIRライトは接続しておきます。
まず、IFTTTからです。
Create画面で、"This"をクリックします。
webhookを検索して、クリックします。
triggerは一つしかありませんので、"Receive a web request をクリックします。
"Event Name"に任意の名称を付け、"Create trigger"をクリックします。
続いて、"That"をクリックします。
SwitchBotを検索して、クリックします。
※他のIFTTT対応スマートプラグを使う場合は、それを選択してください。
"Turn Plug on"をクリックします。
初回はログインなどが必要になります。
ログインが済んでいれば、自分のスマートプラグが表示されるはずですので、"Create action"をクリックします。
"Finish"をクリックします。
次の画面でWebHookのロゴをクリックします。
"Documentation"をクリックします。
WebHookで動作させるためのURIなどが表示されます。
先程設定したEvent Nameを入力し、"Test It"をクリックします。
設定が正しければ、スマートプラグがONになり、ONAIRライトが点灯するはずです。
続いて、スマートプラグをOFFにするレシピも作っておきます。
上記手順の繰り返しですが、変わる点は、WebHookのEvent Nameを変える(ONAIR_OFFなど)、SwitchBotの処理を"Turn Plug Off"にする所です。
続いて、Power Automate の設定をしていきます。
作成したフローは以下の通りです。
まず前半部分ですが、"予定しているイベントが間もなく開始されるとき"というトリガーを使用します。ルックアヘッドタイムでイベントの何分前に開始するか指定できます。
続いての変数部分は、ONAIRライトを点灯する時間=会議時間としたいので、その計算をしています。
ticks関数を使って、会議の開始時刻、終了時刻をナノ秒に変換します。その後、終了時刻から開始時刻を引いて、秒に直しています。
具体的な式は、
後半部分は、IFTTTのWebHookへPOSTする処理となります。
まず、ONAIRライトを点灯させます。IFTTTで確認したURIを入力します。
その後、前半部分で計算した会議時間を待ち時間とします。
最後に、ONAIRライトを消灯させるためのPOSTをします。
これで完成です!!
終わりに
結構簡単にいけるかなぁと思ってたんですが、会議時間を取得する部分は結構悩みました。予定表情報に入ってないのかよ、、、とか、世の中にはDateDiff関数という便利な関数があるらしいのですが、PowerAutomateでは使えない、、、とか。色々調べて、ticks関数に辿り付きました。
なんとかできた!
が、、、運用してみたところ、連続したイベントが入っているとON/OFFのタイミングが前後してしまい、上手く動かない事があるので、どこかに待ち時間を入れるなど、まだ改善が必要です(泣)
〆