コマンドの入力と送信

完了

ラボの概要

Dynamics 365 の Connected Field Service ソリューションでは、IoT 対応デバイスをリモートで監視し、稼動時間、デバイス統計情報、異常などを追跡する機能が提供されます。 IoT デバイスによって異常または例外が通知されると、その情報は、通知として Connected Field Service に送信されます。 通知がキャプチャされると、Dynamics 365 内から IoT デバイス コマンドを使用して IoT デバイスをリモートで管理および対話することができます。 柔軟性を高めるために、コマンド定義とプロパティ定義を使用して、これらのコマンドに設定されたデータを簡単に設定できます。

このハンズオン ラボの目的は、Connected Field Service でのコマンド定義とプロパティ定義の作成と定義を紹介することです。 また、Dynamics 365 機能を使ってコマンドを送信するプロセスを自動化する方法について説明します。

シナリオ

あなたは、スマート ホーム デバイスの販売とサービスを行っている配管と暖房関連の会社に勤務しているものとします。 サービス対象のデバイスの多くはスマート デバイスであるため、これらのデバイスからの情報をリモートでキャプチャして、その設備のサービスに役立てることができます。 組織では、設備のサービスを行うときに使用されプロセスを含むいくつかのシナリオが定義されています。 これらのプロセスは、次のような複数の要因によって変わる可能性があります。

  • サービスを必要とするデバイスの種類

  • 検出された問題の重要度

  • デバイスの経過期間

  • デバイスの場所

  • 特定のデバイスで動作するリソースの利用可能性

上記の項目は、組織が設備の保守プロセスを決定するために使用する要因のほんの一部のみを表します。

最近、多数のスマート サーモスタット デバイスがインストールされました。 これらのデバイスは、一貫した温度と湿度を維持することが重要な場合に、領域内の温度と湿度の読み取り値を追跡するのに便利です。 以前より多くの情報を使用できるようになったため、これらのデバイスによって報告された問題を処理および解決するための新しいプロセスを作成する必要があります。 最初に注目する領域は、温度関連の問題に使用するプロセスの自動化です。

組織では、次のプロセスを実装することを予定しています。

  • デバイスで 70 度を上回る温度が検出された場合、Connected Field Service 環境内でアラートが通知されます。

  • 温度が 70 度から 85 度の範囲である場合、デバイスをリモート リセットして問題が解決したかどうかを確認する、コマンドが送信されます。

組織では、技術者によるコマンド作成とパラメーター修正を可能な限り簡単にすることを望んでいます。 このようなスマート サーモスタット デバイスに共通のコマンドとプロパティのいくつかを事前定義することを希望しています。

事前に定義する 2 つのコマンドは次のとおりです。

  • 通知:
{"CommandName":"Notification","Parameters":{"Message":"Technician has been dispatched"}}
  • 設定した値:
{"CommandName":"Set Values","Parameters":{"Reading":{"Temperature":"30","Humidity":"30"}}}

演習 1: コマンドとプロパティを定義する

タスク 1: デバイス カテゴリを作成する

  1. Power Apps に移動し、Connected Field Service が構成された正しい環境にいることを確認します。

  2. [アプリ] を選択し、Connected Field Service アプリケーションをクリックして開きます。

  3. サイトマップの設定領域に切り替えます。

  4. デバイス カテゴリを選択し、+ 新規をクリックします。

  5. 名前温度と入力し、保存をクリックします。

  6. + 新規をもう一度クリックします。

  7. 名前湿度と入力し、保存をクリックします。

