โมเดลข้อมูลอุปกรณ์

อุปกรณ์ใน Matter มีโมเดลข้อมูลที่กำหนดไว้อย่างดี (DM) ซึ่งเป็นโมเดลลำดับชั้นของฟีเจอร์ของอุปกรณ์ ที่ระดับบนสุดของลำดับชั้นนี้จะมีอุปกรณ์อยู่

อุปกรณ์และปลายทาง

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

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

ลำดับชั้นของอุปกรณ์ โหนด และปลายทาง
ภาพที่ 1: อุปกรณ์ โหนด และปลายทาง

บทบาทของโหนด

บทบาทของโหนดคือชุดของลักษณะการทำงานที่เกี่ยวข้อง แต่ละโหนดอาจมีบทบาทอย่างน้อย 1 บทบาท บทบาทของโหนดมีดังนี้

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

คลัสเตอร์

ภายในปลายทาง โหนดจะมีคลัสเตอร์อย่างน้อย 1 รายการ ซึ่งเป็นอีกขั้นตอนหนึ่งในลำดับชั้นของอุปกรณ์เนื่องจากจัดกลุ่มฟังก์ชันการทำงานเฉพาะ เช่น คลัสเตอร์ที่เปิด/ปิดบนปลั๊กอัจฉริยะ หรือคลัสเตอร์การควบคุมระดับบนปลายทางหลอดไฟหรี่แสงได้

โหนดอาจมีปลายทางได้หลายรายการ โดยแต่ละโหนดจะสร้างอินสแตนซ์ของฟังก์ชันการทำงานเดียวกัน เช่น หลอดไฟอาจเผยให้เห็นการควบคุมไฟแต่ละดวงหรือปลั๊กไฟอาจหลุดการควบคุมเต้ารับ

Attributes

ที่ระดับสุดท้าย เราจะพบแอตทริบิวต์ ซึ่งเป็นสถานะที่โหนดยึดไว้ เช่น แอตทริบิวต์ระดับปัจจุบันของคลัสเตอร์การควบคุมระดับ คุณอาจกำหนดแอตทริบิวต์เป็นข้อมูลประเภทต่างๆ เช่น uint8, สตริง หรืออาร์เรย์

ลำดับชั้นของโหนด ปลายทาง แอตทริบิวต์ และคำสั่ง
ภาพที่ 2: โหนด, ปลายทาง, แอตทริบิวต์ และคำสั่ง

คำสั่ง

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

กิจกรรม

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

อุปกรณ์ตัวอย่างแบบเต็ม
ภาพที่ 3: ตัวอย่างลำดับชั้นของMatter โมเดลการโต้ตอบของอุปกรณ์

ปลายทาง 0 สงวนไว้สำหรับคลัสเตอร์ยูทิลิตี คลัสเตอร์ยูทิลิตีคือคลัสเตอร์ที่เฉพาะเจาะจงที่รวมฟังก์ชันการทำงานของบริการในปลายทาง เช่น การค้นหา การกำหนดที่อยู่ การวินิจฉัย และการอัปเดตซอฟต์แวร์ ในทางตรงกันข้าม คลัสเตอร์แอปพลิเคชันรองรับการดำเนินการหลัก เช่น เปิด/ปิด หรือการวัดอุณหภูมิ

ประเภทอุปกรณ์

เมื่อผู้ผลิตอุปกรณ์วางแผนอุปกรณ์ใหม่แล้ว ควรรวมคลัสเตอร์ใดไว้บ้าง

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

เอกสารหลักของข้อมูลจำเพาะของ Matter ไม่ได้มีการระบุประเภทอุปกรณ์ แต่ระบุโดยเอกสารประกอบอย่างไลบรารีอุปกรณ์ ในทำนองเดียวกัน คลัสเตอร์แอปพลิเคชันทั้งหมดจะระบุไว้ในไลบรารีคลัสเตอร์ของแอปพลิเคชัน ดูเอกสารทั้ง 3 ประเภทได้ที่เว็บไซต์ของสมาชิก Connectivity Standards Alliance (Alliance)

