MatterMatter Clusters

Matter Clusters

Attributes των Matter clusters, πεδία πληροφοριών συσκευής και υποστηριζόμενες εντολές για τις συσκευές Matter της SmartphoneKey.

Τεκμηρίωση Matter Cluster

Τι είναι το Matter;

Το Matter είναι ένα πρότυπο διαλειτουργικότητας έξυπνων συσκευών. Αντί κάθε κατασκευαστής να επινοεί ένα εντελώς διαφορετικό μοντέλο δεδομένων συσκευής, το Matter ορίζει μια κοινή δομή ώστε controllers, εφαρμογές, hubs και cloud συστήματα να μπορούν να κατανοούν τις συσκευές με προβλέψιμο τρόπο.

Τα σημαντικότερα δομικά στοιχεία είναι:

  • Node: ολόκληρη η φυσική συσκευή στο δίκτυο.
  • Endpoint: ένα λειτουργικό τμήμα της συσκευής. Ένα φυσικό προϊόν μπορεί να εκθέτει πολλαπλά endpoints.
  • Cluster: μια ομάδα σχετικών λειτουργιών ή ιδιοτήτων. Σκεφτείτε ένα cluster ως μια θεματική περιοχή, όπως Door Lock, Battery ή Temperature Measurement.
  • Attribute: μία συγκεκριμένη τιμή μέσα σε ένα cluster, όπως LockState ή BatVoltage.
  • Command: μια ενέργεια που μπορείτε να στείλετε σε ένα cluster, όπως lock/unlock για μια συσκευή κλειδαριάς.

Πώς να διαβάσετε τον πίνακα

  • Το Endpoint σας λέει σε ποιο λειτουργικό τμήμα της συσκευής ανήκει η γραμμή.
  • Το Cluster δίνει το ανθρώπινα αναγνώσιμο όνομα του cluster ακολουθούμενο από το αριθμητικό του ID σε παρενθέσεις, για παράδειγμα Basic Information (40).
  • Το Attribute είναι η ακριβής ιδιότητα που εκθέτει το cluster.
  • Το Path χρησιμοποιεί τη μορφή endpoint/cluster/attribute και εμφανίζεται ως inline code.

Λεπτομερής σημασία, σημασιολογία τιμών και παραδείγματα για κάθε attribute υπάρχουν στις αναπτυσσόμενες κάρτες κάτω από κάθε πίνακα.

Σημαντική σημείωση για αρχάριους

Ένα cluster δεν είναι το ίδιο πράγμα με έναν τύπο συσκευής.

Για παράδειγμα, το cluster Boolean State δίνει μόνο μια τιμή true/false. Αυτή η τιμή μπορεί να σημαίνει πολύ διαφορετικά πράγματα ανάλογα με τον τύπο συσκευής του endpoint:

  • για έναν αισθητήρα επαφής (contact sensor), μπορεί να σημαίνει ανοιχτό/κλειστό
  • για έναν αισθητήρα διαρροής (leak sensor), μπορεί να σημαίνει διαρροή/χωρίς διαρροή

Έτσι τα δεδομένα Matter πρέπει πάντα να ερμηνεύονται χρησιμοποιώντας και τα δύο:

  1. το cluster και το attribute
  2. το πλαίσιο του ρόλου / τύπου συσκευής του endpoint

Δεδομένα πληροφοριών συσκευής

Αυτή η ενότητα τεκμηριώνει τιμές που αναφέρονται από τα clusters συσκευών Matter. Αυτά τα πεδία είναι attributes δεδομένων που χρησιμοποιούνται για inventory, state shadows, διαγνωστικά, κατάσταση τροφοδοσίας και μετρήσεις αισθητήρων. Δεν είναι εντολές.

Πληροφορίες root συσκευής / συστήματος

Αυτές οι γραμμές περιγράφουν τη συνολική ταυτότητα της συσκευής και πληροφορίες διαγνωστικών/διαχείρισης δικτύου. Είναι σημαντικές για inventory, troubleshooting και υποστήριξη, αλλά δεν ελέγχουν άμεσα την κύρια λειτουργία κλειδαριάς που βλέπει ο χρήστης.

EndpointClusterAttributePath
0Basic Information (40)VendorName0/40/1
0Basic Information (40)ProductName0/40/3
0Basic Information (40)HardwareVersionString0/40/8
0Basic Information (40)SoftwareVersionString0/40/10
0Basic Information (40)ManufacturingDate/DateCode0/40/11
0Basic Information (40)SerialNumber0/40/15
0Basic Information (40)VendorID0/40/2
0Basic Information (40)ProductURL0/40/14
0General Diagnostics (51)UpTime0/51/2
0General Diagnostics (51)TotalOperationalHours0/51/3
0General Diagnostics (51)BootReason0/51/4
0Thread Network Diagnostics (53)NeighborTable0/53/7
0Thread Network Diagnostics (53)RoutingRole0/53/1
0Thread Network Diagnostics (53)NetworkName0/53/2
0Wi-Fi Network Diagnostics (54)RSSI0/54/4
0ICD Management (70)IdleModeDuration0/70/0
0ICD Management (70)ActiveModeDuration0/70/1
0ICD Management (70)ActiveModeThreshold0/70/2
0ICD Management (70)UserActiveModeTriggerHint0/70/6
0ICD Management (70)UserActiveModeTriggerInstruction0/70/7

Λεπτομέρειες πεδίων

VendorName — Ανθρώπινα αναγνώσιμο όνομα κατασκευαστή. Παράδειγμα: "SmartphoneKey Systems Inc". Τιμή string. Δεν είναι enum. Είναι το όνομα εμφάνισης του κατασκευαστή που αναφέρει η συσκευή, οπότε διαφορετικοί κατασκευαστές επιστρέφουν διαφορετικό κείμενο.

ProductName — Ανθρώπινα αναγνώσιμο όνομα προϊόντος. Παράδειγμα: "SmartphoneKey Reader". Τιμή string. Είναι το όνομα εμφάνισης προϊόντος/μοντέλου που εκθέτει το node, όχι enum τύπου συσκευής.

