Matter

Référence du pilote Matter : les réseaux Wi-Fi et Thread que joignent les équipements, la mise en service par Bluetooth dans le Fabric local, le déroulement d'Appairer un équipement, l'identité de nœud, les tags qui viennent de l'équipement et ce que fait l'écriture de chacun.

Afficher en Markdown

Le pilote Matter lit des équipements Matter : capteurs intelligents, prises, luminaires et équipements semblables certifiés pour la norme Matter, qu'ils joignent le réseau par Wi-Fi ou par Thread. C'est un seul pilote pour les deux. Le réseau n'est que le chemin d'entrée : une fois qu'un équipement y est, Ganter Lab le lit de la même façon, par le réseau local.

Ganter Lab agit comme un contrôleur Matter avec son propre Fabric local : il met chaque équipement en service une fois par Bluetooth basse consommation sur cet ordinateur, lui remet les identifiants d'un réseau inscrit sur la carte Réseaux du pilote, et lui parle ensuite par le réseau local : par votre routeur pour un équipement Wi-Fi, par votre routeur de bordure Thread pour un équipement Thread.

Vous ne dites jamais à Ganter Lab si un équipement est Wi-Fi ou Thread : l'équipement le dit lui-même. Une fois la session Bluetooth ouverte, Ganter Lab lit dans l'équipement quel type de réseau il joint, avant d'y écrire quoi que ce soit, et s'arrête avec un message à part quand le réseau choisi est de l'autre type.

Cela inverse l'ordre habituel de mise en place. Un équipement Matter ne part pas d'un hôte et d'un port : il part d'une cérémonie d'appairage, et seule l'identité stable du nœud mis en service est enregistrée ensuite.

Ce qu'il vous faut avant l'appairage :

  • Un adaptateur Bluetooth basse consommation sur cet ordinateur, allumé, et Windows qui autorise Ganter Lab à l'employer.
  • Le réseau que l'équipement va joindre, inscrit sur la carte Réseaux : pour un équipement Wi-Fi, le nom du Wi-Fi et son mot de passe; pour un équipement Thread, un réseau Thread existant avec un routeur de bordure, et son jeu de données opérationnel actif complet. Ganter Lab joint les équipements à votre réseau; il ne peut pas en inventer les identifiants.
  • Le code d'installation de l'équipement, imprimé sur l'équipement ou son emballage, et l'équipement en mode appairage.

Réseaux

Le volet du pilote Matter porte une carte intitulée Réseaux : les réseaux Wi-Fi et Thread que joignent les équipements, un par ligne. Un réseau s'inscrit une fois, avant le premier équipement, et sert à tous les équipements appairés dedans : appairer une deuxième lampe sur le même Wi-Fi ne demande plus rien. La carte n'est dessinée que pour un rôle qui peut configurer le Connector, parce qu'elle garde les secrets des réseaux et ne sert qu'à l'appairage.

La tête de la carte porte ses commandes, dans cet ordre :

Commande Ce qu'elle fait Ce qu'elle ne fait pas
Ajouter un réseau Wi-Fi Ajoute un réseau Wi-Fi et le sélectionne. Quand cet ordinateur est connecté à un Wi-Fi dont le nom n'est pas encore inscrit, le nouveau réseau prend ce nom; sinon, il commence sans nom, et c'est vous qui l'écrivez. Windows ne remet que le nom, et seulement quand il laisse les applications connaître l'emplacement de cet ordinateur (Windows 11 demande cette autorisation); le mot de passe, c'est toujours vous qui le tapez. Elle ne lit pas le mot de passe dans Windows et ne vérifie pas que le réseau existe.
Ajouter un réseau Thread Ajoute un réseau Thread et le sélectionne, sous un nom provisoire (numéroté quand il est déjà pris) jusqu'à ce que vous lui donniez le vôtre, en attendant son jeu de données. Elle ne parle pas au routeur de bordure : Ganter Lab n'utilise que le jeu de données du réseau que le routeur de bordure a créé.
Retirer le réseau Retire le réseau sélectionné, après une confirmation qui le nomme et dit que les équipements déjà appairés ne sont pas touchés. Sans réseau sélectionné, elle reste dessinée et grisée, et son infobulle le dit. Elle ne touche pas aux équipements déjà appairés dans ce réseau : ils continuent de fonctionner et gardent son nom dans leur champ Réseau.

Le tableau montre, pour chaque réseau, son Nom, son Type de réseau (Réseau Wi-Fi ou Réseau Thread) et son État : Prêt pour l'appairage, ou ce qui manque encore au réseau. Un réseau dont le nom n'est pas encore écrit s'affiche Réseau sans nom.