ปลายทางแต่ละปลายทางที่ใช้งานประเภทอุปกรณ์ต้องใช้คลัสเตอร์ที่จำเป็นซึ่งจะกำหนดประเภทอุปกรณ์ดังกล่าว นอกเหนือจากคลัสเตอร์ที่จำเป็นแล้ว ปลายทางอาจใช้คลัสเตอร์เพิ่มเติม ซึ่งรวมถึงคลัสเตอร์ที่ไม่บังคับของประเภทอุปกรณ์อย่างน้อย 1 รายการ หรือแม้แต่คลัสเตอร์ที่ไม่ได้เป็นส่วนหนึ่งของประเภทอุปกรณ์ดังกล่าว

ไคลเอ็นต์และเซิร์ฟเวอร์

คลัสเตอร์อาจเป็นคลัสเตอร์ของไคลเอ็นต์หรือคลัสเตอร์เซิร์ฟเวอร์ก็ได้ แม้ว่าเซิร์ฟเวอร์จะเก็บสถานะและมีแอตทริบิวต์ เหตุการณ์ และคำสั่ง แต่ไคลเอ็นต์จะไม่เก็บสถานะ และมีหน้าที่เริ่มต้นการโต้ตอบกับคลัสเตอร์เซิร์ฟเวอร์ระยะไกล ซึ่งจะดำเนินการดังต่อไปนี้

  • อ่านและเขียนไปยังแอตทริบิวต์ระยะไกล
  • อ่านเหตุการณ์ระยะไกลของตัวเอง
  • การเรียกใช้คำสั่งระยะไกล

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

เช่น เราอาจมีโคมไฟตั้งโต๊ะ 2 ดวง ได้แก่ โหนด A และโหนด B โหนดทั้ง 2 โหนดใช้ประเภทอุปกรณ์เปิด/ปิดไฟ อุปกรณ์ประเภทนี้มีคลัสเตอร์เปิด/ปิด เซิร์ฟเวอร์ที่ควบคุมเอาต์พุตแสงทางกายภาพที่เกี่ยวข้อง

แต่อุปกรณ์จริงของเราจะมีสวิตช์ ประเภทเปิด/ปิดสวิตช์สำหรับสวิตช์เปิด/ปิดในตัว ซึ่งเหมือนที่โคมไฟตั้งโต๊ะทั่วไปมี อุปกรณ์ประเภทนี้ต้องใช้คลัสเตอร์ไคลเอ็นต์เปิด/ปิด เพื่อให้สามารถควบคุมคลัสเตอร์ของเซิร์ฟเวอร์ได้

หลอดไฟที่ใช้ทั้งไฟเปิด/ปิดและสวิตช์ไฟ
ภาพที่ 4: คลัสเตอร์ของไคลเอ็นต์และเซิร์ฟเวอร์

ในตัวอย่างนี้ คลัสเตอร์ของไคลเอ็นต์ที่เปิด/ปิดในโหนด A จะเปลี่ยนแอตทริบิวต์ของคลัสเตอร์เซิร์ฟเวอร์ที่เปิด/ปิดในโหนด A และโหนด B ในขณะที่คลัสเตอร์ไคลเอ็นต์ของโหนด B จะเปลี่ยนเฉพาะคลัสเตอร์ของเซิร์ฟเวอร์ในโหนด B เท่านั้น

ในส่วนถัดไป เราจะอธิบายวิธีการทำงานของคลัสเตอร์ของไคลเอ็นต์และเซิร์ฟเวอร์ นั่นคือโมเดลการโต้ตอบ

คลัสเตอร์ข้อบ่งชี้