HardwareVersionString — String έκδοσης hardware. Παράδειγμα: "release". Τιμή string. Συνήθως μια ανθρώπινα αναγνώσιμη αναθεώρηση hardware, αναθεώρηση πλακέτας ή ετικέτα έκδοσης. Αντιμετωπίστε το ως κείμενο που ορίζεται από τον κατασκευαστή.

SoftwareVersionString — String έκδοσης λογισμικού/firmware. Παράδειγμα: "1.26.1+1". Τιμή string. Συνήθως έκδοση firmware/λογισμικού. Χρησιμοποιήστε το ως κείμενο, επειδή οι κατασκευαστές μπορεί να περιλαμβάνουν semantic versions, build metadata ή προσαρμοσμένες ετικέτες.

ManufacturingDate/DateCode — Ημερομηνία κατασκευής ή date code που παρέχει η συσκευή. Παράδειγμα: "20250903". Τιμή string/date-code. Η μορφή παρέχεται από τον κατασκευαστή. Σε αυτό το export μοιάζει με YYYYMMDD, αλλά μην υποθέσετε ότι όλες οι συσκευές χρησιμοποιούν την ίδια μορφή.

SerialNumber — String σειριακού αριθμού. Παράδειγμα: "11064672519639222187". Τιμή string. Φυσικός σειριακός αριθμός. Μπορεί να φαίνεται αριθμητικός αλλά θα πρέπει να αποθηκεύεται ως κείμενο για να μη χαθούν αρχικά μηδενικά ή η μορφοποίηση.

VendorID — Αναγνωριστικό κατασκευαστή. Παράδειγμα: 4619. Αριθμητικό αναγνωριστικό κατασκευαστή που αποδίδεται μέσω της διαδικασίας vendor ID του Matter/CSA. Αποθηκεύστε το ως αριθμό, αλλά η εμφάνιση σε δεκαεξαδική μορφή (hex) μπορεί επίσης να είναι χρήσιμη για engineering logs.

ProductURL — URL προϊόντος αν υλοποιείται. Παράδειγμα: "". Τιμή URL (string) όταν υλοποιείται. Το κενό string σημαίνει ότι η συσκευή δεν παρείχε URL προϊόντος/υποστήριξης.

UpTime — Τρέχον uptime. Παράδειγμα: 588758. Αριθμητική διάρκεια σε δευτερόλεπτα. Σημαίνει ότι η συσκευή είναι σε λειτουργία για 588.758 δευτερόλεπτα από την τελευταία εκκίνηση. Μια ξαφνική χαμηλή τιμή συνήθως σημαίνει ότι το node επανεκκινήθηκε πρόσφατα.

TotalOperationalHours — Συνολικές ώρες λειτουργίας. Παράδειγμα: 163. Αριθμητική διάρκεια σε ώρες. Σημαίνει ότι η συσκευή αναφέρει 163 συνολικές ώρες λειτουργίας. Αυτή η τιμή είναι αθροιστική αν η συσκευή τη διατηρεί (persists).

BootReason — Λόγος της πιο πρόσφατης εκκίνησης. Παράδειγμα: 6. Τιμή enum. Συνηθισμένες σημασίες Matter περιλαμβάνουν 0 = Unspecified, 1 = PowerOnReboot, 2 = BrownOutReset, 3 = SoftwareWatchdogReset, 4 = HardwareWatchdogReset, 5 = SoftwareUpdateCompleted, 6 = SoftwareReset. Εδώ το 6 σημαίνει reset/reboot που ενεργοποιήθηκε από λογισμικό.

NeighborTable — Καταχωρήσεις πίνακα γειτόνων (neighbor table). Παράδειγμα: [{"averageRssi": -25, ...}] ή απλοποιημένα ως [-25]. Τιμή πίνακα/λίστας. Κάθε καταχώρηση περιγράφει έναν γείτονα Thread. Οι τιμές RSSI είναι κανονικά αρνητικά dBm: όσο πιο κοντά στο 0, τόσο ισχυρότερο· γύρω στο -25 είναι πολύ ισχυρό, -50 είναι καλό, -70 είναι αδύναμο.

RoutingRole — Τρέχων ρόλος δρομολόγησης Thread. Παράδειγμα: 6. Τιμή enum που περιγράφει τον ρόλο Thread. Τυπικές τιμές είναι καταστάσεις τύπου ρόλου όπως disabled, detached, child/end device, router, leader ή ρόλος με δυνατότητα border-router, ανάλογα με την υλοποίηση/έκδοση προδιαγραφής. Χρησιμοποιήστε το κυρίως για διαγνωστικά, όχι ως business state.

NetworkName — Όνομα δικτύου Thread. Παράδειγμα: "OpenThread-952e". Τιμή string. Όνομα δικτύου Thread. Θα πρέπει να ταιριάζει με το αναμενόμενο Thread mesh αν η συσκευή συνδέθηκε στο σωστό δίκτυο.

RSSI — Δείκτης ισχύος λαμβανόμενου σήματος (Received signal strength indicator). Παράδειγμα: nan. Αριθμητικό RSSI σε dBm όταν αναφέρεται. Το RSSI του Wi-Fi είναι συνήθως αρνητικό: όσο πιο κοντά στο 0, τόσο ισχυρότερο. nan, null ή απουσία συνήθως σημαίνει ότι δεν χρησιμοποιείται Wi-Fi ή ότι η συσκευή δεν το αναφέρει.

IdleModeDuration — Διάρκεια idle mode για συμπεριφορά ICD. Παράδειγμα: 300. Αριθμητική διάρκεια σε δευτερόλεπτα. Για συσκευές ICD αυτό είναι το διάστημα idle-mode όπου η συσκευή μπορεί να κοιμάται ή να είναι λιγότερο άμεσα προσβάσιμη.

ActiveModeDuration — Διάρκεια active mode για συμπεριφορά ICD. Παράδειγμα: 300. Αριθμητική διάρκεια σε milliseconds στους ορισμούς Matter ICD. Περιγράφει για πόσο μένει η συσκευή σε active mode μετά από wake/active συμπεριφορά πριν επιστρέψει σε idle.