Les champs du réseau sélectionné se modifient sur place, sous le tableau, et s'enregistrent d'eux-mêmes. Une valeur que les règles ci-dessous refusent n'est pas écrite, et le champ dit pourquoi.

Type Champ Ce que c'est Format
Wi-Fi Nom du Wi-Fi Le nom (SSID) remis à l'équipement, exactement comme le routeur le diffuse : les majuscules comptent. Chaque nom de Wi-Fi s'inscrit une fois. De 1 à 32 octets de texte (UTF-8).
Wi-Fi Mot de passe Le mot de passe du Wi-Fi remis à l'équipement. Vide pour un réseau ouvert; sinon de 8 à 63 caractères ASCII imprimables (une phrase de passe WPA), ou exactement 64 chiffres hexadécimaux (la clé brute).
Thread Nom Votre nom pour le réseau, pour le reconnaître à l'appairage et sur chaque équipement. Chaque nom de réseau Thread s'inscrit une fois. Texte libre.
Thread Jeu de données opérationnel Thread Le jeu de données actif complet de votre réseau Thread, remis par l'administrateur du réseau ou par son routeur de bordure. Home Assistant l'affiche; Alexa et Apple, non. Du texte hexadécimal (les espaces et un préfixe hex: sont tolérés), 254 octets au plus une fois décodé. Ce doit être le jeu de données complet : Active Timestamp, Channel, Channel Mask, Extended PAN ID, Mesh-Local Prefix, Network Key, Network Name, PAN ID, PSKc et Security Policy doivent tous être présents, et un jeu de données partiel ou malformé est refusé avec l'élément manquant nommé.

Deux choses décident si un équipement Wi-Fi peut être appairé, et la carte les dit toutes deux à côté des champs :

  • La plupart des équipements ne joignent que des réseaux 2,4 GHz. Un routeur qui diffuse un même nom en 2,4 GHz et en 5 GHz les sert; un réseau qui n'existe qu'en 5 GHz, non.
  • Cet ordinateur et les équipements doivent être sur le même réseau local. Un réseau invité, ou l'isolation des clients activée sur le routeur, empêche l'ordinateur de trouver les équipements une fois qu'ils ont joint le réseau.

Un réseau ne sert à l'appairage que tant que son secret respecte ces règles : un réseau Wi-Fi avec un nom et un mot de passe valides (vide compris), un réseau Thread avec un jeu de données valide.

Modifier un réseau change ce que le prochain appairage remet, jamais ce qu'un équipement a déjà reçu. Un équipement qui doit passer à un autre réseau, ou dont le routeur a reçu un nouveau mot de passe, est réinitialisé et appairé de nouveau.

Le déroulement d'Appairer un équipement

Sur le pilote Matter, la barre de commandes offre Appairer un équipement là où les autres pilotes offrent Ajouter un équipement, et l'entrée Matter du menu Nouveau… de la colonne aussi. Tant qu'aucun réseau ne sert à l'appairage, la commande reste dessinée et grisée, avec l'infobulle « Ajoutez d'abord le réseau que l'équipement doit rejoindre. » Sinon, elle ouvre un formulaire :

Champ Ce que c'est Format Par défaut
Nom de l'équipement Le nom modifiable que l'équipement portera dans le Connector. Texte libre Matter device
Code d'installation Matter Le code d'appairage manuel officiel, ou la charge utile QR complète. Saisi masqué, avec une commande pour le révéler. Un code manuel de 11 ou 21 chiffres (les tirets et les espaces sont ignorés; le chiffre de contrôle est vérifié), ou la charge utile QR complète commençant par MT:. Une charge utile QR qui n'annonce pas la mise en service par Bluetooth est refusée, comme le sont les mots de passe réservés ou hors plage. vide
Réseau Le réseau inscrit que l'équipement va joindre. Avec un seul réseau qui sert, le formulaire dit sur une ligne de quel réseau il s'agit et de quel type, sans rien à choisir; avec plusieurs, c'est une liste de choix. L'un des réseaux qui servent sur la carte Réseaux le seul, quand il n'y en a qu'un
Dossier de destination Seulement quand le Nouvel équipement d'un dossier a ouvert le formulaire : le dossier où l'équipement appairé est classé. Ouvert par Appairer un équipement, cette ligne n'existe pas et l'équipement reste au niveau propre du pilote. Lecture seule le dossier qui a ouvert le formulaire

Un dossier du pilote Matter propose Nouvel équipement (sur son tableau Équipements, dans son menu du clic droit et dans Nouveau… > Matter > <Dossier>). Il ouvre ce même formulaire, grisé de la même façon tant qu'aucun réseau ne sert, et l'équipement appairé est classé dans ce dossier.

