อุปกรณ์ในMatterมีโมเดลข้อมูลที่ชัดเจนดี (DM) ซึ่งเป็นการจําลองแบบลําดับชั้นของฟีเจอร์ในอุปกรณ์ ที่ระดับบนสุดของลําดับชั้นนี้จะมีอุปกรณ์
อุปกรณ์และปลายทาง
อุปกรณ์ทั้งหมด รวมถึงสมาร์ทโฟนและผู้ช่วยในบ้าน ประกอบไปด้วย โหนด1 โหนดเป็นทรัพยากรที่ระบุตัวตนได้และระบุที่อยู่ได้ในเครือข่าย ซึ่งผู้ใช้รับรู้ได้ในฟังก์ชันการทํางานทั้งหมด การสื่อสารของเครือข่ายใน Matter เริ่มต้นและสิ้นสุดที่โหนด
โหนดคือคอลเล็กชันของปลายทาง ปลายทางแต่ละรายการอยู่เป็นชุดฟีเจอร์ ตัวอย่างเช่น ปลายทางอาจเกี่ยวข้องกับฟังก์ชันการจัดแสง ส่วนอีกฟังก์ชันหนึ่งเกี่ยวข้องกับการตรวจจับการเคลื่อนไหว และดีลอีกรายการที่มียูทิลิตี เช่น OTA ของอุปกรณ์

บทบาทโหนด
บทบาทโหนดเป็นชุดพฤติกรรมที่เกี่ยวข้อง โหนดแต่ละรายการอาจมีบทบาท อย่างน้อยหนึ่งบทบาท บทบาทของโหนดรวมถึงรายการต่อไปนี้
- ค่าคอมมิชชัน: โหนดที่ดําเนินการค่าคอมมิชชัน
- ตัวควบคุม: โหนดที่ควบคุมโหนดอย่างน้อย 1 รายการได้ ตัวอย่างเช่น Google Home app (GHA), Google Assistant และ Google Nest Hub (2nd gen) อุปกรณ์บางประเภท เช่น สวิตช์เปิด/ปิด จะมีบทบาทตัวควบคุม
- ผู้ควบคุม: โหนดที่โหนดต่างๆ ควบคุมได้ อุปกรณ์ส่วนใหญ่เป็นได้ทั้งผู้ควบคุม ยกเว้นอุปกรณ์บางประเภทที่มีบทบาทผู้ควบคุมข้อมูล เช่น สวิตช์เปิด/ปิด สวิตช์เปิด/ปิด เป็นตัวควบคุมได้เท่านั้น และต้องไม่ใช่ผู้ควบคุม
- ผู้ให้บริการ OTA: โหนดที่สามารถอัปเดตซอฟต์แวร์ OTA ได้
- ผู้ขอ OTA: โหนดที่ส่งคําขอการอัปเดตซอฟต์แวร์ OTA ได้
คลัสเตอร์
ภายในปลายทาง โหนดมีคลัสเตอร์อย่างน้อย 1 รายการ สิ่งเหล่านี้เป็นอีกขั้นตอนหนึ่งในลําดับชั้นอุปกรณ์ เนื่องจากจะจัดกลุ่มฟังก์ชันการทํางานเฉพาะ เช่น คลัสเตอร์เปิด/ปิดบนปลั๊กอัจฉริยะ หรือคลัสเตอร์การควบคุมระดับบนปลายทางที่สว่างลง
โหนดยังสามารถมีหลายปลายทาง โดยแต่ละอินสแตนซ์จะสร้างอินสแตนซ์ของฟังก์ชันเดียวกัน เช่น โคมไฟอาจควบคุมการใช้ไฟแต่ละดวงโดยอิสระได้ ส่วนสายไฟก็อาจทําให้ควบคุมเต้ารับแต่ละอันได้
Attributes
ที่ระดับสุดท้าย คุณจะเห็นแอตทริบิวต์ ซึ่งเป็นสถานะที่โหนดถืออยู่ เช่น แอตทริบิวต์ระดับปัจจุบันของคลัสเตอร์การควบคุมระดับ แอตทริบิวต์อาจกําหนดเป็นประเภทข้อมูลที่แตกต่างกัน เช่น uint8, สตริง หรืออาร์เรย์

คำสั่ง
นอกจากแอตทริบิวต์แล้ว คลัสเตอร์ยังมีคําสั่งซึ่งเป็นการดําเนินการที่อาจดําเนินการได้อีกด้วย และเทียบได้กับ DM ของ Matter ในการเรียกใช้โพรซีเยอร์ระยะไกล (RPC) คําสั่งจะอยู่ในรูปแบบคํากริยา เช่น ประตูล็อกในคลัสเตอร์ ล็อกประตู คําสั่งอาจสร้างการตอบสนองและผลลัพธ์ ใน Matter การตอบกลับดังกล่าวจะได้รับการกําหนดเป็นคําสั่งเช่นกัน โดยจะไปในทิศทางตรงกันข้าม
กิจกรรม
และสุดท้าย คลัสเตอร์อาจมีเหตุการณ์ซึ่งถือได้ว่าเป็นระเบียนของการเปลี่ยนแปลงสถานะที่ผ่านมา แม้ว่าแอตทริบิวต์จะแสดงสถานะปัจจุบัน แต่เหตุการณ์คือวารสารของอดีต และรวมถึงการเพิ่มตัวนับ การประทับเวลา และลําดับความสําคัญ ซึ่งช่วยให้บันทึกการเปลี่ยนแปลงสถานะ รวมถึงการประมาณข้อมูลที่ไม่ได้บรรลุด้วยแอตทริบิวต์