ActiveModeThreshold — Κατώφλι για είσοδο σε active mode. Παράδειγμα: 300. Αριθμητικό κατώφλι σε milliseconds. Χρησιμοποιείται από τη συμπεριφορά ICD για να αποφασίσει τον χρονισμό/απόκριση του active-mode. Μεγαλύτερες τιμές συνήθως κρατούν τη συσκευή responsive για περισσότερο, αλλά μπορεί να επηρεάσουν τη μπαταρία.

UserActiveModeTriggerHint — Hint που περιγράφει πώς να ενεργοποιηθεί το active mode. Παράδειγμα: 4381. Τιμή bitmap/bitmask. Κάθε bit υπαινίσσεται μια πιθανή ενέργεια χρήστη που μπορεί να ξυπνήσει ή να ενεργοποιήσει τη συσκευή. Αποκωδικοποιήστε το ως flags, όχι ως έναν απλό αριθμό. Συνδυάστε το με το UserActiveModeTriggerInstruction για ανθρώπινα αναγνώσιμες οδηγίες.

UserActiveModeTriggerInstruction — Κείμενο οδηγιών για active mode που ενεργοποιεί ο χρήστης. Παράδειγμα: "Restart the application". Τιμή string. Ανθρώπινα αναγνώσιμη οδηγία για το πώς ένας χρήστης μπορεί να ενεργοποιήσει το active mode. Είναι κείμενο άμεσα εμφανίσιμο αν χρειαστεί.

Door lock / έλεγχος πρόσβασης

Αυτές οι γραμμές περιγράφουν τη συμπεριφορά ελέγχου πρόσβασης της συσκευής. Αυτή είναι η πιο κρίσιμη για τη λειτουργία (business-critical) ομάδα για όσους εργάζονται με λογική εισόδου από πόρτα, credentials, απομακρυσμένες λειτουργίες και συμπεριφορά φυσικής ασφάλειας.

EndpointClusterAttributePath
1Door Lock (257)LockState1/257/0
1Door Lock (257)NumberOfTotalUsersSupported1/257/17
1Door Lock (257)NumberOfPINUsersSupported1/257/18
1Door Lock (257)NumberOfCredentialsSupportedPerUser1/257/23
1Door Lock (257)AutoRelockTime1/257/27
1Door Lock (257)SoundVolume1/257/28
1Door Lock (257)LEDSettings1/257/41
1Door Lock (257)AutoRelockBehavior1/257/43
1Door Lock (257)WrongCodeEntryLimit1/257/48
1Door Lock (257)UserCodeTemporaryDisableTime1/257/49
1Door Lock (257)RequirePINforRemoteOperation1/257/51

Μπαταρία / πηγή τροφοδοσίας

Αυτές οι γραμμές περιγράφουν πώς τροφοδοτείται η συσκευή και αν μπορεί να χρειάζεται συντήρηση. Αυτό είναι ιδιαίτερα σημαντικό για ομάδες υποστήριξης πεδίου και για πλατφόρμες που χρειάζεται να εμφανίζουν την υγεία της μπαταρίας.

EndpointClusterAttributePath
1Power Source (47)Status1/47/0
1Power Source (47)BatVoltage1/47/11
1Power Source (47)BatPercentRemaining1/47/12
1Power Source (47)BatChargeLevel1/47/14
1Power Source (47)BatReplacementNeeded1/47/15
1Power Source (47)BatReplacementDescription1/47/19
1Power Source (47)BatReplacementNeededLevel1/47/24
1Power Source (47)BatQuantity1/47/25

Αισθητήρας υγρασίας

Αυτές οι γραμμές δείχνουν δεδομένα περιβαλλοντικής μέτρησης υγρασίας. Παρόλο που το κύριο προϊόν είναι μια συσκευή προσανατολισμένη σε reader/lock, αυτό το export εκθέτει επίσης πληροφορίες μέτρησης υγρασίας σε ένα endpoint.

EndpointClusterAttributePath
1Relative Humidity Measurement (1029)MeasuredValue1/1029/0

MeasuredValue — Τρέχουσα μετρούμενη τιμή σχετικής υγρασίας. Παράδειγμα: 3011. Αριθμητική μετρούμενη υγρασία σε εκατοστά του τοις εκατό. Μετατρέψτε με value / 100, οπότε το 3011 σημαίνει 30.11% RH.

Αισθητήρας κατοίκησης / παρουσίας

Αυτές οι γραμμές δείχνουν αν το endpoint ανιχνεύει αυτή τη στιγμή κατοίκηση ή παρουσία. Αυτό χρησιμοποιείται συνήθως από συστήματα αυτοματισμού και παρακολούθησης παρά από βασικές ροές κλειδαριάς.

EndpointClusterAttributePath
1Occupancy Sensing (1030)Occupancy1/1030/0

Occupancy — Τρέχουσα κατάσταση κατοίκησης/παρουσίας. Παράδειγμα: 0. Τιμή bitmap. Το bit 0 υποδεικνύει ότι ανιχνεύθηκε κατοίκηση/παρουσία. 0 σημαίνει ότι δεν ανιχνεύθηκε κατοίκηση· 1 σημαίνει ότι ανιχνεύθηκε. Μελλοντικά/πρόσθετα bits μπορεί να αναπαριστούν περισσότερους τρόπους ανίχνευσης.

Ερμηνεία αισθητήρα επαφής (contact sensor)

Αυτή η ενότητα απομονώνει τη γραμμή Boolean State που τεκμηριώνεται ως ερμηνεία τύπου αισθητήρα επαφής/πόρτας. Έχει διαχωριστεί σκόπιμα για να δείξει ότι το Boolean State χρειάζεται το πλαίσιο του τύπου συσκευής.

EndpointClusterAttributePath
1Boolean State (69)StateValue1/69/0

