デバイスのデータモデル

Matter のデバイスには、明確に定義されたデータモデルがあります。 (DM): デバイスの機能の階層モデリングです。上部 デバイスがあります。

デバイスとエンドポイント

スマートフォンやホーム アシスタントなど、すべてのデバイスを構成するのは ノード1ノードは、組織内の一意の識別とアドレス指定が可能なリソースです。 機能全体としてユーザーが認識できる ネットワークを構築しますネットワークでの Matter はノードで開始および終了します。

ノードはエンドポイントの集合です。各エンドポイントには機能セットが含まれています。 たとえば、エンドポイントは照明機能に関連していますが、 もう 1 つはモーション検知に関連するもの、もう 1 つは次のようなユーティリティを扱うもの あります。

デバイス、ノード、エンドポイントの階層 <ph type="x-smartling-placeholder">
</ph> 図 1: デバイス、ノード、エンドポイント

ノードのロール

ノードのロールは、関連する動作のセットです。各ノードには 1 つ以上の できます。ノードのロールには、次のものが含まれます。

  • コミッショナー: 次を実行するノード。 コミッショニング
  • コントローラ: 1 つ以上のノードを制御できるノード。 たとえば、Google Home app (GHA)Google Assistant、および Google Nest Hub (2nd gen) です。一部 オン/オフライト スイッチ、コントローラを用意する なります。
  • 制御対象: 1 つ以上のノードによって制御できるノード。ほとんどのデバイスタイプはコントローラになりますが、オン / オフのライトスイッチなど、コントローラ ロールを持つデバイスタイプもあります。オン / オフライトスイッチは、コントローラのみにできます。管理対象にすることはできません。
  • OTA プロバイダ: OTA ソフトウェア アップデートを提供できるノード。
  • OTA リクエスタ: OTA ソフトウェア アップデートをリクエストできるノード。

クラスタ

エンドポイント内には、ノードは 1 つ以上のクラスタを持ちます。これらはもう一つの といった特定の機能をグループ化するため、デバイス階層の スマートプラグの場合はオン/オフ クラスタ、調光可能な場合はレベル コントロール クラスタ 作成します

1 つのノードに複数のエンドポイントがある場合も、それぞれが同じエンドポイントのインスタンスを 説明します。たとえば、照明器具は照明器具の独立した制御を 個々のソケットの制御が明らかになることもあります。

属性

最後のレベルには、属性があります。属性とは、ノードが保持する状態のことです。 たとえば、レベル制御クラスタの現在のレベル属性などです。属性 uint8、文字列、配列など、さまざまなデータ型として定義できます。

ノード、エンドポイント、属性、コマンドの階層
図 2: ノード、エンドポイント、属性、コマンド

コマンド

クラスタには、属性の他にコマンドもあります。コマンドは、アクションであり、 実行される可能性があります。Matter の次の DM と同等です。 呼び出すことができます。コマンドは動詞に似ています。たとえば、「ドアの鍵をかけて」 ドアロック クラスタ。コマンドによってレスポンスと結果が生成される場合があります。Matter では、そのようなレスポンスはコマンドとして定義され、逆方向に進みます。

イベント

最後に、クラスタにはイベントも含まれます。これは、過去の状態遷移の記録と考えることができます。属性は現在の状態を表しますが、イベントは過去のジャーナルであり、単調増加カウンタ、タイムスタンプ、優先度が含まれます。これにより、状態遷移のキャプチャや、モデルのパフォーマンスに 困難です。

完全なサンプル デバイス <ph type="x-smartling-placeholder">
</ph> 図 3: Matter の階層のサンプル デバイスのインタラクション モデル

エンドポイント 0 はユーティリティ クラスタ用に予約されています。ユーティリティ クラスタ エンドポイント上のサービス機能を包含する特定のクラスタです。たとえば、 検出、対処、診断、ソフトウェア アップデートなどです。一方、アプリケーション クラスタは、オン / オフや温度測定などのメイン アクションをサポートしています。

デバイスタイプ

デバイスとして含める必要があるクラスタの組み合わせ メーカーは新しいデバイスを計画しますか?

Matter の仕様では、デバイスに次の機能を実装する必要があります。 1 つ以上のデバイスタイプを拡張できます。デバイスタイプとは クラスタの最上位属性を定義する必須および省略可能なクラスタ の物理的なデバイス(調光可能ドアロック動画プレーヤーなど)へのアクセスが必要です。

デバイスタイプが Matter で指定されていない 本ドキュメントでは、デバイス Library にあります。同様に、すべてのアプリケーション クラスタがアプリケーション クラスタ ライブラリをご覧ください。これら 3 つのドキュメントは、 Connectivity Standards Alliance (Alliance) メンバー向けウェブサイト