ปลายทาง 0 สงวนไว้สําหรับคลัสเตอร์ยูทิลิตี คลัสเตอร์ยูทิลิตี คือคลัสเตอร์เฉพาะที่รวมฟังก์ชันการให้บริการในปลายทาง เช่น การค้นพบ การจัดการ การวินิจฉัย และการอัปเดตซอฟต์แวร์ ในทางกลับกัน คลัสเตอร์ของแอปพลิเคชันรองรับการทํางานหลัก เช่น เปิด/ปิด หรือการวัดอุณหภูมิ
ประเภทอุปกรณ์
เมื่อใช้ชุดผสม ข้อใดควรเป็นอุปกรณ์ที่ผสมการวางแผนการผลิตสําหรับอุปกรณ์ใหม่
ข้อมูลจําเพาะของ Matter กําหนดให้อุปกรณ์ต้องใช้หรือขยายประเภทอุปกรณ์อย่างน้อย 1 ประเภท ประเภทอุปกรณ์คือคอลเล็กชันของคลัสเตอร์ที่ต้องมีและไม่บังคับ ซึ่งกําหนดแอตทริบิวต์ระดับบนสุดของอุปกรณ์จริง เช่น แสงแบบหรี่ การล็อกประตู หรือโปรแกรมเล่นวิดีโอ
เอกสารหลักแบบเจาะจงของ Matter ไม่ได้ระบุประเภทอุปกรณ์ แต่เป็นเอกสารที่มาพร้อมกับไลบรารีอุปกรณ์ ในทํานองเดียวกัน คลัสเตอร์แอปพลิเคชันทั้งหมดมีระบุไว้ในไลบรารีแอปพลิเคชัน ดูเอกสาร 3 รายการนี้ได้ในเว็บไซต์สมาชิก Connectivity Standards Alliance (Alliance)
ปลายทางแต่ละประเภทที่ใช้ประเภทอุปกรณ์ต้องใช้คลัสเตอร์บังคับที่กําหนดประเภทอุปกรณ์ดังกล่าว นอกเหนือจากคลัสเตอร์ที่จําเป็นแล้ว ผู้ใช้ปลายทางอาจใช้คลัสเตอร์เพิ่มเติม รวมถึงคลัสเตอร์ที่ไม่บังคับของประเภทอุปกรณ์อย่างน้อย 1 รายการ หรือแม้แต่คลัสเตอร์ที่ไม่ได้เป็นส่วนหนึ่งของประเภทอุปกรณ์
ไคลเอ็นต์และเซิร์ฟเวอร์
คลัสเตอร์อาจเป็นคลัสเตอร์ไคลเอ็นต์หรือคลัสเตอร์เซิร์ฟเวอร์ก็ได้ แม้ว่าเซิร์ฟเวอร์จะเก็บสถานะและเก็บแอตทริบิวต์ เหตุการณ์ และคําสั่ง แต่ไคลเอ็นต์ไม่เก็บสถานะ และมีหน้าที่เริ่มต้นการโต้ตอบกับคลัสเตอร์เซิร์ฟเวอร์ระยะไกล จึงจะมีผลดังต่อไปนี้
- อ่านจากและเขียนไปยังแอตทริบิวต์ระยะไกลได้
- อ่านเหตุการณ์ระยะไกลได้
- การเรียกใช้คําสั่งจากระยะไกล
แม้ว่า DM จะเป็นแบบลําดับชั้นภายในโหนด แต่ความสัมพันธ์ระหว่างโหนดเหล่านั้นไม่ได้ โหนดใน Matter ไม่มีความสัมพันธ์ ของตัวควบคุม/อุปกรณ์ต่อพ่วงหรือผู้นํา/ผู้ติดตาม ในทางตรงกันข้าม ความสัมพันธ์จะเป็นแนวนอน: คลัสเตอร์อาจเป็นเซิร์ฟเวอร์หรือไคลเอ็นต์ก็ได้ ดังนั้นโหนดอาจเป็นทั้งเซิร์ฟเวอร์และไคลเอ็นต์ที่มีคลัสเตอร์และฟังก์ชันต่างๆ
ตัวอย่างเช่น เราอาจมีโคมไฟตั้งโต๊ะ 2 ดวง ได้แก่ โหนด A และโหนด B โหนดทั้ง 2 โหนดจะใช้ประเภทอุปกรณ์ที่เปิด/ปิด อุปกรณ์ประเภทนี้รวมคลัสเตอร์เปิด/ปิด เซิร์ฟเวอร์ที่ควบคุมเอาต์พุตแสงสว่างที่เกี่ยวข้อง
แต่อุปกรณ์ประจําของเราก็มีสวิตช์เปิด/ปิดสําหรับสวิตช์เปิด/ปิดในตัว ซึ่งเช่นเดียวกับโคมไฟแบบตั้งโต๊ะ ประเภทอุปกรณ์นี้ต้องใช้คลัสเตอร์เปิด/ปิดไคลเอ็นต์ จึงอาจควบคุมคลัสเตอร์เซิร์ฟเวอร์ได้