StateValue — Δυαδική τιμή κατάστασης. Για αυτόν τον αισθητήρα πόρτας αντιστοιχίζεται σε κατάσταση επαφής ανοιχτό/κλειστό. Παράδειγμα: true. Τιμή boolean. Για ένα endpoint αισθητήρα επαφής, αντιστοιχίστε με το πλαίσιο του endpoint: συνήθως true = ανοιχτό/επαφή ενεργή, false = κλειστό/ανενεργό, αλλά επαληθεύστε με τη συγκεκριμένη συμπεριφορά της συσκευής.

Ερμηνεία αισθητήρα διαρροής νερού (water leak sensor)

Αυτή η ενότητα απομονώνει τη γραμμή Boolean State που τεκμηριώνεται ως ερμηνεία διαρροής νερού. Έχει διαχωριστεί σκόπιμα για να δείξει ότι το ίδιο cluster Boolean State μπορεί να αναπαριστά μια εντελώς διαφορετική πραγματική συνθήκη.

EndpointClusterAttributePath
1Boolean State (69)StateValue1/69/0

Αισθητήρας θερμοκρασίας

Αυτές οι γραμμές δείχνουν δεδομένα μέτρησης θερμοκρασίας από το endpoint που αναφέρει θερμοκρασία. Όπως και με την υγρασία, η ακατέργαστη τιμή κανονικά χρειάζεται μετατροπή πριν την εμφάνιση στον τελικό χρήστη.

EndpointClusterAttributePath
2Temperature Measurement (1026)MeasuredValue2/1026/0

MeasuredValue — Τρέχουσα μετρούμενη τιμή θερμοκρασίας. Παράδειγμα: 2591. Αριθμητική μετρούμενη θερμοκρασία σε εκατοστά του βαθμού Κελσίου. Μετατρέψτε με value / 100, οπότε το 2591 σημαίνει 25.91 °C.

Υποστηριζόμενες εντολές

Αυτή η ενότητα τεκμηριώνει τις δυνατότητες εντολών. Αυτά τα πεδία περιγράφουν τι μπορεί να δεχτεί η συσκευή ως ενέργειες. Στο Matter, η υποστήριξη εντολών κανονικά ανακαλύπτεται από το global attribute AcceptedCommandList, με μορφή path endpoint/cluster/65529.

Χρησιμοποιήστε αυτή την ενότητα ξεχωριστά από τα Δεδομένα πληροφοριών συσκευής:

  • Δεδομένα πληροφοριών συσκευής = attributes που αναφέρει η συσκευή, για παράδειγμα 0/40/1, 1/257/0 ή 1/47/12.
  • Υποστηριζόμενες εντολές = ενέργειες που δέχεται η συσκευή/cluster, για παράδειγμα LockDoor, UnlockDoor, GetUser ή γενικές εντολές commissioning.

Πεδία δυνατότητας εντολών Matter

Το Matter εκθέτει τη δυνατότητα εντολών μέσω global attributes cluster. Στη μορφή endpoint/cluster/attribute, τα σημαντικότερα paths δυνατότητας-εντολών είναι:

Attribute IDHexΌνομα AttributeΣημασία
655290xFFF9AcceptedCommandListΛίστα των command IDs που δέχεται αυτός ακριβώς ο cluster server. Χρησιμοποιήστε το για να αποφασίσετε αν το bridge/API σας μπορεί να στείλει μια εντολή.
655280xFFF8GeneratedCommandListΛίστα των command IDs που αυτό το cluster μπορεί να παράγει ως responses/events. Χρήσιμο για χειρισμό command-response, αλλά όχι ο κύριος έλεγχος δυνατότητας.

Παράδειγμα path: 0/49/65529 σημαίνει endpoint 0, cluster 49, attribute 65529. Αυτό σας λέει ποιες εντολές δέχεται το cluster Network Commissioning στο endpoint 0.

Γενικές εντολές endpoint 0 για όλους τους τύπους συσκευών Matter

Το endpoint 0 είναι το root/system endpoint. Αυτές οι εντολές δεν είναι ειδικές για κλειδαριές. Είναι κοινές δυνατότητες συστήματος, commissioning, διαγνωστικών, ασφάλειας και διαχείρισης fabric του Matter. Οποιοσδήποτε τύπος συσκευής μπορεί να εκθέτει ορισμένα από αυτά τα clusters ανάλογα με το τι υποστηρίζει.