Appairer un équipement dans le formulaire reste désactivé tant que le nom et le code d'installation ne sont pas remplis ou qu'aucun réseau ne sert. Pendant l'appairage, le formulaire rapporte son étape : Valider (vérification du code et du secret du réseau), Trouver (recherche de l'équipement par Bluetooth), Appairer (authentification avec le code d'installation et lecture du type de réseau que l'équipement joint), Rejoindre le réseau (envoi du réseau à l'équipement, puis recherche de l'équipement sur le réseau local jusqu'à ce qu'il réponde; la ligne d'état dit si ce réseau est Wi-Fi ou Thread), Enregistrer (ouverture de la session sécurisée avec l'équipement sur le réseau local, fin de sa mise en service et inscription du nœud dans le Fabric local).

Annuler est disponible tant que l'équipement physique n'a pas été changé; dès que la mise en service a modifié l'équipement, le bouton indique que Ganter Lab termine de façon sûre et le déroulement achève l'inscription au lieu d'abandonner un nœud à moitié mis en service. Un seul appairage tourne à la fois; une deuxième tentative pendant qu'un appairage est en cours est refusée.

Le nouvel équipement garde le nom du réseau qu'il a joint, affiché dans son champ Réseau. Appairer l'équipement suivant sur le même réseau ne demande que son nom et son code d'installation.

Quand l'appairage échoue

Si l'appairage échoue, le message énonce la cause et ce qu'il faut faire :

Cause Ce que cela veut dire L'équipement Que faire
Code d'installation invalide Le code n'est ni un code manuel officiel de 11 ou 21 chiffres, ni une charge utile QR MT: complète. Intact Relire le code imprimé.
Jeu de données Thread invalide Le jeu de données du réseau Thread choisi n'est pas complet et bien formé. Intact Recopier le jeu de données actif complet dans ce réseau, sur la carte Réseaux.
Nom ou mot de passe Wi-Fi invalide Le nom ou le mot de passe du réseau Wi-Fi choisi enfreint les règles de la carte Réseaux. Intact Le corriger sur la carte.
Bluetooth absent, désactivé ou refusé Cet ordinateur n'a pas d'adaptateur Bluetooth basse consommation utilisable, le Bluetooth est désactivé, ou Windows en a refusé l'accès à Ganter Lab. Intact Activer le Bluetooth, ou autoriser Ganter Lab à l'employer dans Windows, puis réessayer.
Aucun équipement correspondant trouvé Aucun équipement en mode appairage n'a répondu pour ce code d'installation. Intact Mettre l'équipement en mode appairage, le garder près de cet ordinateur et réessayer.
Code d'installation rejeté L'équipement a refusé le code. Intact Relire le code imprimé et remettre l'équipement en mode appairage.
L'équipement joint par Wi-Fi Le réseau choisi est Thread. Intact : il a été lu, et rien n'y a été écrit Inscrire le réseau Wi-Fi que l'équipement va joindre et appairer de nouveau en le choisissant.
L'équipement joint par Thread Le réseau choisi est Wi-Fi. Intact : il a été lu, et rien n'y a été écrit Inscrire le réseau Thread et appairer de nouveau en le choisissant.
L'équipement est filaire (Ethernet) L'appairage par Bluetooth ne sert pas un équipement filaire. Intact : il a été lu, et rien n'y a été écrit Ganter Lab ne peut pas appairer cet équipement.
L'équipement ne dit pas son réseau L'équipement n'annonce ni Wi-Fi, ni Thread, ni Ethernet. Intact : il a été lu, et rien n'y a été écrit Ganter Lab ne peut pas appairer cet équipement.
Réseau Wi-Fi introuvable L'équipement a répondu qu'il n'a trouvé aucun Wi-Fi de ce nom : une faute de frappe ou de majuscules, un réseau seulement en 5 GHz, ou un équipement hors de portée. Ne garde rien : il abandonne ce qu'il a reçu et revient en mode appairage. Pas d'identifiant de nœud. Corriger le nom sur la carte Réseaux, vérifier que le routeur le diffuse en 2,4 GHz, et appairer de nouveau.
Mot de passe Wi-Fi refusé L'équipement a répondu que le Wi-Fi a refusé le mot de passe. Ne garde rien : il abandonne ce qu'il a reçu et revient en mode appairage. Pas d'identifiant de nœud. Corriger le mot de passe sur la carte Réseaux et appairer de nouveau.
L'équipement n'a pas pu joindre le réseau L'équipement a répondu qu'il n'a pas pu joindre le réseau, pour une autre raison que les deux ci-dessus (en Thread, tout refus, y compris un réseau qu'il n'a pas trouvé). Ne garde rien : il abandonne ce qu'il a reçu et revient en mode appairage. Pas d'identifiant de nœud. Vérifier le réseau sur la carte Réseaux (en Thread, recopier le jeu de données actif en vigueur et vérifier que le routeur de bordure est allumé) et appairer de nouveau.
L'équipement n'a pas paru sur le réseau L'équipement n'a donné aucune réponse sur le réseau, ou n'a jamais paru sur le réseau local ensuite. Certains équipements quittent le Bluetooth pour joindre le réseau et ne peuvent pas répondre du tout. Mis en service : le message montre l'identifiant de nœud En Wi-Fi, vérifier que cet ordinateur et l'équipement sont sur le même réseau local, sans réseau invité ni isolation des clients entre eux; en Thread, que le routeur de bordure est allumé et joignable. Récupérer ensuite le nœud avec Découvrir.
La session sécurisée ne s'est pas ouverte L'équipement a joint le réseau et y a été trouvé, mais la session sécurisée avec lui, ou la fin de l'appairage par cette session, a échoué. Le journal technique indique l'étape et ce que l'équipement a répondu. Mis en service : le message montre l'identifiant de nœud Récupérer le nœud avec Découvrir. Si Découvrir le trouve sans valeurs alors que l'équipement est allumé, remettre l'équipement en mode appairage, puis l'appairer de nouveau.
Un autre appairage en cours Un seul appairage tourne à la fois. Intact Attendre qu'il finisse et réessayer.
Le Fabric local n'a pas pu être enregistré Ganter Lab n'a pas pu conserver le Fabric de façon sûre. Intact quand cela arrive avant le début de l'appairage; mis en service, avec l'identifiant de nœud, quand cela arrive après Régler le problème de stockage avant de réinitialiser quoi que ce soit.