ในตัวอย่างนี้ คลัสเตอร์ของไคลเอ็นต์ On/Off บนโหนด A จะเปลี่ยนแอตทริบิวต์ของคลัสเตอร์ On/Off ของเซิร์ฟเวอร์ในโหนด A และโหนด B ในขณะที่คลัสเตอร์ Client ของโหนด B จะเปลี่ยนเฉพาะคลัสเตอร์เซิร์ฟเวอร์บนโหนด B เท่านั้น
ในส่วนถัดไปเราจะแสดงรายละเอียดของการทํางานร่วมกันระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ ซึ่งก็คือโมเดลการโต้ตอบ
คลัสเตอร์ข้อบ่งชี้
ตามที่เซิร์ฟเวอร์ Cluster Cluster Server แจ้งไว้คือข้อมูลการเรียก โดยอธิบายปลายทางที่แจกแจงค่าดังนี้
- คลัสเตอร์เซิร์ฟเวอร์
- คลัสเตอร์ของไคลเอ็นต์
- ประเภทอุปกรณ์
- ปลายทางเพิ่มเติมหรือที่เรียกว่าชิ้นส่วน
อุปกรณ์ทุกประเภทต้องมีการใช้งานคลัสเตอร์ข้อบ่งชี้ ประเภทอุปกรณ์หลัก กําหนดในปลายทาง 0 การอ่านคลัสเตอร์ตัวแจ้งจะทําให้ไคลเอ็นต์สามารถมองเห็นข้ามลําดับโครงสร้างแบบเต็มของปลายทางที่ใช้ได้ และดําเนินการที่เกี่ยวข้องได้
คณะกรรมาธิการหรืออุปกรณ์ควบคุม เช่น โทรศัพท์หรือฮับสามารถใช้ข้อมูลที่พบในคลัสเตอร์ตัวอธิบายในการสร้างแบบจําลองอุปกรณ์ (แสง, สวิตช์, ปั๊ม, ตัวควบคุมอุณหภูมิ) และฟีเจอร์ที่เจาะจงซึ่งใช้งานโดยอินสแตนซ์ของอุปกรณ์นั้นๆ ซึ่งแสดง UI ที่ถูกต้องให้กับผู้ใช้
คลัสเตอร์เซิร์ฟเวอร์
แอตทริบิวต์ ServerList
จะแสดงรายการเซิร์ฟเวอร์คลัสเตอร์ในปลายทาง
คลัสเตอร์ของไคลเอ็นต์
แอตทริบิวต์ ClientList
จะแสดงรายการไคลเอ็นต์คลัสเตอร์ในปลายทาง
รายการประเภทอุปกรณ์
แอตทริบิวต์ DeviceTypeList
เป็นรายการประเภทอุปกรณ์ที่ปลายทางรองรับ รวมถึงการแก้ไขที่เกี่ยวข้อง ต้องมีอุปกรณ์อย่างน้อย 1 ประเภท
รายการชิ้นส่วน
PartsList
มีรายการปลายทางที่ใช้สําหรับประเภทอุปกรณ์นี้
PartsList
ของปลายทาง 0 (โหนดราก) มีปลายทางทั้งหมดของอุปกรณ์นอกเหนือจากของตัวเอง (ปลายทาง 0)
PartsList
ของปลายทางอื่นๆ มักจะว่างเปล่า เช่น เซ็นเซอร์อุณหภูมิจะบังคับให้เป็นคลัสเตอร์เซิร์ฟเวอร์การวัดอุณหภูมิ และไม่มีอย่างอื่น
อุปกรณ์ประเภทอื่นๆ อาจประกอบด้วยโครงสร้างที่เป็นโครงสร้างของอินสแตนซ์ประเภทอุปกรณ์มากกว่า 1 ประเภท ตัวอย่างเช่น อุปกรณ์ประเภทโปรแกรมเล่นวิดีโออาจประกอบด้วยทีวี, โปรแกรมเล่นวิดีโอ, ลําโพง และประเภทอุปกรณ์ของแอปเนื้อหาต่างๆ แต่ละประเภท
-
ข้อกําหนดของ Matter กําหนดว่าอุปกรณ์อาจมีโหนดได้หลายโหนด ตัวอย่างเช่น สมาร์ทโฟนอาจมีหลายแอป โดยแต่ละแอป เป็นโหนดที่แตกต่างกัน เพื่อจุดประสงค์ของ Primer นี้ อุปกรณ์ทั้งหมดจะมี โหนดเดียว อุปกรณ์จริงส่วนใหญ่มักใช้รูปแบบนี้↩