タスク 2: プロパティの定義を作成する

  1. サイトマップからプロパティ定義を選択し、+ 新規をクリックします。

  2. プロパティ定義を次のように構成します。

    • 名前: メッセージ

    • 型: 文字列

    • 編集可能: はい

    • 表示: はい

    • 追加プロパティ:

      • 既定値: 技術者が派遣されました。
  3. メッセージ プロパティ定義を保存して閉じます

  4. + 新規ボタンをクリックします。

  5. プロパティ定義を次のように構成します。

    • 名前: 読み取り

    • 型: オブジェクト

  6. 読み取り値プロパティ定義を保存して閉じます

  7. + 新規ボタンをクリックします。

  8. プロパティ定義を次のように構成します。

    • 名前: 温度

    • 型: 整数

    • 親プロパティ: 読み取り

    • 編集可能: はい

    • 表示: はい

    • 追加プロパティ:

      • MinValue: 1

      • MaxValue: 120

      • 既定: 65

  9. 温度プロパティ定義を保存して閉じます

  10. + 新規をもう一度クリックします。

  11. プロパティ定義を次のように構成します。

    • 名前: 湿度

    • 型: 整数

    • 親プロパティ: 読み取り

    • 編集可能: はい

    • 表示: はい

    • 追加プロパティ:

      • MinValue: 1

      • MaxValue: 100

      • 既定: 40

  12. 湿度プロパティ定義を保存して閉じます

  13. 完成したプロパティ定義は次の図のようになります。

    完成したプロパティ定義のスクリーンショット。

タスク 3: コマンドの定義を作成する

  1. コマンド定義を選択し、+ 新規をクリックします。

  2. コマンド定義を次のように構成します。

    1. 名前: 通知
  3. 通知コマンド定義を保存して、開いたままにしておきます。 これは、[プロパティ定義] サブグリッドも有効にします。

  4. 既存の IoT デバイス カテゴリの追加をクリックします。

  5. [レコードの検索] で、温度と湿度の両方のカテゴリを選択します。

  6. 追加をクリックします。

  7. 既存の IoT プロパティ定義の追加をクリックします。

  8. メッセージを選択し、追加をクリックします。

  9. 完成した通知コマンド定義は次の図のようになります。

    完成した通知コマンド定義のスクリーンショット。

  10. + 新規ボタンをクリックします。

  11. コマンド定義を次のように構成します。

    • 名前: 値の設定
  12. 値の設定コマンド定義を保存して、開いたままにしておきます。

  13. 既存の IoT デバイス カテゴリの追加をクリックします。

  14. [レコードの検索] で、温度湿度の両方のカテゴリを選択します。

  15. 追加をクリックします。

  16. 既存の IoT プロパティ定義の追加をクリックします。

  17. 読み取りを選択し、追加をクリックします。

  18. 完成した値の設定コマンド定義は次の図のようになります。

    完成した値の設定コマンド定義のスクリーンショット。

演習 2: 定義を使用してコマンドを設定する

タスク 1: シミュレーターにアタッチする (省略可能)

ユニット 3 の演習で既にシミュレーターを開いている場合、直接タスク 2 にスキップできます。 それ以外の場合は、次の手順に従ってシミュレーターにアタッチします。

  1. Web ブラウザーで新しいタブを選択し、Azure portal に移動します。 求められた場合は、Azure にサインインします。 使用しているアカウントに関連付けられた Azure サブスクリプションが必要です。

  2. リソース グループを選択します。

  3. Connected Field Service で使用しているリソース グループを開き、シミュレーターを選択します。

  4. シミュレーターの URL をクリックして、サーモスタット シミュレーターを開きます。 シミュレーターが新しいタブで開きます。

  5. シミュレーターで、接続をクリックします。

  6. Azure サブスクリプションに戻り、シミュレーターの App Service 画面を閉じます。

  7. IoT ハブを開きます。

  8. IoT ハブ名を強調表示にして、それをコピーします。

  9. シミュレーター画面に戻り、IoT ハブ名ホスト フィールドに貼り付けます。

  10. Azure サブスクリプションに戻り、共有アクセス ポリシーを選択します。

  11. iothubowner ポリシーを開き、主キーをコピーします。

  12. シミュレーター画面に戻り、主キーキー フィールドに貼り付けます。

  13. 接続ボタンをクリックします。 シミュレーターが接続され、使用準備ができています。

