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

อุปกรณ์ใน 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 โมเดลการโต้ตอบของอุปกรณ์

ระบบจะสงวนอุปกรณ์ปลายทาง 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 กำหนดว่าอุปกรณ์อาจ มีโหนดหลายโหนด ตัวอย่างเช่น สมาร์ทโฟนอาจมีแอปหลายแอป โดยแต่ละแอปเป็นโหนดที่ต่างกัน สำหรับวัตถุประสงค์ของข้อมูลเบื้องต้นนี้ อุปกรณ์ทั้งหมดจะมีโหนดเดียว และคาดว่าอุปกรณ์จริงส่วนใหญ่จะเป็นไปตามรูปแบบนี้