Power Apps から Azure IoT Central 経由 で M5Stack デバイスにメッセージを送信する

この記事は、前回のこちらの記事
[M5Stack UiFlow x Azure IoT Central で簡単に双方向連携デバイスを作る方法](https://qiita.com/rnakamuramartiny/items/c448627406c9db041962)
の続きです。

Azure IoT Central は Microsoft のサービスですから、Power Platform との親和性も高いです。
実際、Power Automate を見てみると、非常に多くのアクションが用意されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/600beed5-a37d-2a6e-03d6-50c3393e158d.png)
※これでも一部

活用すると、こんなことができるようになります！
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">色々検証したけど、 <a href="https://twitter.com/hashtag/PowerApps?src=hash&amp;ref_src=twsrc%5Etfw">#PowerApps</a> から単体で <a href="https://twitter.com/hashtag/Azure?src=hash&amp;ref_src=twsrc%5Etfw">#Azure</a> IoT Central にコマンド発行するのは厳しいっぽいので、 <a href="https://twitter.com/hashtag/PowerAutomate?src=hash&amp;ref_src=twsrc%5Etfw">#PowerAutomate</a> 挟んだ方が圧倒的に楽。<br>ってのが分かった🤗<a href="https://twitter.com/hashtag/M5Stack?src=hash&amp;ref_src=twsrc%5Etfw">#M5Stack</a> <a href="https://twitter.com/hashtag/M5Paper?src=hash&amp;ref_src=twsrc%5Etfw">#M5Paper</a> <a href="https://t.co/GQi3Q8Lijj">pic.twitter.com/GQi3Q8Lijj</a></p>&mdash; りなたむ(Ryota)@ITの町医者👨‍⚕️ (@Rinatamu_ITDR) <a href="https://twitter.com/Rinatamu_ITDR/status/1720664126400450923?ref_src=twsrc%5Etfw">November 4, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

というわけで、Azure IoT Central で定義したコマンドを Power Apps、Power Automate から実行させ、M5Stack デバイス上に表示させる仕組みを作っていきたいと思います。

## 1. Power Automate

Power Apps にも、Azure IoT Central があるので、そこからでも飛ばせそうですが、IDを引っ張ったりするのがちょっと大変なので、Power Automate 経由にしたいと思います。

### 1.1. Power Apps トリガー

1. Power Apps V2 トリガーを選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/dd10bde2-1be7-8504-5c81-d12451e7b6f4.png)

2. 入力内容にテキストを追加する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/8ff9d232-d3c6-8d8b-1ad2-a36bee223d9f.png)

### 1.2. Azure IoT Central アクション

1. Azure IoT Central V3 の デバイスでコマンドを実行するを選択する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/a13ca8bf-c621-28bc-2c46-8434fbd26186.png)

2. アプリケーションとデバイスID、デバイステンプレートを入力する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/4919d811-219e-e404-132b-72ad737749b8.png)

3. デバイスコマンドを選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/3a719220-8abd-b873-6853-6cdd0956e36f.png)

4. 作成したコマンドの入力値が表示されるので、Power Apps トリガーのテキストを指定する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/ac5e6260-3879-8f80-e64b-83c500af4d37.png)

5. フローを保存する。

## 2. Power Apps

作成したフローを Power Apps と連携させます。

1. テキスト入力とボタンを設置する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/388e4cce-bae6-5cb6-1df1-ab2ac5946694.png)

2. 作成したフローを取り込む
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/04b4ac65-3898-a420-5dd0-2e089ef10871.png)

3. ボタンの OnSelect にて、テキストボックスのテキストを代入する形で関数を記載する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/5d1b78be-e1f5-5d42-7050-ddf3a1e2079e.png)

## 3. 完成形
実際に操作したのがこちらです
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/PowerApps?src=hash&amp;ref_src=twsrc%5Etfw">#PowerApps</a> から <a href="https://twitter.com/hashtag/Azure?src=hash&amp;ref_src=twsrc%5Etfw">#Azure</a> IoT Central 経由で、 <a href="https://twitter.com/hashtag/M5StickC?src=hash&amp;ref_src=twsrc%5Etfw">#M5StickC</a> にメッセージを連携。<br>驚くほど簡単にできます😁<a href="https://twitter.com/hashtag/M5Stack?src=hash&amp;ref_src=twsrc%5Etfw">#M5Stack</a> <a href="https://t.co/cBE2x4lkN1">pic.twitter.com/cBE2x4lkN1</a></p>&mdash; りなたむ(Ryota)@ITの町医者👨‍⚕️ (@Rinatamu_ITDR) <a href="https://twitter.com/Rinatamu_ITDR/status/1722638785547251912?ref_src=twsrc%5Etfw">November 9, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## 4. まとめ

一度連携部分を作ってしまえば、Power Apps,Power Automate との連動は非常に簡単でしたね！
これも一つの Fusion Team 開発と言ってよいかと思います😃
ぜひ、いろんなデバイスと組み合わせて、最高なアプリを作ってみてください😃