タスク 2: シミュレーターを使用して通知を生成し対話する

  1. シミュレーターが開かれている状態で、更新ボタンをクリックして登録されたすべてのデバイスを使用できるようにします。

  2. デバイスの選択ドロップダウンで、smt-9876 デバイスを選択します。 [更新] ボタンの横に緑色の点が表示され、数秒後、情報の送信が開始されます。

  3. 温度スライダー75 に設定して、温度ステータスが送信されたメッセージ ウィンドウに登録されるまで待ちます。

  4. Connected Field Service が読み込まれているブラウザー タブに切り替えます。

  5. Connected Field Service サイトマップ領域に切り替えます。

  6. IoT 通知を選択します。

  7. 温度 75 度はしきい値の 70 を上回っていることを示す通知を開きます。

  8. コマンド バーで、コマンドの送信をクリックします。

  9. 詳細をクリックします。

  10. 名前デバイスの値の設定と入力します。

  11. 送信するメッセージで、コマンドの横にある検索フィールドをクリックし、値の設定コマンドを選択します。

  12. メッセージは事前に定義されている温度湿度のプロパティを使用して表示されます。

    1. 温度60 に変更します

    2. 湿度35 に変更します

  13. コマンド バーで、送信して閉じるボタンをクリックします。

  14. シミュレーターに戻り、しばらくすると、デバイスの値がメッセージで定義された値に設定されます。 インターネット速度やその他の要因に応じて、この発生には数分かかる場合があります。

  15. デバイスの温度を 86 度に設定して、送信済みメッセージに登録されるまで待ちます。

  16. Connected Field Service が読み込まれているブラウザー タブに切り替えます。

  17. IoT 通知を選択します。

  18. 温度 86 度はしきい値の 70 を上回っていることを示す通知を開きます。

  19. コマンド バーで、コマンドの送信をクリックします。

  20. 詳細をクリックします。

  21. [名前] に技術者の派遣と入力します。

  22. 送信するメッセージで、コマンドの横にある検索フィールドをクリックし、値の設定コマンドを選択します。

  23. メッセージは事前に定義されているメッセージ プロパティを使用して表示されます。

  24. コマンド バーで、送信して閉じるボタンをクリックします。

  25. シミュレーターに戻り、しばらくすると、技術者が派遣されたことを示すメッセージが [受信したメッセージ] に表示されます。 インターネット速度やその他の要因に応じて、この発生には数分かかる場合があります。

  26. Connected Field Service 環境で "IOT 通知" の状態を確認すると、"処理中 -- コマンドの送信" に変わっているはずです。

演習 3: コマンドの送信を自動化する

タスク 1: 新しい IoT 通知プロセス ソリューションを作成する

  1. Power Apps に移動し、正しい環境にいることを確認します。

  2. ソリューションを選択し、新しいソリューションをクリックします。

  3. ソリューションに IoT 通知プロセスという名前を付けます。

  4. 発行元ドロップダウンをクリックし、+ 発行元を選択します。

  5. 発行元を次のように構成します。

    1. 表示名: Connected Field Service コース

    2. 接頭辞: cfs

  6. 保存して閉じるをクリックします。

  7. 発行元ドロップダウンをクリックし、作成した発行元を選択します。

  8. [バージョン] フィールドに、1.0.0.0 と入力します。 作成をクリックします。

  9. 作成した IoT 通知プロセス ソリューションをクリックして開きます。

  10. 既存の追加をクリックして、エンティティを選択します。

  11. IoT 通知を選択し、次へをクリックします。

  12. 必須コンポーネントは含めないでください。 追加をもう一度クリックします。

