デバイスとAzure IoT Central間の通信をのぞき見するツール

---

**通信を見る記事一覧**

* [デバイスとAzure IoT Hub間の通信をのぞき見するツール](https://qiita.com/matsujirushi/items/ff55ee0ff134fdae72be)
* デバイスとAzure IoT Central間の通信をのぞき見するツール
* [デバイスとAzure Event Hub間の通信をのぞき見するツール](https://qiita.com/matsujirushi/items/8755050d361ab426922e)

---

<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/861cb726-6106-cb30-9636-9734af8cf7bc.png">

[デバイスとAzure IoT Hub間の通信をのぞき見するツール](https://qiita.com/matsujirushi/items/ff55ee0ff134fdae72be)のように、デバイスからAzure IoT Centralへ送信しているメッセージを知る方法を探しました。

# 使用するデバイス

Wio TerminalとGrove-SCD30を使った、CO2モニターです。
Azureデバイス認定のIoT Plug and Playを取得しているので、Azure IoT Centralへの接続も楽々です。（詳しくは[こちら](https://devicecatalog.azure.com/devices/91a752e1-2780-45bd-8129-684ef859d224)のGet started guideをご参照ください。）
> どうでもいい情報ですが、スタンドはアクリル2mmをレーザー加工して、アクリル曲げヒーターを使って手曲げした一品モノです。工作は楽しいですね♪

<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/b6bd5e94-d3b2-8063-a5f2-a1428e814534.png">

このデバイスからは、CO2濃度と温度、湿度、WBGTが送られてきます。
Azure IoT CentralのOverviewタブで、グラフで推移を確認することができます。

<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/eb8107cd-f7ec-5dc8-022f-ef9e4bbe053d.png">

# Raw dataタブ

Overviewタブの隣に、Raw dataタブというのがあって、これをクリックするとデバイスから送られてくる生データを確認することができます。

<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/bba7e111-6ad8-2bb6-f805-5972061a5efa.png">

ちょーお手軽簡単。

# Azure CLI

先のRaw dataタブほど手軽ではありませんが、Azure CLIでメッセージを確認することもできます。
若干、操作が多いです。

1. Azureアカウントでログイン
1. サブスクリプションのIDを取得
1. サブスクリプションを選択
1. Azure IoT CentralアプリケーションのIDを取得
1. Azure IoT Centralアプリケーションのメッセージ（イベント）をモニタリング

具体的なコマンドはこちらです。

```:コマンド
az login
az account list
az account set -s <subscription id>
az iot central app list
az iot central diagnostics monitor-events --app-id <application id>
```

<img width="600" alt="image.gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/39a24db7-4a93-747b-37dc-75e03d723768.gif">

**サブスクリプションID**や**Azure IoT CentralアプリケーションID**をコピペするので、まぁ手軽ではないです。
Raw dataタブと比べると、
* 連続したメッセージを確認して、別ツール（Excelとか？）にコピーしたい
* 複数デバイスのメッセージを確認したい
の場合に、便利そうです。

ちなみに、`-d`オプションでデバイスを限定することも可能です。

```:コマンド
az iot central diagnostics monitor-events --app-id <application id> -d <device id>
```

`--properties all`オプションを使うと、もう少し内部的な項目も知ることができます。

```:コマンド
az iot central diagnostics monitor-events --app-id <application id> --properties all
```

<img width="600" alt="image.gif" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/ae4249d1-bfed-8e07-000c-83d463c7ae8a.gif">

# 参考リンク

## コマンドリファレンス

* [az login @ Microsoft Docs](https://docs.microsoft.com/ja-jp/cli/azure/reference-index?view=azure-cli-latest&WT.mc_id=AZ-MVP-5002686#az_login)
* [az account @ Microsoft Docs](https://docs.microsoft.com/ja-jp/cli/azure/account?view=azure-cli-latest&WT.mc_id=AZ-MVP-5002686)
* [az iot central app @ Microsoft Docs](https://docs.microsoft.com/ja-jp/cli/azure/iot/central/app?view=azure-cli-latest&WT.mc_id=AZ-MVP-5002686)
* [az iot central diagnostics @ Microsoft Docs](https://docs.microsoft.com/ja-jp/cli/azure/iot/central/diagnostics?view=azure-cli-latest&WT.mc_id=AZ-MVP-5002686)