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

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

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

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

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

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

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

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

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

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

โคมไฟที่ใช้ทั้งหลอดไฟแบบเปิด/ปิดและสวิตช์ไฟ
รูปที่ 4: กลุ่มคลัสเตอร์ไคลเอ็นต์และเซิร์ฟเวอร์

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

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

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

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

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

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

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

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

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

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

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

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

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

รายการชิ้นส่วน

PartsList มีรายการปลายทางที่ใช้สำหรับการติดตั้งใช้งาน Device Type นี้

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

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

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


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