ガチャつくブログ

IT系のお勉強のために、やってみたことをアウトプットしていきます。

MENU

Power Automate でガチャつく - 会議中はONAIRを点灯させて、終わったら消灯を自動化してみた -

f:id:tmt-tty:20200602225410p:plain

はじめに

ども、とみた(@_tamitom)です。

 

今回は、在宅ネタです。家で仕事をしていると、オンライン会議中でも家族はお構いなしに話しかけてくるのでw

会議中はONAIRライトを点灯させて、会議してますアピールをします!!!

 

ガチャつき方

まず、必要なモノです。

  • ONAIRライト
    これが無いと始まりません、意外に安いかなと思いました。

  • スマートプラグ
    ONAIRライトのON/OFFはスマートプラグで制御します。今回はIFTTTでON/OFFの命令を出すので、IFTTT対応のモノが必要です。SwitchBotの製品にしました。
    ※実は、自宅にいくつかスマートプラグあったのですが、Smart Lifeはいつの間にかIFTTTとの連携ができなくなってました(泣)

  • Power Automate
    Microsoftのサービスの一つで、アプリやサービス間の連携を自動化させるツールです。Office365の他サービスとの連携が容易です。今回は会議情報をOutlookの予定表から取ってくるので、必要です。

    docs.microsoft.com

  • IFTTT
    Power Automateと同じ部類のサービスです。Power Automateでは、スマートプラグの制御ができないため、IFTTTも使用します。

    ifttt.com

 

早速設定をしてきます。

スマートプラグの初期設定や、各種サービスのアカウントは取得できている前提で進めていきます。

スマートプラグとONAIRライトは接続しておきます。

 

まず、IFTTTからです。

Create画面で、"This"をクリックします。

f:id:tmt-tty:20200602220329p:plain

 

webhookを検索して、クリックします。

f:id:tmt-tty:20200602220404p:plain

 

triggerは一つしかありませんので、"Receive a web request をクリックします。

f:id:tmt-tty:20200602220449p:plain

 

"Event Name"に任意の名称を付け、"Create trigger"をクリックします。

f:id:tmt-tty:20200602220528p:plain

 

続いて、"That"をクリックします。

f:id:tmt-tty:20200602220702p:plain

SwitchBotを検索して、クリックします。

※他のIFTTT対応スマートプラグを使う場合は、それを選択してください。

f:id:tmt-tty:20200602220741p:plain

 

"Turn Plug on"をクリックします。

f:id:tmt-tty:20200602220840p:plain

 

初回はログインなどが必要になります。

ログインが済んでいれば、自分のスマートプラグが表示されるはずですので、"Create action"をクリックします。

f:id:tmt-tty:20200602220915p:plain

 

"Finish"をクリックします。

f:id:tmt-tty:20200602221020p:plain

 

次の画面でWebHookのロゴをクリックします。

f:id:tmt-tty:20200602221107p:plain

 

"Documentation"をクリックします。

f:id:tmt-tty:20200602221133p:plain

 

WebHookで動作させるためのURIなどが表示されます。

先程設定したEvent Nameを入力し、"Test It"をクリックします。

f:id:tmt-tty:20200602221156p:plain

設定が正しければ、スマートプラグがONになり、ONAIRライトが点灯するはずです。

 

続いて、スマートプラグをOFFにするレシピも作っておきます。

上記手順の繰り返しですが、変わる点は、WebHookのEvent Nameを変える(ONAIR_OFFなど)、SwitchBotの処理を"Turn Plug Off"にする所です。

 

続いて、Power Automate の設定をしていきます。

作成したフローは以下の通りです。

 

まず前半部分ですが、"予定しているイベントが間もなく開始されるとき"というトリガーを使用します。ルックアヘッドタイムでイベントの何分前に開始するか指定できます。

続いての変数部分は、ONAIRライトを点灯する時間=会議時間としたいので、その計算をしています。

ticks関数を使って、会議の開始時刻、終了時刻をナノ秒に変換します。その後、終了時刻から開始時刻を引いて、秒に直しています。

具体的な式は、

開始時刻の変換
ticks(triggerBody()?['start'])
 
終了時刻の変換
ticks(triggerBody()?['end'])
 
終了時刻-開始時刻/10000000
div(sub(variables('終了時刻変換'),variables('開始時刻変換')),10000000)

f:id:tmt-tty:20200602222213p:plain

 

後半部分は、IFTTTのWebHookへPOSTする処理となります。

まず、ONAIRライトを点灯させます。IFTTTで確認したURIを入力します。

その後、前半部分で計算した会議時間を待ち時間とします。

最後に、ONAIRライトを消灯させるためのPOSTをします。

f:id:tmt-tty:20200602223601p:plain


これで完成です!!

 

終わりに

結構簡単にいけるかなぁと思ってたんですが、会議時間を取得する部分は結構悩みました。予定表情報に入ってないのかよ、、、とか、世の中にはDateDiff関数という便利な関数があるらしいのですが、PowerAutomateでは使えない、、、とか。色々調べて、ticks関数に辿り付きました。

 