PathEndpointCluster IDΌνομα ClusterAccepted Command IDsΑποκωδικοποιημένες εντολέςΤι σημαίνει αυτό
0/48/65529048 / 0x0030General Commissioning[0, 2, 4]0 / 0x00 = ArmFailSafe
2 / 0x02 = SetRegulatoryConfig
4 / 0x04 = CommissioningComplete
Η συσκευή υποστηρίζει την τυπική ροή ασφάλειας commissioning. Αυτές οι εντολές χρησιμοποιούνται κατά την προσθήκη της συσκευής σε ένα Matter fabric.
0/49/65529049 / 0x0031Network Commissioning[0, 3, 4, 6, 8]0 / 0x00 = ScanNetworks
3 / 0x03 = AddOrUpdateThreadNetwork
4 / 0x04 = RemoveNetwork
6 / 0x06 = ConnectNetwork
8 / 0x08 = ReorderNetwork
Η συσκευή υποστηρίζει λειτουργίες network commissioning. Επειδή αυτή η λίστα έχει AddOrUpdateThreadNetwork και όχι εντολές δικτύου Wi-Fi, αυτό μοιάζει με δυνατότητα commissioning Thread.
0/50/65529050 / 0x0032Diagnostic Logs[0]0 / 0x00 = RetrieveLogsRequestΟ controller μπορεί να ζητήσει διαγνωστικά logs από τη συσκευή αν η συσκευή έχει διαθέσιμα logs.
0/51/65529051 / 0x0033General Diagnostics[0, 1]0 / 0x00 = TestEventTrigger
1 / 0x01 = TimeSnapshot
Η συσκευή υποστηρίζει διαγνωστικές εντολές. Αυτές είναι κυρίως χρήσιμες για δοκιμές, πιστοποίηση, troubleshooting και διαγνωστικά time snapshot.
0/53/65529053 / 0x0035Thread Network Diagnostics[0]0 / 0x00 = ResetCountsΟ controller μπορεί να μηδενίσει τους μετρητές διαγνωστικών Thread. Αυτό είναι μόνο για διαγνωστικά και δεν ελέγχει την κύρια λειτουργία της συσκευής.
0/60/65529060 / 0x003CAdministrator Commissioning[0, 1, 2]0 / 0x00 = OpenCommissioningWindow
1 / 0x01 = OpenBasicCommissioningWindow
2 / 0x02 = RevokeCommissioning
Η συσκευή μπορεί να ανοίξει ή να ανακαλέσει ένα commissioning window. Αυτό χρησιμοποιείται για την προσθήκη άλλου controller/admin ή για να τεθεί η συσκευή ξανά σε λειτουργία commissioning.
0/62/65529062 / 0x003EOperational Credentials[0, 2, 4, 6, 7, 9, 10, 11]0 / 0x00 = AttestationRequest
2 / 0x02 = CertificateChainRequest
4 / 0x04 = CSRRequest
6 / 0x06 = AddNOC
7 / 0x07 = UpdateNOC
9 / 0x09 = UpdateFabricLabel
10 / 0x0A = RemoveFabric
11 / 0x0B = AddTrustedRootCertificate
Η συσκευή υποστηρίζει λειτουργίες πιστοποιητικών fabric/ασφάλειας του Matter. Αυτές οι εντολές χρησιμοποιούνται κατά το commissioning, τη ρύθμιση fabric, το multi-admin και τη διαχείριση operational credentials.
0/63/65529063 / 0x003FGroup Key Management[0, 1, 3, 4]0 / 0x00 = KeySetWrite
1 / 0x01 = KeySetRead
3 / 0x03 = KeySetRemove
4 / 0x04 = KeySetReadAllIndices
Η συσκευή υποστηρίζει group key management για ασφαλή επικοινωνία Matter group. Αυτή δεν είναι ενέργεια συσκευής που βλέπει ο χρήστης.

Για την υλοποίηση bridge, αυτές οι λίστες εντολών του endpoint 0 θα πρέπει συνήθως να αντιμετωπίζονται ως δυνατότητες συστήματος. Είναι χρήσιμες για commissioning, διαγνωστικά, ρύθμιση δικτύου και διαχείριση fabric, αλλά δεν θα πρέπει να εκτίθενται ως κανονικές εντολές χρήστη όπως lock/unlock, ανάγνωση θερμοκρασίας ή κατάσταση διαρροής.

Υποστηριζόμενες εντολές του cluster Door Lock

Το cluster Door Lock έχει ένα σύνολο εντολών για λειτουργία κλειδαριάς, διαχείριση user/PIN/RFID, schedules, credentials, logs και ρύθμιση Aliro reader. Σημαντικό: μια πραγματική κλειδαριά μπορεί να υποστηρίζει μόνο ένα υποσύνολο αυτών των εντολών. Για να μάθετε τι υποστηρίζει μία ακριβώς συσκευή, διαβάστε το τυπικό global attribute AcceptedCommandList για το cluster 257 στο endpoint της κλειδαριάς, για παράδειγμα path 1/257/65529 όταν χρησιμοποιείτε τη μορφή endpoint/cluster/attribute.

Για χρήση python-matter-server / bridge, οι εντολές κανονικά στέλνονται στο cluster 257 στο endpoint της κλειδαριάς, συνήθως το endpoint 1. Στο payload σας AWS IoT, το bridge θα πρέπει να αναλύσει (resolve) device_uuid -> node_id, και μετά να στείλει την εντολή με node_id, endpoint_id, όνομα εντολής cluster, και ορίσματα ειδικά για την εντολή.

