อุปกรณ์ใน Matter มีโมเดลข้อมูล (DM) ที่กำหนดไว้อย่างชัดเจน ซึ่งเป็นการสร้างโมเดลลำดับชั้นของฟีเจอร์ของอุปกรณ์ ที่ระดับบนสุดของลำดับชั้นนี้จะมีอุปกรณ์
อุปกรณ์และปลายทาง
อุปกรณ์ทั้งหมด ซึ่งรวมถึงสมาร์ทโฟนและผู้ช่วยในบ้าน จะประกอบขึ้นจากโหนด1 โหนดคือทรัพยากรที่ระบุตัวตนได้อย่างแน่ชัดและระบุที่อยู่ในเครือข่ายได้ โดยที่ผู้ใช้มองว่ามีการทำงานโดยสมบูรณ์ในตัวเอง การสื่อสารของเครือข่ายใน Matter จะเริ่มต้นและสิ้นสุดที่โหนด
โหนดคือคอลเล็กชันของอุปกรณ์ปลายทาง ปลายทางแต่ละรายการจะรวมชุดฟีเจอร์ไว้ ตัวอย่างเช่น Endpoint อาจเกี่ยวข้องกับฟังก์ชันแสงสว่าง ขณะที่อีก Endpoint หนึ่งเกี่ยวข้องกับการตรวจจับการเคลื่อนไหว และอีก Endpoint หนึ่งเกี่ยวข้องกับยูทิลิตี เช่น OTA ของอุปกรณ์
บทบาทของโหนด
บทบาทของโหนดคือชุดพฤติกรรมที่เกี่ยวข้อง แต่ละโหนดอาจมีบทบาทอย่างน้อย 1 บทบาท บทบาทของโหนดมีดังนี้
- อุปกรณ์ที่ใช้ในการจัดเตรียม: โหนดที่ทำการจัดเตรียม
- ตัวควบคุม: โหนดที่ควบคุมโหนดอย่างน้อย 1 โหนดได้ ตัวอย่างเช่น Google Home app (GHA), Google Assistant และ Google Nest Hub (2nd gen) อุปกรณ์บางประเภท เช่น สวิตช์เปิด/ปิดไฟ จะมีบทบาทเป็นตัวควบคุม
- อุปกรณ์ที่ถูกควบคุม: โหนดที่ควบคุมได้โดยโหนดอย่างน้อย 1 โหนด อุปกรณ์ส่วนใหญ่สามารถเป็นอุปกรณ์ที่ถูกควบคุมได้ ยกเว้นอุปกรณ์บางประเภทที่มีบทบาทเป็นตัวควบคุม เช่น สวิตช์เปิด/ปิดไฟ สวิตช์เปิด/ปิดไฟเป็นได้เฉพาะตัวควบคุมเท่านั้น และไม่สามารถเป็นอุปกรณ์ที่ถูกควบคุมได้
- ผู้ให้บริการ OTA: โหนดที่สามารถอัปเดตซอฟต์แวร์ OTA ได้
- ผู้ขอ OTA: โหนดที่ขอการอัปเดตซอฟต์แวร์ OTA ได้
คลัสเตอร์
ภายในปลายทาง โหนดจะมีคลัสเตอร์อย่างน้อย 1 รายการ ซึ่งเป็นอีกขั้นตอนหนึ่งในลำดับชั้นของอุปกรณ์ เนื่องจากจะจัดกลุ่มฟังก์ชันการทำงานที่เฉพาะเจาะจง เช่น คลัสเตอร์เปิด/ปิดในปลั๊กอัจฉริยะ หรือคลัสเตอร์การควบคุมระดับในปลายทางของหลอดไฟที่หรี่แสงได้
โหนดอาจมีปลายทางหลายรายการ โดยแต่ละรายการจะสร้างอินสแตนซ์ของฟังก์ชันการทำงานเดียวกัน ตัวอย่างเช่น โคมไฟอาจแสดงการควบคุมหลอดไฟแต่ละดวงอย่างอิสระ หรือรางปลั๊กไฟอาจแสดงการควบคุมเต้ารับแต่ละช่อง
Attributes
ในระดับสุดท้าย เราจะพบแอตทริบิวต์ ซึ่งเป็นสถานะที่โหนดมี เช่น แอตทริบิวต์ระดับปัจจุบันของคลัสเตอร์การควบคุมระดับ แอตทริบิวต์อาจกำหนดเป็นประเภทข้อมูลที่แตกต่างกัน เช่น uint8, สตริง หรืออาร์เรย์
คำสั่ง
นอกจากแอตทริบิวต์แล้ว คลัสเตอร์ยังมีคำสั่ง ซึ่งเป็นการดำเนินการที่อาจทำได้ ซึ่งเทียบเท่ากับการเรียกใช้โพรซีเยอร์ระยะไกล (RPC) ใน DM ของ Matter คำสั่งจะคล้ายกับคำกริยา เช่น lock door ในคลัสเตอร์ Door Lock คำสั่งอาจสร้างคำตอบและผลลัพธ์ ใน 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 เพื่อให้ควบคุมคลัสเตอร์เซิร์ฟเวอร์ได้
ในตัวอย่างนี้ คลัสเตอร์ไคลเอ็นต์เปิด/ปิดในโหนด A กำลังเปลี่ยนแอตทริบิวต์ของคลัสเตอร์เซิร์ฟเวอร์เปิด/ปิดในโหนด A และโหนด B ขณะที่คลัสเตอร์ไคลเอ็นต์ของโหนด B กำลังเปลี่ยนคลัสเตอร์เซิร์ฟเวอร์ในโหนด B เองเท่านั้น
ในส่วนถัดไป เราจะอธิบายรายละเอียดวิธีที่คลัสเตอร์ไคลเอ็นต์และเซิร์ฟเวอร์โต้ตอบกัน ซึ่งก็คือโมเดลการโต้ตอบ
คลัสเตอร์ข้อบ่งชี้
Descriptor Cluster Server จะให้ข้อมูลการตรวจสอบภายในตามชื่อของเซิร์ฟเวอร์ โดยจะอธิบายอุปกรณ์ปลายทางที่แจกแจงข้อมูลต่อไปนี้
- คลัสเตอร์เซิร์ฟเวอร์
- คลัสเตอร์ไคลเอ็นต์
- ประเภทอุปกรณ์
- ปลายทางเพิ่มเติมที่เรียกว่า "ส่วน"
อุปกรณ์ทุกประเภทต้องมีการติดตั้งใช้งานคลัสเตอร์ข้อบ่งชี้ ประเภทอุปกรณ์รูทจะกำหนดไว้ในปลายทาง 0 การอ่านคลัสเตอร์ข้อบ่งชี้จะช่วยให้ไคลเอ็นต์มองเห็นเส้นทางของต้นไม้ทั้งหมดของปลายทางที่พร้อมใช้งานและดำเนินการที่เกี่ยวข้องได้
อุปกรณ์ผู้ควบคุมหรืออุปกรณ์ควบคุม เช่น โทรศัพท์หรือฮับ สามารถใช้ข้อมูลที่พบในคลัสเตอร์ข้อบ่งชี้เพื่อจำลองอุปกรณ์ (ไฟ สวิตช์ ปั๊ม ตัวควบคุมอุณหภูมิ) และฟีเจอร์เฉพาะที่อินสแตนซ์นั้นๆ ของอุปกรณ์ใช้ โดยแสดง UI ที่ถูกต้องแก่ผู้ใช้
คลัสเตอร์เซิร์ฟเวอร์
แอตทริบิวต์ ServerList จะแสดงรายการเซิร์ฟเวอร์คลัสเตอร์ในปลายทาง
คลัสเตอร์ลูกค้า
แอตทริบิวต์ ClientList จะแสดงรายการไคลเอ็นต์คลัสเตอร์ในปลายทาง
รายการประเภทอุปกรณ์
แอตทริบิวต์ DeviceTypeList คือรายการประเภทอุปกรณ์ที่ปลายทางรองรับ พร้อมกับการแก้ไขที่เกี่ยวข้อง โดยต้องมีประเภทอุปกรณ์อย่างน้อย 1 ประเภท
รายการชิ้นส่วน
PartsList มีรายการปลายทางที่ใช้สำหรับการติดตั้งใช้งานประเภทอุปกรณ์นี้
PartsList ของปลายทาง 0 (โหนดรูท) มีปลายทางทั้งหมดของอุปกรณ์นอกเหนือจากตัวอุปกรณ์เอง (ปลายทาง 0)
โดยปกติแล้ว PartsList ของปลายทางอื่นๆ จะว่างเปล่า ตัวอย่างเช่น
เซ็นเซอร์อุณหภูมิจะกำหนดคลัสเตอร์เซิร์ฟเวอร์การวัดอุณหภูมิเท่านั้น
อุปกรณ์ประเภทอื่นๆ อาจประกอบด้วยโครงสร้างแบบต้นไม้ของอินสแตนซ์ประเภทอุปกรณ์มากกว่า 1 รายการ ตัวอย่างเช่น ประเภทอุปกรณ์วิดีโอเพลเยอร์อาจประกอบด้วยทีวี วิดีโอเพลเยอร์ ลำโพง และประเภทอุปกรณ์แอปเนื้อหาต่างๆ โดยแต่ละประเภทจะอยู่ในปลายทางที่แตกต่างกัน
-
ข้อกำหนดเฉพาะของ Matter ระบุว่าอุปกรณ์อาจมีหลายโหนด ตัวอย่างเช่น สมาร์ทโฟนอาจมีหลายแอป โดยแต่ละแอปเป็นโหนดที่แตกต่างกัน สำหรับวัตถุประสงค์ของคู่มือเบื้องต้นนี้ อุปกรณ์ทั้งหมดจะมีโหนดเดียว คาดว่าอุปกรณ์จริงส่วนใหญ่จะเป็นไปตามรูปแบบนี้ ↩