ซึ่งเหมือนกับชื่อที่บอกไว้ เซิร์ฟเวอร์คลัสเตอร์ Descriptor จะให้ข้อมูลสรุป โดยจะอธิบายปลายทางที่แจกแจงข้อมูลต่อไปนี้

  • คลัสเตอร์เซิร์ฟเวอร์
  • คลัสเตอร์ไคลเอ็นต์
  • ประเภทอุปกรณ์
  • ปลายทางเพิ่มเติม หรือที่เรียกว่าชิ้นส่วน

อุปกรณ์ทุกประเภทต้องมีการใช้งานคลัสเตอร์ข้อบ่งชี้ รูทประเภทอุปกรณ์ จะกำหนดที่ปลายทาง 0 การอ่านคลัสเตอร์ Descriptor จะทำให้ไคลเอ็นต์มีระดับการเข้าถึงในการข้ามผ่านต้นไม้แบบเต็มของปลายทางที่มีอยู่และดำเนินการที่เกี่ยวข้อง

คณะกรรมาธิการหรืออุปกรณ์ควบคุม เช่น โทรศัพท์หรือฮับ สามารถใช้ข้อมูลที่พบในคลัสเตอร์คำอธิบายเพื่อจำลองอุปกรณ์ (ไฟ สวิตช์ ปั๊ม ตัวควบคุมอุณหภูมิ) และฟีเจอร์เฉพาะที่ใช้งานโดยอินสแตนซ์เฉพาะของอุปกรณ์นั้นๆ เพื่อแสดง UI ที่ถูกต้องแก่ผู้ใช้

คลัสเตอร์เซิร์ฟเวอร์

แอตทริบิวต์ ServerList จะแสดงรายการคลัสเตอร์เซิร์ฟเวอร์ในปลายทาง

คลัสเตอร์ไคลเอ็นต์

แอตทริบิวต์ ClientList จะแสดงรายการคลัสเตอร์ไคลเอ็นต์ในปลายทาง

รายการประเภทอุปกรณ์

แอตทริบิวต์ DeviceTypeList คือรายการประเภทอุปกรณ์ที่ปลายทางรองรับ พร้อมการแก้ไขที่เกี่ยวข้อง โดยต้องมีประเภทอุปกรณ์อย่างน้อย 1 ประเภท

รายการส่วน

PartsList มีรายการปลายทางที่ใช้สำหรับใช้งานอุปกรณ์ประเภทนี้

PartsList ของปลายทาง 0 (โหนดราก) มีปลายทางทั้งหมดของอุปกรณ์นอกเหนือจากนั้น (ปลายทาง 0)

โดยปกติแล้ว PartsList ของปลายทางอื่นๆ จะว่างเปล่า เช่น เซ็นเซอร์อุณหภูมิจะกำหนดให้คลัสเตอร์เซิร์ฟเวอร์การวัดอุณหภูมิทำงานแทน

อุปกรณ์ประเภทอื่นๆ อาจเขียนขึ้นในโครงสร้างแบบต้นไม้ของอินสแตนซ์ประเภทอุปกรณ์มากกว่า 1 อินสแตนซ์ เช่น ประเภทอุปกรณ์โปรแกรมเล่นวิดีโออาจประกอบด้วยทีวี วิดีโอเพลเยอร์ ลำโพง และประเภทอุปกรณ์แอปเนื้อหาประเภทต่างๆ โดยแต่ละประเภทอยู่ในปลายทางที่ต่างกัน


  1. ข้อมูลจำเพาะของ Matter ระบุว่าอุปกรณ์อาจมีหลายโหนด ตัวอย่างเช่น สมาร์ทโฟนอาจมีแอปหลายแอป โดยแต่ละแอปจะเป็นโหนดที่ต่างกัน ตามวัตถุประสงค์ของการใช้งานเบื้องต้นนี้ อุปกรณ์ทุกเครื่องจะมี โหนดเดียว คาดว่าอุปกรณ์จริงส่วนใหญ่จะทำตามรูปแบบนี้