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

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

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

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

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

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

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

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

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

คลัสเตอร์

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

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

Attributes

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

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

คำสั่ง

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

กิจกรรม

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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