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

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

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

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

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

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

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

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

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

คลัสเตอร์

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

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

Attributes

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

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

คำสั่ง

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

กิจกรรม

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

คลัสเตอร์ลูกค้า

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

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

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

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

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

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

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

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


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