Chaque fois qu'un échec arrive après que l'équipement a déjà été mis en service, le message le dit et montre l'identifiant de nœud : le nœud reste dans le Fabric et peut être ajouté plus tard avec Découvrir, une fois qu'il atteint le réseau. Ne réinitialisez pas l'équipement dans ce cas; seul un message qui dit que rien n'a été enregistré signifie que l'équipement a été laissé intact.

Un équipement qui répond qu'il n'a pas pu joindre le réseau est l'exception : il ne détient rien qui vaille d'être gardé. Ganter Lab met fin à l'appairage sur l'équipement, qui abandonne ce qu'il a reçu et revient aussitôt en mode appairage, et retire son nœud du Fabric; le message ne porte donc pas d'identifiant de nœud, et Découvrir ne liste jamais un nœud qui ne peut pas répondre. Corrigez le réseau et appairez de nouveau. Seul un équipement qui n'a donné aucune réponse garde son nœud, car on ne sait s'il a joint le réseau qu'au moment où il paraît sur le réseau local.

Ce qui est conservé

Quoi Où c'est gardé Comment
Le nom et le type d'un réseau La configuration de la station Tels qu'écrits.
Le mot de passe du Wi-Fi et le jeu de données opérationnel Thread La configuration de la station Protégés pour l'utilisateur Windows qui les a saisis, comme les mots de passe d'équipement : sous un autre compte Windows, ils se lisent vides et doivent être saisis de nouveau. Une sauvegarde les laisse derrière elle; l'export pour une autre machine les emporte, scellés avec son propre mot de passe.
Le code d'installation Nulle part Il n'existe que dans le formulaire pendant l'appairage, et il est effacé quand l'appairage finit, échoue ou est annulé.
Le réseau qu'un équipement a joint La configuration de l'équipement Son nom, affiché dans le champ Réseau de l'équipement.
L'identité de l'équipement La configuration de l'équipement et le Fabric local L'identifiant de nœud.

Le mot de passe du Wi-Fi et le jeu de données n'apparaissent jamais dans le journal technique, dans l'adresse d'un équipement ni dans sa Thing Description. Les réseaux et l'appairage ne sont pas offerts aux agents par le serveur MCP : l'appairage demande quelqu'un auprès de l'équipement, et les réseaux gardent des secrets.

L'identité d'un nœud

Un équipement appairé est lié à l'identifiant de nœud stable de 64 bits de l'équipement, montré en lecture seule dans sa carte Connexion sous forme de 16 chiffres hexadécimaux, à côté de l'état de l'équipement. Le nom affiché modifiable est à vous; l'identifiant de nœud ne l'est pas. Un équipement dont l'identité enregistrée ne peut plus être lue montre Appairage à refaire à sa place.

Le volet de l'équipement montre aussi un champ Réseau en lecture seule : le nom du réseau que l'équipement a joint lors de son appairage. Un équipement appairé par une version qui ne le gardait pas dit que rien n'a été enregistré. Le champ est une trace, pas un réglage : modifier ou retirer ce réseau sur la carte Réseaux ne change rien à l'équipement.

