Matter
Matter のドライバーの手引き。Bluetooth によるローカルの Fabric へのコミッショニング、機器をペアリングの流れ、ノードの識別、クラスターのタグ。
Matter のドライバーは、Matter over Thread の現場設備を読みます。Matter の標準に適合したスマートなセンサー、プラグ、照明などの機器です。Ganter Lab は、自分のローカルの Fabric を持つ Matter のコントローラーとしてふるまいます。機器ごとに 1 度、このコンピューターの Bluetooth Low Energy でコミッショニングし、お使いの既存の Thread ネットワークの資格情報を渡します。それ以降は、その Thread の Border Router を通じて、そのネットワーク越しに話します。
これは、ふだんの設定の順序をひっくり返します。Matter の機器はホストとポートから始まりません。ペアリングの儀式から始まり、そのあとで保存されるのは、コミッショニングしたノードの安定した識別だけです。
ペアリングの前に必要なものです。
- このコンピューターの Bluetooth Low Energy のアダプター。オンになっていて、Windows が Ganter Lab にその使用を許していること。
- Border Router のある既存の Thread ネットワークと、その完全な有効な運用データセット。Ganter Lab は機器をお使いのネットワークに参加させます。そのネットワークの資格情報を作り出すことはできません。
- 機器かその箱に印刷されている、その機器のセットアップコード。そして、ペアリングモードにした機器。
機器をペアリングの流れ
Matter のドライバーでは、ほかのドライバーが機器を追加を出す場所に、コマンドバーが機器をペアリングを出します。押すと、3 つの項目を持つ入力欄が開きます。
| 項目 | 意味 | 形式 | 既定 |
|---|---|---|---|
| 機器の名前 | その機器が Connector で持つ、編集できる名前。 | 自由記述 | Matter 機器 |
| Matter のセットアップコード | 正式な手入力用のペアリングのコード、または QR の内容の全体。伏せ字で入力し、表示に切り替える操作が付きます。 | 11 桁か 21 桁の手入力用コード(ダッシュと空白は無視し、検査数字は検証します)、または MT: で始まる QR の内容の全体。Bluetooth によるコミッショニングを名乗らない QR の内容は拒否され、予約された、あるいは範囲の外のパスコードも同じです。 |
空 |
| Thread の運用データセット | お使いの Thread ネットワークの完全な有効なデータセットで、ネットワーク管理者か Border Router から受け取ります。伏せ字で入力し、表示に切り替える操作が付きます。 | 16 進数の文字列(空白と hex: の接頭辞は許します)。復号したあとで最大 254 バイトです。データセットは完全でなければなりません。Active Timestamp、Channel、Channel Mask、Extended PAN ID、Mesh-Local Prefix、Network Key、Network Name、PAN ID、PSKc、Security Policy がすべてそろっている必要があり、欠けているものや壊れているデータセットは、足りない要素を名指しして拒否されます。 |
空 |
機器をペアリングは、3 つの項目がすべて埋まるまで押せません。ペアリングが走っているあいだ、入力欄はその段階を伝えます。確認(コードとデータセットを調べます)、探索(Bluetooth で機器を探します)、ペアリング(セットアップコードで認証します)、Thread に参加(ネットワークの設定を送り、機器が Thread ネットワークに現れるのを待ちます)、保存(コミッショニングしたノードをローカルの Fabric に記録します)。
中止は、物理的な機器がまだ変更されていないあいだ使えます。コミッショニングが機器を変えてしまったあとは、ボタンが Ganter Lab は安全に終了しようとしていると伝え、半分だけコミッショニングされたノードを放り出すのではなく、記録を最後まで進めます。ペアリングは一度に 1 つです。1 つが進んでいるあいだの 2 つ目の試みは拒否されます。
秘密は決して保存されません。セットアップコードと Thread のデータセットは、入力欄が開いているあいだだけそこにあります。ペアリングが終わったとき、失敗したとき、中止したときに消され、そのどれも構成には書かれません。保存されるのは、そのノードの識別だけです。
ペアリングが失敗したとき、メッセージは原因を述べます。コードかデータセットが正しくない、Bluetooth がない、あるいはオフになっている、Windows が Bluetooth へのアクセスを拒否した、一致する機器が見つからない、機器がセットアップコードを拒否した、機器はコミッショニングされたのに Thread ネットワークに現れない、のいずれかです。間違ったセットアップコードはそう名指しされるので、答えは、印刷されたコードを読み直し、機器をペアリングモードに戻すことです。
現場設備がすでにコミッショニングされたあとで失敗が届いたときは、メッセージがそう述べ、ノード ID を見せます。そのノードは Fabric に残るので、ネットワークに現れたあとで機器検出から追加できます。その場合、機器をリセットしないでください。何も保存されなかったと述べるメッセージだけが、現場設備に手が付いていないという意味です。
ノードの識別
ペアリングした機器は、その現場設備の安定した 64 ビットのノード ID に結び付いています。ノード ID は「接続」のカードに、機器の状態の隣に、16 桁の 16 進数として読み取り専用で出ます。編集できる表示名は変えてかまいませんが、ノード ID は変えられません。保存した識別をもう読めない機器は、その場所に再ペアリングが必要と出します。
識別がノード ID であるおかげで、Matter の機器は互いに独立した接続の状態を保ちます。1 つのノードを無効にしても、削除しても、失っても、ほかのノードが使えなくなることはありません。そして機器を削除しても、手放すのはその安全なセッションの占有だけで、現場設備がローカルの Fabric から消えることはありません。
機器検出
Matter のドライバーの機器検出は、このアプリケーションのローカルの Fabric にすでにコミッショニングされているノードを並べます。ですから、機器を削除したノードや、機器を作らずにペアリングだけが終わったノードは、新しい儀式なしに戻せます。すでに設定されているノード ID にはその印が付き、開くが既存の機器へ案内します。機器検出の候補が運ぶのはノードの識別で、セットアップの秘密は運びません。機器検出の全体の流れは Connector のページにあります。
タグ
Matter のタグに、自由記述のアドレスの項目はありません。タグの名前が、読み取るクラスターの名前です。名前は、Matter の仕様がつづるとおりのクラスターの名前と一致しなければなりません。空白と記号を含めてそのままで、大文字と小文字は問いません。On/Off、Level Control、Temperature Measurement のようになります。名前がアドレスなので、コロンは入れられません。パネルはそれを拒否し、そう述べます。どのクラスターも持たない名前は、その知らないクラスターを名指ししたエラーとして読まれます。値はタグに宣言したデータ型に変換され、宣言した型で表せない値も、代替の数値ではなくエラーとして読まれます。
数値の項目が 2 つ、そのクラスターを機器のどこで読むのかを述べます。機器は制御できる出力 1 つにつき 1 つのエンドポイントを、1 から数えて公開するので、2 系統のランプや電源タップは、タグ 1 つにつきエンドポイント 1 つとして読みます。エンドポイント 0 はノードそのものです。属性は、そのクラスターのどの値を読むかで、0 はそのクラスター自身の値、つまりほとんどのタグが欲しいものです。
| 項目 | 意味 | 受け付ける値 | 既定 |
|---|---|---|---|
| タグの名前 | タグに名前を付け、ノードから読む Matter のクラスターを選びます。コロンは使えません。 | つづりどおりのクラスターの名前。たとえば On/Off |
Tag 1 |
| 出力(エンドポイント) | このタグが読む、機器のどの出力か。 | 0 以上。1 が最初の制御できる出力です | 1 |
| 属性 | このタグが読む、そのクラスターのどの属性か。 | 0 以上。0 がそのクラスター自身の値です | 0 |
| データ型 | 値を公開するときの OPC UA の型。 | Boolean、Int32、UInt32、Float、Double、String | Float |
| 読み出し周期 | その属性をどれくらいの間隔で読むか。タグごとで、書いていないタグには機器の既定(1000 ms)が効きます。 | ミリ秒 | 機器の既定 |
Matter のタグは読み取り専用です。アクセスの項目に書き込める選択肢はありませんし、属性への書き込みはランタイムが拒否します。Matter の機器を変えること(たとえばオンにすること)は Matter のコマンドで、タグの書き込みはそれを表しません。