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

อุปกรณ์ใน 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: โหนด อุปกรณ์ปลายทาง แอตทริบิวต์ และคำสั่ง

คำสั่ง

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

กิจกรรม

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

คลัสเตอร์ตัวอธิบาย

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

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

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

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

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

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

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

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

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

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

รายการส่วนประกอบ

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

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

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

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


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