なんとかできた!

が、、、運用してみたところ、連続したイベントが入っているとON/OFFのタイミングが前後してしまい、上手く動かない事があるので、どこかに待ち時間を入れるなど、まだ改善が必要です(泣)

 

AWS でガチャつく - AWS Client VPNのログを可視化 -

f:id:tmt-tty:20200507210238p:plain

はじめに

ども、とみた(@_tamitom)です。

 

今回はAWSでガチャついてみたいと思います。

仕事では結構AWSをいじってるんですが、ブログにはあんまり書いてませんでした。

 

弊社でも絶賛テレワーク中なんですが、VPNのライセンス制限で同時接続数が少なかったり課題もあるので、AWS Client VPNを準備中です。

利用するからには、利用状況を把握したいので、その辺りのやり方を中心に。

 

AWS AppStreamなんかも使ってみたりしているので、興味のある方はこちらのnoteを。

※noteと、はてなブログの使い分けがわからず、情報が散在中(汗)

note.com

 

ガチャつき方

AWS Clietn VPNの構築方法については、割愛します。(イキナリ)

クラスメソッドさんのブログが非常に参考になりますので、そちらで!

dev.classmethod.jp

 

ただ、今回ログを分析するのでAWS Client VPN → CloudWatch Logsの設定は必要です。このあたりは、サーバーワークスさんのブログに記載があるので、そちらで!

blog.serverworks.co.jp

必要に応じて CloudWatch Logs のロググループ・ログストリームを選択します。(事前に作成が必要)

 

AWS Client VPN → CloudWatch Logsの設定が終わってる前提で、

ログストリームにはAWS Client VPNのログがたまっていると思います。

f:id:tmt-tty:20200507165600p:plain

 

このログから、必要な情報を抜いていきたいと思います。

自分の場合は、接続ユーザー名・接続開始時間・接続終了時間を取ります。

 

ログ > インサイト をクリックします。

f:id:tmt-tty:20200507165933p:plain

 

ロググループにAWS Client VPNのロググループを指定します。

指定するとログ内のフィールドが自動的に表示されます。

f:id:tmt-tty:20200507194523p:plain

 

後はクエリを書いて絞りこんでいきます。SQLを書ける人はなんて事無いと思いますが、私は全く書けません。が、自分が表示したいものだけに絞り込むぐらいはできました。

 

下記をクエリ入力欄に入れます。

 

fields username, `connection-start-time`, `connection-end-time`
| filter `connection-log-type` = "connection-reset"

クエリの説明ですが、まず、必要なフィールドを指定します。

ユーザー名(username)、接続開始時間(connection-start-time)、接続終了時間(connection-end-time)

また、connection-resetというconnection-log-typeがあれば足りるので、フィルターしています。

 

クエリの実行をクリックします。

該当するログが下部に表示されます。

※この時検索するログの期間は上部で指定できます。

f:id:tmt-tty:20200507203057p:plain

 

ログを絞りこめたので、”アクション"からcsvにエクスポートすれば、後は煮るなり焼くなり自由ですw

f:id:tmt-tty:20200507203346p:plain

 

自分はPowerBIに取り込んで、ユーザー毎の利用時間合計をとりあえず出してみるなどしてみました!

f:id:tmt-tty:20200507204520p:plain

 

まとめ

AWS AppStreamなんかは、ユーザー毎のセッション情報をS3に吐いてくれたりするので、サクッと可視化できちゃうんですが、サービスによってはそう簡単にいかなかったりするので、最初は困ってました..

CloudWatchでも色々できるんだなぁと、改めてAWSの奥の深さを実感。サービス、機能、多すぎ...

社内向けの仕組みも導入後にしっかりデータ見ていくことが必須になってきているので、データ収集、可視化は重要ですね。

PowerBIの方も中途半端なスキルなので、かっこいいダッシュボードが作れるようにしたい。

 

 

 

 

Pythonでガチャつく - ネットワーク機器にSSH -

f:id:tmt-tty:20200204230418p:plain

  • はじめに
  • ガチャつき方
  • まとめ

はじめに

ども、とみた(@_tamitom)です。

 

今回はPythonでガチャついてみたいと思います。

Pythonができる訳では無いのですが、、日経ネットワークの特集で『Pythonを使ってネットワーク自動運用』というインフラエンジニアが食い付く特集があったので、食い付いて見ました(笑)

 

時代はコード化&自動化なんですよね。

これを気に本気でPythonマスターになりたいと思いました。

 

今回は、Pythonを使って、ネットワーク機器(Cisco)にSSHでログインして、簡単なコマンドを実行する所までやってみたいと思います。

 

続きを読む

Google Home Mini で遊ぶ - 毎日定時に何ゴミの日か教えて頂く -

f:id:tmt-tty:20200101214326p:plain

  • はじめに
  • 材料
  • ガチャつき方
  • おわりに 

はじめに

あけおめ、ことよろ。

ガチャつく野郎2.0(@_tamitom)です。2020年、一発目の記事になります。

 