Comme l'identité est l'identifiant de nœud, les équipements Matter gardent un état de connexion indépendant : désactiver, supprimer ou perdre un nœud ne rend pas un autre indisponible, et supprimer un équipement ne libère que son usage de la session sécurisée, sans retirer l'équipement du Fabric local.

Découverte

Découvrir sur le pilote Matter liste les nœuds déjà mis en service dans le Fabric local de cette application et lit, sur chacun, les valeurs qu'il publie. Pour les lire, il ouvre une session sécurisée avec chaque nœud, si bien qu'un nœud absent du réseau reste listé, sans valeurs, une fois que sa session n'a pas pu s'ouvrir. Les candidats de la découverte portent l'identité du nœud et aucun secret de configuration. Le déroulement général de la découverte est décrit sur Découverte.

Le nœud Sa carte Ses verbes
N'a pas d'équipement ici : son équipement a été supprimé, ou son appairage s'est terminé sans en créer Les valeurs qu'il publie, chacune cochée Ajouter un équipement crée l'équipement avec les valeurs cochées comme tags, sans nouvelle cérémonie.
Est un équipement configuré, avec des valeurs qui n'ont pas encore de tag Marqué comme déjà configuré, avec le nombre de valeurs qu'il publie qui ne sont pas encore des tags, et ces valeurs cochées Ajouter les tags ajoute les valeurs cochées à cet équipement; Ouvrir l'ouvre.
Est un équipement configuré avec un tag pour chaque valeur « Déjà configuré, avec un tag pour chaque valeur que l'équipement publie. » Ouvrir l'ouvre.
Est un équipement configuré qui n'a signalé aucune valeur « Déjà configuré. L'équipement n'a signalé aucune valeur : relancez Découvrir une fois qu'il est en ligne. » Ouvrir l'ouvre.

Les valeurs d'un équipement configuré sont comparées à ses tags par sortie, cluster et attribut, jamais par nom : un tag que vous avez renommé compte toujours, et une valeur n'est jamais ajoutée deux fois.

La page de l'équipement lui-même offre la même chose sans la quitter : Découvrir les tags, dans l'en-tête de sa carte Tags, lit ce seul nœud et liste, cochées, les valeurs pour lesquelles il n'a pas encore de tag, avec Ajouter les tags (voir Découvrir les tags d'un équipement).

Tags

Les tags d'un équipement Matter viennent de l'équipement lui-même : personne ne saisit de cluster ni de numéro d'attribut pour eux. Un appairage qui réussit y mène directement. Le journal des actions indique « Équipement Matter « Éclairage de la cuisine » appairé. », la page s'ouvre sur le pilote Matter avec le nouvel équipement mis en évidence dans son tableau Équipements, et un balayage de ce seul équipement démarre aussitôt. L'équipement que l'appairage a créé apparaît dans Équipements découverts avec les valeurs qu'il publie, toutes cochées, et le balayage se termine par « Cochez les valeurs de « Éclairage de la cuisine » à créer comme tags, puis Ajouter les tags. » Décochez ce que vous ne voulez pas et appuyez sur Ajouter les tags; le journal des actions indique alors « 5 tags ajoutés à « Éclairage de la cuisine ». » Un équipement qui n'a pas encore répondu ne signale rien : « « Éclairage de la cuisine » n'a encore signalé aucune valeur. Relancez Découvrir une fois qu'il est en ligne. » La même carte revient à chaque Découvrir suivant, avec les valeurs pour lesquelles l'équipement n'a pas encore de tag.

Ajouter les tags n'est dessiné que pour un rôle qui a Configurer Connector. Il reste grisé, avec sa raison en infobulle, pendant qu'un balayage ou un appairage tourne, pendant que la station refuse les changements et tant que rien n'est coché (« Cochez au moins une valeur à ajouter. »). Une valeur dont l'équipement lit déjà la sortie, le cluster et l'attribut n'est jamais ajoutée de nouveau; quand chaque valeur cochée est déjà là, rien n'est enregistré : « « Éclairage de la cuisine » a déjà un tag pour chaque valeur cochée, donc rien n'a été ajouté. » Un nom qu'un autre tag de l'équipement porte déjà reçoit un numéro à la suite, comme dans Luminosité (2).

Le balayage lit ce que l'équipement publie, tel que la spécification Matter l'organise :

