次の方法で共有


デバイス テンプレートを編集する

デバイス テンプレートには、デバイスが IoT Central とどのように対話するかを説明するモデルが含まれています。 このモデルでは、デバイスの機能と、IoT Central がデバイスと対話する方法を定義します。 デバイスはテレメトリとプロパティ値を IoT Central に送信でき、IoT Central はプロパティの更新とコマンドをデバイスに送信できます。 IoT Central では、モデルを使用して、ジョブ、ルール、エクスポートなどの IoT Central 機能との対話も定義します。

デバイス テンプレート内のモデルに対する変更は、接続されているデバイスを含め、アプリケーション全体に影響を与える可能性があります。 ルール、エクスポート、デバイス グループ、またはジョブで使用される機能を変更すると、予期しない動作が発生したり、まったく機能しなかったりする可能性があります。 たとえば、テンプレートからテレメトリ定義を削除する場合は、次のようになります。

  • IoT Central では、その値を解釈できなくなりました。 IoT Central では、デバイスの生データ ページに、 モデル化されていないデータ として解釈できないデバイス データ が表示されます。
  • IoT Central では、データのエクスポートに値が含まれなくなりました。

デバイス テンプレートの編集による意図しない結果を回避するために、この記事には、現在の開発ライフサイクル ステージに基づく推奨事項が含まれています。 一般に、開発ライフサイクルが早いほど、デバイス テンプレートの変更に対する耐性が高くなります。

デバイス テンプレートとデバイス テンプレートの作成方法の詳細については、「 デバイス テンプレートとは」 および 「Azure IoT Central アプリケーションでデバイス テンプレートを作成する」を参照してください。

IoT Central REST API を使用してデバイス テンプレートを管理する方法については、「IoT Central REST API を使用してデバイス テンプレートを管理する方法」を参照してください。

デバイス テンプレートを変更する

機能やインターフェイスをモデルに追加するなどの追加的な変更は、壊れない変更です。 開発ライフサイクルのどの段階でも、モデルに追加の変更を加えることができます。

破壊的変更には、モデルの一部の削除や、機能名またはスキーマの種類の変更が含まれます。 これらの変更により、ルール、エクスポート、ダッシュボードなどのアプリケーション機能がエラー メッセージを表示し、動作を停止する可能性があります。

初期のデバイス開発フェーズでは、モデルの設計とテストを行っている間に、デバイス モデルに直接変更を加える方が許容度が高くなります。 運用デバイスをデバイス テンプレートに接続する前に、デバイス テンプレートを直接編集できます。 IoT Central では、デバイス テンプレートを発行するときに、これらの変更がデバイスに自動的に適用されます。

運用デバイスをデバイス テンプレートにアタッチした後、デバイス テンプレートを編集する前に、変更の影響を評価します。 運用環境のデバイス テンプレートに破壊的変更を加えるべきではありません。 このような変更を行うには、デバイス テンプレートの新しいバージョンを作成します。 新しいデバイス テンプレートをテストし、スケジュールされたダウンタイムで運用デバイスを新しいテンプレートに移行します。

IoT Edge デバイス テンプレートを更新する

IoT Edge デバイスの場合、モデルは、デバイスで実行されている IoT Edge モジュールに対応するモジュールごとに機能をグループ化します。 配置マニフェストは、IoT Edge デバイスにインストールするモジュール、モジュールの構成方法、およびモジュールに含まれるプロパティを示す個別の JSON ドキュメントです。 配置マニフェストを変更する場合は、マニフェストに定義されているモジュールとプロパティを含むようにデバイス テンプレートを更新できます。

  1. デバイス テンプレートの [モジュール ] ノードに移動します。
  2. [ モジュールの概要 ] ページで、[ マニフェストからモジュールをインポートする] を選択します。
  3. 適切な配置マニフェストを選択し、[インポート] を選択 します

詳細については、 IoT Edge デバイスと IoT Central に関するページを参照してください。

アクションの編集と公開