早速ですが、我が家の家事の分担上、自分はゴミ当番なのです。

最近、ゴミ回収スケジュールの変更があったこともあり、毎朝、「今日何のゴミだっけ...」と市のゴミ回収アプリを開いて調べる事が多くなり、煩わしさを感じています。

また、元々忘れがちな性格なので、そもそも出すのを忘れたり、特にハッピーマンデーなんかは土日の感覚でボケーッとしていると、、妻に「今日ゴミ出した?」とツッコまれ慌てて出すこともしばしば...

妻からも、「Google Home あるんだから毎朝言ってもらえば?活用しなよ」と言われる始末...

ということで、チャチャッと実装して忘れずにゴミだしできるようにしたい。

 

要件は、

「毎朝7:00に今日は何ゴミの日かGoogle Home Mini に教えて頂く」です。

 

結果から先に。こういう感じになります。


Google Home Mini - 何ゴミか通知 -

 

続きを読む

Power Virtual Agents でガチャつく - BOTをMicrosoft Teamsに住まわせる -

f:id:tmt-tty:20191220134358p:plain

  • はじめに
  • 用意するもの
  • ガチャつき方
    • Power Virtual Agentsの設定
    • Microsoft Teamsの設定
  • おわりに

はじめに

ども、ガチャつく野郎2.0(@_tamitom)です。

先日、Microsoft Ignite 2019 Power Virtual Agents というノーコードで開発できるボットが発表されました。

 

ボット好き(!?)としては、早速ガチャガチャしたく。

以前、hubotをSlackに住まわせたこともあるので、今回はPower Virtual AgentsをTeamsに住まわせてみます。

www.gachatsuku.com

 

続きを読む

exho flex + Motion Sensor でガチャつく - セットアップ編 -

f:id:tmt-tty:20191209000404p:plain

  • はじめに
  • ガチャつき方
  • 終わりに

はじめに

ども、ガチャつく野郎2.0(@_tamitom)です。

今回はAmazonのCyber Mondayでポチった、echo flex + Motion Sensor を使ってガチャガチャしてみたいと思います。

 

ちなみに、Cyber Monday のセール価格は以下の通りでした。

echo flex ¥2980¥1980

Motion Sencor ¥1780¥1580

 

そもそも、echo flexって何?(自分もCyber Mondayを見回っている中で発見し、初めて知りました^^;)というところですが、、、、公式ページには

プラグインスマートスピーカーのEcho Flexは、電源コンセントに差し込むだけ。即座に情報を得る、買いたいものをショッピングカートに追加する、天気を確認する、ハンズフリーで通話をする、スマート家電を操作するなど、音声を使って様々なことができます。

とあります。

echo Dot の簡易版で、USBポートが付いているので、スマホの充電はもちろん、公式アクセアサリのMotion Sensor、ナイトライトなどが使用可能といった感じです。

 

ナイトライトはこちらです。

 

続きを読む

Microsoft Teams でガチャつく - サーバーのDisk容量監視をサクッと -

f:id:tmt-tty:20191207153527p:plain

  • はじめに
  • ガチャつき方
  • 終わりに

はじめに

ども、ガチャつく野郎2.0(@_tamitom)です。

TeamsのIncoming Webhookを使用して、サーバーの監視通知をサクッと実装したいと思います。

Disk容量がしきい値(80%とか)を超えたらTeamsの特定のチャネルに投稿する様にします。

 

続きを読む

Flourish でガチャつく - かっちょいい動くグラフを作ってみる -

f:id:tmt-tty:20191206211609p:plain

  • はじめに
  • ガチャつき方
  • おわりに

はじめに

ども、ガチャつく野郎2.0(@_tamitom)です。

ずっと気になっていた、かっちょいい動くグラフが作れるサービスを見つけたので、使ってみました。

『Flourish』というサービスです。

 

チャンネル登録している、"Data Is Beautiful" というYoutuberの作るグラフがいつもかっちょいいなぁと思っていたのですが、やっと作れるサービスを見つけました。

www.youtube.com

 

さくっとこんな感じのものが作れます。

 

続きを読む

Microsoft Teams でガチャつく - AWSの利用料金を通知 -

f:id:tmt-tty:20191204001840p:plain

  • はじめに
  • ガチャつき方

はじめに

ども、ガチャつく野郎2.0(@_tamitom)です。

早速ですが、TeamsにAWSの利用料金を毎日に自動通知する仕組みを紹介したいと思います。

Slackへの通知は、ググると結構あるんですが、Teamsはほぼ無いので参考になると幸いです。

 

続きを読む

Power Automate (旧Microsoft Flow) でガチャつく - RPAとして使ってみる -

f:id:tmt-tty:20191203234007p:plain

  • はじめに
  • ガチャつき方

はじめに

久しぶりのブログ更新となります。。。。

今回は、RPA機能が追加されたMicrosoft Flow、、、

その名も『Power Automate』でガチャついてみたいと思います。

 

www.publickey1.jp

 

続きを読む