Quoi Où l'équipement le dit
Ses sorties (endpoints) Le cluster Descriptor (0x001D) sur l'endpoint 0, attribut PartsList
Les clusters de chaque sortie Le Descriptor de cette sortie, attribut ServerList
Les valeurs de chaque cluster Son attribut AttributeList (0xFFFB)
Les commandes que chaque cluster accepte Son attribut AcceptedCommandList (0xFFF9)
Les fonctions optionnelles que chaque cluster met en œuvre Son attribut FeatureMap (0xFFFC)
La lecture actuelle de chaque valeur La valeur elle-même, lue une fois

Ce que le balayage offre, et sous quel nom :

Une valeur Proposée comme
Une que le pilote connaît (la section suivante) Son nom clair dans la langue de la station et le type que la spécification lui donne; accessible en écriture seulement quand l'équipement accepte la manière dont la spécification la change, sinon en lecture seule
Une que le pilote connaît, d'une fonction que le cluster ne met pas en œuvre : teinte et saturation sans la fonction Hue and Saturation, température de couleur sans la fonction Color Temperature Non proposée
Une que le pilote ne connaît pas En lecture seule, sous son nom dans la spécification Matter (Level Control OnLevel), ou sous le cluster et le numéro d'attribut quand le pilote ne connaît pas l'attribut (On/Off attribute 0x131B0001); son type est celui de la lecture que l'équipement a renvoyée
La même valeur sur plus d'une sortie Son nom dit quelle sortie, comme dans Luminosité (sortie 2)
Un attribut global (0xFFF8 à 0xFFFD), ou une valeur du nœud lui-même (endpoint 0) Non proposée
Une liste ou une structure, une valeur d'un type que le pilote ne porte pas, une valeur pour laquelle l'équipement n'a renvoyé aucune lecture Laissée de côté, et comptée dans la ligne qui clôt le balayage

Un tag proposé en écriture arrive avec l'accès Lecture et écriture; tous les autres arrivent en Lecture seule.

Les valeurs que le pilote connaît

Le pilote porte une table, tirée de la spécification Matter, des valeurs qu'il connaît par leur nom et de la façon dont chacune change. Une valeur change de l'une de trois façons : par une commande que le pilote envoie, que l'équipement doit lister parmi les commandes qu'il accepte; par une écriture de l'attribut lui-même, là où la spécification le rend accessible en écriture et où l'équipement le liste; ou pas du tout, pour une valeur que l'équipement ne fait que signaler.

Valeur Cluster et attribut Type Ce que l'écrire fait sur l'équipement Plage que la spécification définit
Allumé On/Off (0x0006), OnOff (0x0000) Boolean true envoie la commande On (0x01), false envoie Off (0x00); accessible en écriture seulement quand l'équipement accepte les deux true ou false
Luminosité Level Control (0x0008), CurrentLevel (0x0000) UInt32 Envoie MoveToLevelWithOnOff (0x04) avec le niveau, un temps de transition de 0 et aucune option forcée : la sortie s'allume avec le niveau et s'éteint au minimum 0 à 254
Teinte Color Control (0x0300), CurrentHue (0x0000) UInt32 Envoie MoveToHue (0x00) par le chemin le plus court, avec un temps de transition de 0; seulement avec la fonction Hue and Saturation 0 à 254
Saturation des couleurs Color Control (0x0300), CurrentSaturation (0x0001) UInt32 Envoie MoveToSaturation (0x03) avec un temps de transition de 0; seulement avec la fonction Hue and Saturation 0 à 254
Température de couleur Color Control (0x0300), ColorTemperatureMireds (0x0007) UInt32 Envoie MoveToColorTemperature (0x0A) avec un temps de transition de 0; seulement avec la fonction Color Temperature. L'équipement garde la valeur dans ses propres limites 0 à 65279, en mireds
Position du store Window Covering (0x0102), CurrentPositionLiftPercent100ths (0x000E) UInt32 Envoie GoToLiftPercentage (0x05) 0 (ouvert) à 10000 (fermé), en centièmes de pour cent
Température ambiante Thermostat (0x0201), LocalTemperature (0x0000) Float, en °C Rien : lecture seule -27315 à 32767, en centièmes de degré Celsius; se lit de -273,15 à 327,67 °C
Consigne de refroidissement Thermostat (0x0201), OccupiedCoolingSetpoint (0x0011) Float, en °C Écrit l'attribut. L'équipement refuse une consigne hors de ses propres limites -27315 à 32767, en centièmes de degré Celsius; se lit de -273,15 à 327,67 °C
Consigne de chauffage Thermostat (0x0201), OccupiedHeatingSetpoint (0x0012) Float, en °C Écrit l'attribut. L'équipement refuse une consigne hors de ses propres limites -27315 à 32767, en centièmes de degré Celsius; se lit de -273,15 à 327,67 °C
Mode du ventilateur Fan Control (0x0202), FanMode (0x0000) UInt32 Écrit l'attribut 0 arrêt, 1 bas, 2 moyen, 3 haut, 4 marche, 5 automatique, 6 intelligent
Réglage de la vitesse du ventilateur Fan Control (0x0202), PercentSetting (0x0002) UInt32 Écrit l'attribut 0 à 100 pour cent
Vitesse du ventilateur Fan Control (0x0202), PercentCurrent (0x0003) UInt32 Rien : lecture seule 0 à 100 pour cent
Température Temperature Measurement (0x0402), MeasuredValue (0x0000) Float, en °C Rien : lecture seule -27315 à 32767, en centièmes de degré Celsius; se lit de -273,15 à 327,67 °C
Humidité Relative Humidity Measurement (0x0405), MeasuredValue (0x0000) Float, en % Rien : lecture seule 0 à 10000, en centièmes de pour cent; se lit de 0 à 100 %
Éclairement Illuminance Measurement (0x0400), MeasuredValue (0x0000) UInt32 Rien : lecture seule 0 à 65534, soit 10000 × log10(lux) + 1
Pression Pressure Measurement (0x0403), MeasuredValue (0x0000) Float, en kPa Rien : lecture seule -32767 à 32767, en dixièmes de kilopascal; se lit de -3276,7 à 3276,7 kPa
Occupation Occupancy Sensing (0x0406), Occupancy (0x0000) Boolean Rien : lecture seule true quand quelqu'un est là
État Boolean State (0x0045), StateValue (0x0000) Boolean Rien : lecture seule true ou false