Command IDHexΌνομα εντολήςΠεριοχήΤι κάνειΤυπικά ορίσματα / λεπτομέρειες τιμών
00x00LockDoorΛειτουργία κλειδαριάςΚλειδώνει την πόρτα.Συνήθως χωρίς ορίσματα. Ορισμένες κλειδαριές μπορεί να απαιτούν PINCode αν το RequirePINforRemoteOperation είναι true. Το αποτέλεσμα θα πρέπει να ελέγχεται, γιατί η εντολή μπορεί να αποτύχει αν η κλειδαριά είναι μη διαθέσιμη, μπλοκαρισμένη, ήδη κινείται ή απαιτεί επιπλέον δεδομένα credential.
10x01UnlockDoorΛειτουργία κλειδαριάςΞεκλειδώνει την πόρτα.Συνήθως χωρίς ορίσματα, εκτός αν η κλειδαριά απαιτεί PIN για απομακρυσμένη λειτουργία. Εντολή ευαίσθητη ως προς την ασφάλεια. Το API σας θα πρέπει να την αντιμετωπίζει ως ελεγχόμενη απομακρυσμένη λειτουργία και να καταγράφει ποιος/τι την ενεργοποίησε.
20x02ToggleΛειτουργία κλειδαριάςΕναλλάσσει μεταξύ κλειδωμένης και ξεκλείδωτης κατάστασης.Συνήθως χωρίς ορίσματα. Δεν συνιστάται για ροές cloud/API όταν έχει σημασία η ακριβής επιθυμητή κατάσταση, επειδή το αποτέλεσμα εξαρτάται από την τρέχουσα φυσική κατάσταση. Προτιμήστε LockDoor ή UnlockDoor για ντετερμινιστική συμπεριφορά.
30x03UnlockWithTimeoutΛειτουργία κλειδαριάςΞεκλειδώνει την πόρτα προσωρινά, και μετά η κλειδαριά θα πρέπει να ξανακλειδώσει μετά το timeout.Συνηθισμένο όρισμα: timeout ή timeoutInSeconds ανάλογα με το SDK binding. Η τιμή είναι μια διάρκεια, κανονικά σε δευτερόλεπτα. Χρησιμοποιήστε το όταν θέλετε προσωρινή πρόσβαση αντί για μόνιμο ξεκλείδωμα.
40x04GetLogRecordΈλεγχος/logsΔιαβάζει μία εγγραφή log από το audit log της κλειδαριάς αν υποστηρίζεται.Συνηθισμένο όρισμα: logIndex. Χρησιμοποιείται για troubleshooting/ιστορικό audit. Πολλές καταναλωτικές κλειδαριές μπορεί να μην υλοποιούν πλήρη ανάκτηση log.
50x05SetPINCodeΔιαχείριση PIN (legacy)Δημιουργεί ή ενημερώνει έναν κωδικό PIN σε ένα legacy PIN slot.Τυπικά ορίσματα περιλαμβάνουν userIndex, userStatus, userType, pinCode. Αυτό είναι παλαιότερο API ειδικό για PIN. Νεότερες κλειδαριές μπορεί να προτιμούν SetUser συν SetCredential.
60x06GetPINCodeΔιαχείριση PIN (legacy)Διαβάζει πληροφορίες PIN για έναν user/slot αν υποστηρίζεται.Τυπικό όρισμα: userIndex. Ορισμένες συσκευές σκόπιμα δεν επιστρέφουν το μυστικό υλικό PIN για λόγους ασφάλειας, ακόμη κι αν η εντολή υπάρχει.
70x07ClearPINCodeΔιαχείριση PIN (legacy)Καθαρίζει έναν κωδικό PIN/το PIN slot ενός user.Τυπικό όρισμα: userIndex. Χρησιμοποιήστε το προσεκτικά γιατί αφαιρεί την πρόσβαση για αυτό το PIN slot.
80x08ClearAllPINCodesΔιαχείριση PIN (legacy)Καθαρίζει όλους τους κωδικούς PIN.Συνήθως χωρίς ορίσματα. Επικίνδυνη μαζική λειτουργία. Θα πρέπει να προστατεύεται στο backend/API γιατί μπορεί να αφαιρέσει κάθε πρόσβαση βασισμένη σε PIN.
90x09SetUserStatusΔιαχείριση χρηστών (legacy)Ορίζει την κατάσταση για μια εγγραφή user.Τυπικά ορίσματα: userIndex, userStatus. Οι τιμές user status είναι τύπου enum, συνήθως καταστάσεις τύπου available/enabled/disabled ανάλογα με την έκδοση Matter.
100x0AGetUserStatusΔιαχείριση χρηστών (legacy)Διαβάζει την κατάσταση για μια εγγραφή user.Τυπικό όρισμα: userIndex. Χρήσιμο για να ελέγξετε αν ένα user slot είναι active/enabled πριν ορίσετε credentials.
110x0BSetWeekDayScheduleΧρονοπρογραμματισμόςΟρίζει ένα επαναλαμβανόμενο εβδομαδιαίο πρόγραμμα πρόσβασης για έναν user.Τυπικά ορίσματα περιλαμβάνουν weekDayIndex, userIndex, daysMask, startHour, startMinute, endHour, endMinute. Χρησιμοποιείται για επαναλαμβανόμενα παράθυρα πρόσβασης όπως καθημερινές 09:00-17:00.
120x0CGetWeekDayScheduleΧρονοπρογραμματισμόςΔιαβάζει ένα επαναλαμβανόμενο εβδομαδιαίο πρόγραμμα.Τυπικά ορίσματα: weekDayIndex, userIndex. Επιστρέφει τα πεδία του προγράμματος όταν υπάρχουν.
130x0DClearWeekDayScheduleΧρονοπρογραμματισμόςΚαθαρίζει ένα επαναλαμβανόμενο εβδομαδιαίο πρόγραμμα.Τυπικά ορίσματα: weekDayIndex, userIndex. Αφαιρεί μόνο αυτό το παράθυρο προγράμματος, όχι απαραίτητα τον user ή το credential.
140x0ESetYearDayScheduleΧρονοπρογραμματισμόςΟρίζει ένα εφάπαξ/εύρους ημερομηνιών πρόγραμμα για έναν user.Τυπικά ορίσματα περιλαμβάνουν yearDayIndex, userIndex, localStartTime, localEndTime. Χρησιμοποιείται για προσωρινά παράθυρα πρόσβασης βάσει ημερομηνίας.
150x0FGetYearDayScheduleΧρονοπρογραμματισμόςΔιαβάζει ένα πρόγραμμα εύρους ημερομηνιών.Τυπικά ορίσματα: yearDayIndex, userIndex. Επιστρέφει χρόνο start/end όταν υπάρχει.
160x10ClearYearDayScheduleΧρονοπρογραμματισμόςΚαθαρίζει ένα πρόγραμμα εύρους ημερομηνιών.Τυπικά ορίσματα: yearDayIndex, userIndex. Αφαιρεί αυτό το προσωρινό πρόγραμμα.
170x11SetHolidayScheduleΧρονοπρογραμματισμόςΟρίζει ένα πρόγραμμα αργιών / πρόγραμμα εξαίρεσης.Τυπικά ορίσματα περιλαμβάνουν holidayIndex, localStartTime, localEndTime, operatingModeDuringHoliday. Χρησιμοποιείται για αλλαγή της συμπεριφοράς της κλειδαριάς κατά τη διάρκεια ειδικών ημερολογιακών περιόδων.
180x12GetHolidayScheduleΧρονοπρογραμματισμόςΔιαβάζει ένα πρόγραμμα αργιών.Τυπικό όρισμα: holidayIndex. Επιστρέφει πληροφορίες προγράμματος αργιών αν υποστηρίζεται και έχει ρυθμιστεί.
190x13ClearHolidayScheduleΧρονοπρογραμματισμόςΚαθαρίζει ένα πρόγραμμα αργιών.Τυπικό όρισμα: holidayIndex. Αφαιρεί αυτή την εξαίρεση αργίας.
200x14SetUserTypeΔιαχείριση χρηστών (legacy)Ορίζει τον τύπο/κατηγορία ενός user.Τυπικά ορίσματα: userIndex, userType. Ο τύπος user μπορεί να αναπαριστά unrestricted user, schedule-restricted user, programming user κ.λπ., ανάλογα με τις υποστηριζόμενες τιμές enum.
210x15GetUserTypeΔιαχείριση χρηστών (legacy)Διαβάζει τον τύπο/κατηγορία ενός user.Τυπικό όρισμα: userIndex. Χρήσιμο για να κατανοήσετε πώς είναι ρυθμισμένο ένα user slot.
220x16SetRFIDCodeΔιαχείριση RFID (legacy)Δημιουργεί ή ενημερώνει ένα credential RFID σε ένα legacy RFID slot.Τυπικά ορίσματα περιλαμβάνουν userIndex, userStatus, userType, rfidCode. Παλαιότερο API ειδικό για RFID· νεότερες συσκευές μπορεί να χρησιμοποιούν γενικό SetCredential.
230x17GetRFIDCodeΔιαχείριση RFID (legacy)Διαβάζει πληροφορίες credential RFID αν υποστηρίζεται.Τυπικό όρισμα: userIndex. Οι συσκευές μπορεί να αποφεύγουν την επιστροφή μυστικού υλικού credential.
240x18ClearRFIDCodeΔιαχείριση RFID (legacy)Καθαρίζει ένα credential RFID.Τυπικό όρισμα: userIndex. Αφαιρεί την πρόσβαση RFID για αυτό το slot/user.
250x19ClearAllRFIDCodesΔιαχείριση RFID (legacy)Καθαρίζει όλα τα credentials RFID.Συνήθως χωρίς ορίσματα. Επικίνδυνη μαζική λειτουργία· θα πρέπει να είναι admin-only.
260x1ASetUserΔιαχείριση χρηστώνΔημιουργεί ή ενημερώνει μια σύγχρονη εγγραφή user του Door Lock.Τυπικά ορίσματα περιλαμβάνουν userIndex, userName, userUniqueID, userStatus, userType, credentialRule. Αυτό είναι το σύγχρονο API user που χρησιμοποιείται πριν/μαζί με credentials.
270x1BGetUserΔιαχείριση χρηστώνΔιαβάζει μία σύγχρονη εγγραφή user του Door Lock.Τυπικό όρισμα: userIndex. Η απόκριση μπορεί να περιλαμβάνει userName, userUniqueID, userStatus, userType, credentialRule, λίστα credentials και fabric indexes. Στο έργο σας αυτό είναι χρήσιμο επειδή το userName μπορεί να χρησιμοποιηθεί ως σταθερή ταυτότητα όταν είναι διαθέσιμο.
290x1DClearUserΔιαχείριση χρηστώνΚαθαρίζει μία σύγχρονη εγγραφή user.Τυπικό όρισμα: userIndex. Αφαιρεί τον user και μπορεί επίσης να επηρεάσει credentials που συνδέονται με αυτόν τον user ανάλογα με τη συμπεριφορά της συσκευής.
340x22SetCredentialΔιαχείριση credentialsΠροσθέτει ή ενημερώνει ένα credential όπως PIN, RFID, fingerprint, face, Aliro ή άλλον υποστηριζόμενο τύπο credential.Τυπικά ορίσματα περιλαμβάνουν operationType, credential, credentialData, userIndex, userStatus, userType. Η δομή credential κανονικά περιέχει credentialType και credentialIndex.
360x24GetCredentialStatusΔιαχείριση credentialsΕλέγχει αν ένα credential slot υπάρχει/έχει δεδομένα και σε ποιον ανήκει.Τυπικό όρισμα: credential με credentialType και credentialIndex. Χρήσιμο πριν την εγγραφή ή τον καθαρισμό credentials.
380x26ClearCredentialΔιαχείριση credentialsΚαθαρίζει ένα credential, ή ένα credential που ταιριάζει με τη δομή credential που δόθηκε.Τυπικό όρισμα: credential. Χρησιμοποιήστε το προσεκτικά γιατί αφαιρεί την πρόσβαση για αυτό το credential.
390x27UnboltDoorΛειτουργία κλειδαριάςΑποσύρει/ξεμανταλώνει την πόρτα όταν η συσκευή υποστηρίζει ξεχωριστή ενέργεια unbolt.Συνήθως χωρίς ορίσματα ή προαιρετικό PIN ανάλογα με την πολιτική της κλειδαριάς. Δεν διακρίνουν όλες οι κλειδαριές το UnlockDoor από το UnboltDoor.
400x28SetAliroReaderConfigΡύθμιση Aliro / readerΡυθμίζει τη συμπεριφορά Aliro reader σε συμβατές κλειδαριές/readers.Τα ορίσματα είναι πεδία ρύθμισης reader ειδικά για Aliro. Υποστηρίζεται μόνο από συσκευές με δυνατότητα Aliro reader. Αντιμετωπίστε το ως προχωρημένη/ειδική για vendor/ecosystem λειτουργία.
410x29ClearAliroReaderConfigΡύθμιση Aliro / readerΚαθαρίζει τη ρύθμιση Aliro reader.Συνήθως χωρίς ορίσματα ή με selector ειδικό για Aliro ανάλογα με την υλοποίηση. Υποστηρίζεται μόνο από συσκευές με δυνατότητα Aliro.