次のアクションは、デバイス テンプレートを編集するときに役立ちます。

  • 保存します。 デバイス テンプレートの一部を変更すると、変更内容を保存すると、戻ることができる下書きが作成されます。 これらの変更は、接続されているデバイスにはまだ影響しません。 このテンプレートから作成されたデバイスでは、保存された変更を発行するまで、変更は反映されません。
  • 発行します。 デバイス テンプレートを発行すると、保存された変更が既存のデバイス インスタンスに適用されます。 新しく作成されたデバイス インスタンスでは、常に最新の発行済みテンプレートが使用されます。
  • テンプレートのバージョンを設定します。 デバイス テンプレートをバージョン管理すると、保存されたすべての最新の変更を含む新しいテンプレートが作成されます。 新しいバージョンに加えられた変更は、既存のデバイス インスタンスには影響しません。 詳細については、「 デバイス テンプレートのバージョン管理」を参照してください。
  • インターフェイスのバージョンを設定します。 インターフェイスをバージョン管理すると、保存されたすべての最新の機能を備えた新しいインターフェイスが作成されます。 テンプレート内の複数の場所でインターフェイスを再利用できます。 その再利用は、インターフェイスへの 1 つの参照に加えられた変更が、インターフェイスを使用するテンプレート内のすべての場所を変更する理由です。 インターフェイスのバージョンを変更すると、新しいバージョンが別のインターフェイスになったため、この動作が変わります。 詳細については、「 インターフェイスのバージョン管理」を参照してください。
  • デバイスを移行します。 デバイスを移行すると、デバイス インスタンスは 1 つのデバイス テンプレートから別のデバイス テンプレートにスワップされます。 デバイスの移行により、IoT Central が変更を処理している間に短時間が発生する可能性があります。 詳細については、「 バージョン間でデバイスを移行する」を参照してください。

バージョン番号

デバイス モデルとインターフェイスの両方にバージョン番号があります。 バージョン番号が異なると、モデルやインターフェイスは @id 値を共有しながら、更新履歴を提供できます。 バージョン番号は、テンプレートまたはインターフェイスのバージョン管理を選択した場合、または意図的にバージョン番号を変更した場合にのみインクリメントされます。 テンプレートまたはインターフェイスに大きな変更を加える場合は、バージョン番号を変更する必要があります。

次のスニペットは、サーモスタット デバイスのデバイス モデルを示しています。 デバイス モデルには 1 つのインターフェイスがあります。 [1] フィールドの末尾にバージョン番号 (@id) が表示されます。

{
  "@context": "dtmi:dtdl:context;2",
  "@id": "dtmi:com:example:Thermostat;1",
  "@type": "Interface",
  "displayName": "Thermostat",
  "description": "Reports current temperature and provides desired temperature control.",
  "contents": [
    // ...
  ]
}

IoT Central UI でこの情報を表示するには、デバイス テンプレート エディターで [ID の編集] を選択します。

インターフェイスの ID を表示してバージョン番号を表示する方法を示すスクリーンショット。

デバイス テンプレートのバージョン管理

デバイス テンプレートのバージョンを設定するには:

  1. [デバイス テンプレート] ページに移動します。
  2. バージョン化したいデバイステンプレートを選択してください。
  3. ページの上部にある [ バージョン ] を選択し、テンプレートに新しい名前を付けます。 IoT Central では、編集できる新しい名前が提案されます。
  4. を選択してを作成します。

これで、既存のデバイスにアタッチされていない一意の ID を持つ新しいテンプレートが作成されました。

インターフェイスのバージョン化

インターフェイスのバージョンを設定するには:

  1. [デバイス テンプレート] ページに移動します。
  2. 下書きモードのデバイス テンプレートを選択します。
  3. 編集やバージョン設定をしたい発行済みインターフェースを選択します。
  4. インターフェイス ページの上部にある [ バージョン ] を選択します。
  5. を選択してを作成します。

これで、一意の ID を持つ新しいインターフェイスを作成しましたが、以前のバージョンのインターフェイスと同期されません。

バージョン間でデバイスを移行する

デバイス テンプレートの複数のバージョンを作成できます。 時間の経過と同時に、これらのデバイス テンプレートを使用して複数のデバイスが接続されます。 デバイス テンプレートのあるバージョンから別のバージョンにデバイスを移行できます。 次の手順では、デバイスを移行する方法について説明します。

  1. [デバイス] ページに移動します。

  2. 別のバージョンに移行する必要があるデバイスを選択します。

  3. [ 移行] を選択します。

    デバイスの移行を開始するオプションを選択する方法を示すスクリーンショット。

  4. デバイスを移行するバージョンのデバイス テンプレートを選択し、[ 移行] を選択します。

ヒント

ジョブを使用して、デバイス グループ内のすべてのデバイスを新しいデバイス テンプレートに同時に移行できます。