La spécification envoie les températures, l'humidité et la pression dans des unités fixes : centièmes de degré Celsius, centièmes de pour cent et dixièmes de kilopascal. La découverte offre ces valeurs déjà en °C, % et kPa : le tag arrive avec le facteur dans son étape de mise à l'échelle (0,01 pour une température et une humidité, 0,1 pour une pression) et avec l'unité, si bien qu'un équipement qui envoie 2150 se lit 21,5 °C. Une écriture défait cette étape avant que la valeur ne parte, si bien qu'une consigne écrite 21,5 arrive à l'équipement en 2150. L'éclairement est logarithmique (10000 × log10(lux) + 1), donc aucun facteur ne le convertit : il se lit tel que l'équipement l'envoie. Toutes les autres valeurs se lisent aussi telles que l'équipement les envoie.

Les serrures, la couleur par coordonnées X et Y, les scènes, les groupes et la commande Toggle ne sont pas dans la table. Un équipement Matter n'a pas non plus de commandes à lui : tout changement est l'écriture d'un de ses tags.

Écrire une valeur

Un tag Matter dont l'accès est Lecture et écriture change l'équipement quand on l'écrit : depuis sa carte Valeur en direct, un contrôle de tableau de bord, la Logic ou un agent. L'écriture rejoint la file de l'équipement comme celle de tout pilote, à son tour avec les lectures de l'équipement, et sa réponse est celle de l'équipement lui-même. Le pilote choisit la commande Matter ou l'écriture de l'attribut à partir de la table; personne ne choisit de commande. Seul le SUCCESS de l'équipement compte comme écrit. Tout le reste est refusé, avec une raison :