タスク 2: IoT 通知エンティティをカスタマイズする

  1. IoT 通知プロセス ソリューションをクリックして開きます。

  2. IoT 通知エンティティをクリックして開きます。

  3. フィールド タブを選択し、+ フィールドの追加をクリックします。

  4. 次に示す情報を入力します。

    1. 表示名: 読み取り

    2. データ型: 整数

    3. 最小値: 0

    4. 最大値: 250

  5. 完了をクリックします。

  6. + フィールドの追加をもう一度クリックします。

  7. 新しいフィールドを次のように構成します。

    1. 表示名: 顧客

    2. データ型: 検索

    3. ターゲット レコードの種類: 取引先企業

  8. 完了をクリックします。

  9. エンティティをクリックします。

  10. ソリューションを選択し、すべてのカスタマイズの公開をクリックします。

タスク 3: 値の設定コマンド メッセージをコピーする

  1. Power Apps に移動し、正しい環境にいることを確認します。

  2. アプリを選択し、Connected Field Service アプリケーションを開きます。

  3. コマンドを選択し、+ 新規をクリックします。

  4. 送信するメッセージセクションまで下にスクロールし、コマンドとして値の設定を選択します。

  5. JSON ビューに切り替えをクリックします。

  6. JSON をコピーし、メモ帳に保存します。

  7. コマンド レコードを保存せずに、Connected Field Service アプリケーションを閉じます。