Έλεγχος υποστήριξης εντολών Door Lock

Η υποστήριξη εντολών Door Lock είναι ξεχωριστή από τις γενικές εντολές συστήματος του endpoint 0 παραπάνω. Μην υποθέσετε ότι κάθε κλειδαριά Matter υποστηρίζει κάθε εντολή που παρατίθεται παραπάνω. Ο πρακτικός έλεγχος υποστήριξης είναι:

PathAttributeΤι σας λέειΠαράδειγμα / Λεπτομέρειες τιμών
1/257/65529AcceptedCommandListΕντολές που δέχεται αυτή ακριβώς η κλειδαριά στο endpoint 1, cluster 257.Παράδειγμα: [0, 1, 26, 27, 29, 34, 36, 38] σημαίνει ότι αυτή η κλειδαριά υποστηρίζει LockDoor, UnlockDoor, SetUser, GetUser, ClearUser, SetCredential, GetCredentialStatus και ClearCredential. Χρησιμοποιήστε αυτή τη λίστα για να αποφασίσετε ποια κουμπιά/λειτουργίες API θα εκθέσετε.
1/257/65528GeneratedCommandListResponses/events που παράγει αυτό το cluster για εντολές, ανάλογα με την υλοποίηση.Χρήσιμο για χειρισμό command/response, αλλά το AcceptedCommandList είναι το κύριο για να αποφασίσετε αν μπορεί να σταλεί μια εντολή.