デバイスタイプを実装する各エンドポイントは、そのデバイスタイプを定義する必須のクラスタを実装する必要があります。必須のクラスタに加えて、クラスタには エンドポイントは、1 つ以上のデバイスを含む追加のクラスタを実装できます。 タイプのオプションのクラスタ、またはデバイスタイプに含まれないクラスタ。

クライアントとサーバー

クラスタは、クライアント クラスタまたはサーバー クラスタのいずれかです。一方で、 サーバーはステートフルで、属性、イベント、コマンドを保持し、クライアントは ステートレスであり、その役割は、ユーザーとのインタラクションを開始することです。 実行し、以下を実行します。

  • リモート属性からの読み取りとリモート属性への書き込みを行います。
  • 読み取りです。
  • リモート コマンドの呼び出し

DM はノード内で階層的ですが、ノード間の関係は できません。Matter のノードに垂直方向がありません コントローラ/ペリフェラル、またはリーダー/フォロワーの関係です。反対に すべてのクラスタがサーバークライアントのいずれかになります。 したがって、異なるクラスタに関しては、1 つのノードがサーバークライアントの両方になる場合があります。 学びます。

たとえば、ノード Aノード B という 2 つのテーブルランプがあるとします。両方のノード オン/オフライト デバイスタイプを実装します。このデバイスタイプには、[On]/[Off] それぞれの物理的な光出力を制御するサーバークラスタ。

ただし、一般的なテーブルランプと同様に、物理デバイスにはローカルのオン / オフ スイッチ用のオン / オフ ライトスイッチ デバイスタイプも含まれます。このデバイス タイプには、サーバーを制御できるように、オン/オフ クライアント クラスタを実装する必要があります クラスタ。

ライトのオン/オフとライトスイッチの両方を実装するランプ <ph type="x-smartling-placeholder">
</ph> 図 4: クライアント クラスタとサーバー クラスタ

このサンプルでは、ノード A のオン/オフ クライアント クラスタが属性を変更しています。 ノード A とノード B のオン/オフ サーバー クラスタと、ノード B のクライアント クラスタはノード B 上のサーバー クラスタのみを変更します。

次のセクションでは、クライアント クラスタとサーバー クラスタの相互作用について詳しく説明します。 インタラクション モデル

記述子クラスタ

記述子クラスタ サーバーは、名前のとおり、イントロスペクションを提供します。 情報です。このオブジェクトは、Endpoint を記述し、次のものを列挙します。

  • サーバー クラスタ。
  • クライアント クラスタ。
  • デバイスタイプ。
  • パーツと呼ばれる追加のエンドポイント。

どのデバイスタイプにも記述子クラスタの実装が必要です。ルート デバイスタイプはエンドポイント 0 で定義されます。記述子クラスタを読み取ると、 クライアントは、使用可能なコンテナのツリー全体を エンドポイントを行い、該当するオペレーションを実行する。

コミッショナーまたは制御デバイス(電話やハブなど)は、 記述子クラスタで見つかった情報(ライト、スイッチ、 ポンプ、サーモスタットなど)と、その特定のインスタンスで実装される特定の機能 ユーザーに適切な UI を表示します。

サーバー クラスタ

ServerList 属性には、エンドポイント内のクラスタ サーバーが一覧表示されます。

クライアント クラスタ

ClientList 属性は、エンドポイント内のクラスタ クライアントを一覧表示します。

デバイスタイプリスト

DeviceTypeList 属性は、エンドポイントでサポートされているデバイスタイプと、それぞれのリビジョンのリストです。少なくとも 1 つのデバイスタイプを含める必要があります。

パーツリスト

PartsList には、このデバイスの実装に使用されるエンドポイントのリストが含まれています。 種類。

エンドポイント 0(ルートノード)の PartsList には、それ自体(エンドポイント 0)を除くデバイスのすべてのエンドポイントが含まれます。

通常、他のエンドポイントの PartsList は空です。たとえば、 温度センサーから温度測定サーバー クラスタが必須となり、 除外します

他のデバイスタイプは、複数のデバイスのツリー構造で構成されている場合があります。 タイプ インスタンス。たとえば、動画プレーヤーのデバイスタイプは、テレビ、動画プレーヤー、スピーカー、さまざまなコンテンツ アプリのデバイスタイプで構成でき、それぞれが異なるエンドポイントに配置できます。


  1. Matter の仕様は、デバイスが 必要があります。 たとえば、スマートフォンには複数のアプリがあり、各アプリが異なるノードである場合があります。この入門書の目的上、すべてのデバイスには、 実現します。ほとんどの実機はこれに従うと予想されます。 パターンです。