タスク 4: 値を設定するフローを作成する

  1. Power Apps に移動し、正しい環境にいることを確認します。

  2. ソリューションを選択し、IoT 通知プロセス ソリューションをクリックして開きます。

  3. + 新規をクリックし、フローを選択します。 新しいウィンドウが開きます。

  4. フローの名前を通知フィールドの設定と値の設定に変更します。

  5. Microsoft Dataverse を検索して、Common Data Service (現在の環境) を選択します。 "現在の環境" を含むものを選択したことを確認します。

  6. レコードが作成、更新、または削除されたときを選択します。

  7. トリガー条件作成エンティティIoT 通知スコープ組織を選択します。

  8. メニュー ボタンをクリックして、名前の変更を選択します。

  9. 通知が作成されたときに名前を変更し、+ 新しいステップをクリックします。

  10. 解析を探し、JSON の解析を選択します。

  11. コンテンツ フィールドをクリックし、動的なコンテンツ ペインで通知データを選択します。

  12. スキーマ フィールドに、次の JSON スキーマを貼り付けます。

     {
         "type": "object",
         "properties": {
             "deviceid": {
                 "type": "string"
             },
             "readingtype": {
                 "type": "string"
             },
             "reading": {
                 "type": "integer"
             },
             "eventtoken": {
                 "type": "string"
             },
             "threshold": {
                 "type": "integer"
             },
             "ruleoutput": {
                 "type": "string"
             },
             "time": {
                 "type": "string"
             }
         }
     }
    
  13. ステップの名前を ParseAlertDate に変更し、+ 新しいステップをクリックします。

  14. レコードの更新を検索して、レコードの更新 (現在の環境) を選択します。"現在の環境" を含むものを選択したことを確認します。

  15. ステップの名前を顧客資産の取得に変更します。

  16. エンティティ名顧客資産を選択します。

  17. 品目の識別子フィールドをクリックし、DynamicContent ペインで顧客資産 (値) を選択します。

  18. + 新しいステップをクリックします。

  19. レコードの更新を探して、レコードの更新 (現在の環境) を選択します。 "現在の環境" を含むものを選択したことを確認します。

  20. ステップの名前を通知を更新するに変更します。

  21. エンティティ名IoT 通知を選択し、レコード識別子フィールドをクリックして、動的なコンテンツ ペインから IoT 通知を選択します。

  22. 詳細オプションを表示するをクリックします。

  23. 顧客 (取引先企業)フィールドをクリックし、accounts() と入力します。

  24. () の間にカーソルを置き、動的なコンテンツから取引先企業 (値) を選択します。

  25. 読み取りフィールドをクリックし、動的なコンテンツから JSON の解析ステップの reading を選択します。

  26. 詳細オプションを非表示にします。

  27. + 新しいステップをクリックします。

  28. 条件を選択します。

  29. 値の選択フィールドをクリックし、通知を更新するステップから読み取りを選択します。

  30. 次の値以上を選択します。

  31. 71 と入力し、+ 追加をクリックして、行の追加を選択します。

  32. 値の選択フィールドをクリックし、動的なコンテンツの通知を更新するステップから読み取りを選択します。

  33. 次の値以下を選択します。

  34. 85 と入力します。

  35. 条件は次の図のようになります。

    71以上85未満の読み取りの条件のスクリーンショット。

  36. はい分岐に移動し、アクションの追加をクリックします。

  37. 新しいレコードの作成を探し、新しいレコードの作成 (現在の環境) を選択します。 "現在の環境" を含むものを選択したことを確認します。

  38. ステップの名前を値の設定コマンドの送信に変更します。

  39. エンティティ名IoT デバイス コマンドを選択し、名前フィールドをクリックして、動的なコンテンツの通知が作成されたときアクションから説明を選択します。

  40. 名前デバイスの値の設定を追加し、詳細オプションの表示をクリックします。

  41. 顧客資産フィールドをクリックし、msdyn_customerassets() と入力します。

  42. () の間にカーソルを置き、動的なコンテンツの通知が作成されたときアクションから顧客資産 (値) を選択します。

  43. デバイスフィールドをクリックし、msdyn_iotdevices() と入力します。

  44. () の間にカーソルを置き、動的なコンテンツの通知が作成されたときアクションからデバイス (値) を選択します。

  45. 上位通知フィールドをクリックし、msdyn_iotalerts() と入力します。

  46. () の間にカーソルを置き、動的なコンテンツの通知を更新するアクションから IoT 通知を選択します。

  47. デバイス ID フィールドを選択し、動的なコンテンツ ペインの通知が作成されたときアクションからデバイス ID を選択します。

  48. 値の設定コマンドからコピーした JSON を、メッセージ フィールドに貼り付けます。

     {"CommandName":"Set Values","Parameters":{"Reading":{"Temperature":65,"Humidity":40}}}
    
  49. 詳細オプションを表示しないをクリックします。

  50. アクションの追加をクリックします。

  51. レコードの更新を探して、レコードの更新 (現在の環境) を選択します。"現在の環境" を含むものを選択したことを確認します。

  52. ステップの名前を通知を非アクティブ化するに変更します。

  53. エンティティ名IoT 通知を選択します。

  54. レコード識別子フィールドをクリックし、動的なコンテンツ ペインの通知を更新するアクションから IoT 通知を選択します。

  55. 詳細オプションを表示するをクリックします。

  56. 状態非アクティブに設定し、詳細オプションを非表示にします。

  57. フローは次の図のようになります。

    前の手順で作成したフローのスクリーンショット。

  58. 保存をクリックします。

タスク 5: プロセスをテストする

  1. シミュレーターを含む Web ブラウザー タブに戻ります。 接続されていない場合は、同じプロセスに従ってシミュレーターを開き、IoT Hub への接続を作成します。

  2. 温度80 度に設定して、送信済みメッセージ ウィンドウに登録されるまで待ちます。

    温度が 71 度から 85 度の間にあったため、デバイスに値を設定するために、コマンドをデバイスに送信します。 再起動コマンドをデバイスに送信するのに数分かかることがあります。

  3. Connected Field Service が読み込まれているブラウザー タブに切り替えます。

  4. IoT 通知を選択します。

  5. ビューを非アクティブな IoT 通知に切り替えます。

  6. 温度 80 度はしきい値の 70 を上回っていることを示す通知を開きます。

  7. コマンド タブを選択します。デバイスに送信されたコマンドが表示されます。