Αντιστοίχιση τύπων συσκευών Matter

Πηγή αλήθειας (Source of Truth)

Οι τύποι συσκευών Matter διαβάζονται από το cluster Matter Descriptor:

<endpoint>/29/0

Όπου:

29 = Descriptor cluster
0  = DeviceTypeList attribute

Το python-matter-server επιστρέφει την τιμή σε δεκαδική μορφή:

"1/29/0": [
  {
    "0": 21,
    "1": 1
  }
]

Σημασία:

"0" = Matter Device Type ID
"1" = Device Type Revision

Το επίσημο data model του Matter SDK δημοσιεύει τον χάρτη device type ID του Matter 1.5 στο connectedhomeip/data_model/1.5/device_types/device_type_ids.json.

Πηγή:

Κανόνες Bridge

Shadow device_info

Το shadow device_info αποθηκεύει τον αριθμητικό τύπο συσκευής Matter κάτω από το πραγματικό Matter path.

Παράδειγμα για Contact Sensor:

{
  "1/29/0": 21
}

Μην γράφετε αυτό το προσαρμοσμένο πεδίο στο device_info:

{
  "device_type": "contact_sensor"
}

Κανόνες σύνθετων αισθητήρων (Composite Sensor)

Ορισμένες φυσικές συσκευές εκθέτουν πολλαπλά endpoints αισθητήρων.

Παράδειγμα:

770 = Temperature Sensor
775 = Humidity Sensor

Το bridge τα συνδυάζει σε:

temperature_humidity_sensor

Το shadow device_info εξακολουθεί να αποθηκεύει μόνο ένα επιλεγμένο αριθμητικό Matter path, για παράδειγμα:

{
  "1/29/0": 770
}

Αλλά ο εσωτερικός τύπος bridge και το AWS IoT Thing Type γίνονται:

temperature_humidity_sensor

Πλήρης λίστα τύπων συσκευών Matter

Δεκαδική τιμήΤύπος συσκευής MatterBridge Internal Type
10Door Locklock
11Door Lock Controllerdoor_lock_controller
14Aggregatoraggregator
15Generic Switchswitch
17Power Sourcepower_source
18OTA Requestorota_requestor
19Bridged Nodebridged_node
20OTA Providerota_provider
21Contact Sensorcontact_sensor
22Root Noderoot_node
23Solar Powersolar_power
24Battery Storagebattery_storage
25Secondary Network Interfacesecondary_network_interface
34Speakerspeaker
35Casting Video Playercasting_video_player
36Content Appcontent_app
39Mode Selectmode_select
40Basic Video Playerbasic_video_player
41Casting Video Clientcasting_video_client
42Video Remote Controlvideo_remote_control
43Fanfan
44Air Quality Sensorair_quality_sensor
45Air Purifierair_purifier
64Irrigation Systemirrigation_system
65Water Freeze Detectorwater_freeze_detector
66Water Valvewater_valve
67Water Leak Detectorwater_leak_detector
68Rain Sensorrain_sensor
69Soil Sensorsoil_sensor
112Refrigeratorrefrigerator
113Temperature Controlled Cabinettemperature_controlled_cabinet
114Room Air Conditionerroom_air_conditioner
115Laundry Washerlaundry_washer
116Robotic Vacuum Cleanerrobotic_vacuum_cleaner
117Dishwasherdishwasher
118Smoke CO Alarmsmoke_co_alarm
119Cook Surfacecook_surface
120Cooktopcooktop
121Microwave Ovenmicrowave_oven
122Extractor Hoodextractor_hood
123Ovenoven
124Laundry Dryerlaundry_dryer
144Network Infrastructure Managernetwork_infrastructure_manager
145Thread Border Routerthread_border_router
256On/Off Lighton_off_light
257Dimmable Lightdimmable_light
259On/Off Light Switchon_off_light_switch
260Dimmer Switchdimmer_switch
261Color Dimmer Switchcolor_dimmer_switch
262Light Sensorlight_sensor
263Occupancy Sensoroccupancy_sensor
266On/Off Plug-in Uniton_off_plug
267Dimmable Plug-In Unitdimmable_plug
268Color Temperature Lightcolor_temperature_light
269Extended Color Lightextended_color_light
271Mounted On/Off Controlmounted_on_off_control
272Mounted Dimmable Load Controlmounted_dimmable_load_control
304Joint Fabric Administratorjoint_fabric_administrator
320Intercomintercom
321Audio Doorbellaudio_doorbell
322Cameracamera
323Video Doorbellvideo_doorbell
324Floodlight Camerafloodlight_camera
325Snapshot Camerasnapshot_camera
326Chimechime
327Camera Controllercamera_controller
328Doorbelldoorbell
514Window Coveringwindow_covering
515Window Covering Controllerwindow_covering_controller
560Closureclosure
561Closure Panelclosure_panel
574Closure Controllerclosure_controller
769Thermostatthermostat
770Temperature Sensortemperature_sensor
771Pumppump
772Pump Controllerpump_controller
773Pressure Sensorpressure_sensor
774Flow Sensorflow_sensor
775Humidity Sensorhumidity_sensor
777Heat Pumpheat_pump
778Thermostat Controllerthermostat_controller
1292Energy EVSEenergy_evse
1293Device Energy Managementdevice_energy_management
1295Water Heaterwater_heater
1296Electrical Sensorelectrical_sensor
1297Electrical Utility Meterelectrical_utility_meter
1298Meter Reference Pointmeter_reference_point
1299Electrical Energy Tariffelectrical_energy_tariff
1300Electrical Meterelectrical_meter
2112Control Bridgecontrol_bridge
2128On/Off Sensoron_off_sensor