Ce qui arrive Où c'est tranché La raison donnée
Le point n'est pas une valeur de la table du pilote Avant tout envoi Le pilote ne sait pas comment l'équipement change cette valeur, donc le tag ne fait que la lire.
Le point est une valeur que la table marque en lecture seule Avant tout envoi L'équipement signale cette valeur et rien de l'extérieur ne la fixe.
La valeur écrite n'est ni true ni false (pour une valeur Boolean), ou n'est pas un nombre entier Avant tout envoi Ce que la valeur accepte, et ce qui a été écrit.
La valeur est hors de la plage que la spécification définit Avant tout envoi La plage, telle que la table ci-dessus la donne.
Le tag ne nomme aucun cluster Avant tout envoi Qu'une valeur Matter se trouve par sa sortie, son cluster et son attribut.
L'équipement répond par un autre statut que SUCCESS Par l'équipement Le statut tel que l'équipement l'a donné : son nom dans la spécification et son numéro, par exemple CONSTRAINT_ERROR, 0x87 (la valeur est hors de ce que l'équipement accepte) ou UNSUPPORTED_COMMAND, 0x81 (l'équipement n'accepte pas la commande qui change cette valeur). Un statut que le cluster ajoute vient après (FAILURE, 0x01, cluster 0x02), et un statut que la spécification ne nomme pas se lit par son seul numéro.
L'équipement ne répond pas à temps Par l'équipement Pas de réponse.

Une écriture refusée n'est jamais signalée comme écrite, ni comme un équipement injoignable. Sur la page du tag, la ligne d'état indique « Écriture refusée par l'équipement : CONSTRAINT_ERROR, 0x87. » quand l'équipement l'a refusée, avec la raison à la place du statut pour un refus tranché avant tout envoi, et « Écriture non confirmée : l'équipement n'a pas répondu à temps. » quand aucune réponse n'est venue; « Échec de l'écriture : l'équipement n'a pas pu être joint. » reste réservé à un équipement qui n'est pas connecté. La raison voyage aussi avec l'écriture : la ligne du journal de cette écriture la nomme, avec ce que le statut veut dire, et le tag_write d'un agent la renvoie.

Un tag créé à la main

Pour la rare valeur que l'équipement ne publie pas sous une forme que le balayage propose, Ajouter un tag sur un équipement Matter crée un tag à remplir à la main. Sa carte Source de la valeur montre trois champs sur une ligne, et l'aperçu de l'adresse en dessous les assemble en <endpoint>/<cluster>/<attribute>, en décimal (1/8/0 est la luminosité de la première sortie). Tant qu'aucun cluster n'est choisi, le tag n'est pas enregistré, et le panneau dit : « Choisissez le cluster que ce tag lit. Sans lui, rien n'est jamais demandé à l'équipement. »

Champ Ce qu'il fait Valeurs Par défaut
Sortie (endpoint) Quelle sortie de l'équipement le tag lit. 0 à 65535; 1 est la première sortie commandable, 0 le nœud lui-même 1
Cluster Matter Quel cluster de cette sortie le tag lit. Les clusters du catalogue Matter par leur nom dans la spécification avec leur numéro, comme dans Level Control (0x0008); un cluster que le catalogue ne nomme pas, trouvé par un balayage, vient en premier par son numéro aucun
Attribut Quel attribut du cluster le tag lit. 0 et plus; 0 est la valeur propre du cluster 0

Le nom du tag est libre : il nomme le tag et ne choisit rien sur l'équipement. Le type de donnée se choisit parmi Boolean, Int32, UInt32, Float, Double et String; une lecture que le type déclaré ne peut pas représenter se lit comme une erreur plutôt que comme un nombre de remplacement. La valeur arrive telle que l'équipement l'envoie : une température, une humidité ou une pression créée à la main se lit en centièmes ou en dixièmes tant que vous ne lui donnez pas, dans son étape de mise à l'échelle, le facteur et l'unité du tableau ci-dessus.

Le champ d'accès ne propose l'écriture que là où la table du pilote change la valeur; sinon il propose Lecture seule et dit pourquoi en dessous :

Le point Le champ d'accès propose Ce qu'il dit
Une valeur de la table qu'une commande ou une écriture de l'attribut change Lecture seule, Écriture seule et Lecture et écriture Rien
Aucun cluster choisi encore Lecture seule « Lecture seule tant que le tag ne désigne pas une valeur de l'équipement : choisissez son cluster. »
Une valeur que la table ne connaît pas Lecture seule « Lecture seule : le pilote ne sait pas comment l'équipement modifie cette valeur. »
Une valeur que la table marque en lecture seule Lecture seule « Lecture seule : l'équipement signale cette valeur, et rien de l'extérieur ne la fixe. »

Quand une modification de la sortie, du cluster ou de l'attribut fait pointer le tag vers une valeur que le pilote ne peut pas écrire, son accès revient à Lecture seule. Un tag offert par la découverte garde l'accès que la découverte lui a donné, car seule la découverte demande à l'équipement quelles commandes il accepte : une valeur que l'équipement n'a pas listée reste en Lecture seule, et le champ propose quand même l'écriture.

Les tags enregistrés par des versions précédentes

Une version précédente nommait le cluster d'un tag Matter par le seul nom du tag, avec une adresse <endpoint>/<attribute>. Quand cette version démarre pour la première fois, chaque tag d'un équipement Matter dont le nom est un cluster du catalogue Matter (la partie après le dernier deux-points, sans les espaces autour, sans tenir compte de la casse) reçoit ce cluster, si bien qu'il continue de lire exactement la valeur qu'il lisait. Son nom reste tel qu'il était, et l'aperçu de son adresse montre alors <endpoint>/<cluster>/<attribute>. Un tag dont le nom ne correspondait à aucun cluster n'a jamais rien lu : il reste sans cluster, ses lectures sont refusées avec une raison qui le dit, et sa page demande le cluster. Un tag converti garde l'accès qu'il avait, Lecture seule, le seul que ces versions proposaient; pour l'écrire, choisissez Lecture et écriture, ce qui fonctionne pour les valeurs de la table ci-dessus.