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

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

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

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

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

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

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

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

  • อุปกรณ์ที่ใช้ในการจัดเตรียม: โหนดที่ทำการจัดเตรียม
  • Controller: โหนดที่ควบคุมโหนดอย่างน้อย 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 สงวนไว้สำหรับคลัสเตอร์ยูทิลิตี คลัสเตอร์ยูทิลิตี คือคลัสเตอร์ที่เฉพาะเจาะจงซึ่งรวมฟังก์ชันการให้บริการในอุปกรณ์ปลายทาง เช่น การค้นหา การกำหนดที่อยู่ การวินิจฉัย และการอัปเดตซอฟต์แวร์ ในทางกลับกัน Application Clusters รองรับการดำเนินการหลัก เช่น เปิด/ปิด หรือ การวัดอุณหภูมิ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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