อุปกรณ์ใน Matter มีโมเดลข้อมูล (DM) ที่กำหนดไว้อย่างชัดเจน ซึ่งเป็นการสร้างโมเดลแบบลำดับชั้นของฟีเจอร์ของอุปกรณ์ ที่ระดับบนสุดของลำดับชั้นนี้คืออุปกรณ์
อุปกรณ์และอุปกรณ์ปลายทาง
อุปกรณ์ทั้งหมด ซึ่งรวมถึงสมาร์ทโฟนและผู้ช่วยในบ้าน จะประกอบขึ้นจาก โหนด1 โหนดคือทรัพยากรที่ระบุตัวตนได้อย่างแน่ชัดและระบุที่อยู่ในเครือข่ายได้ โดยที่ผู้ใช้มองว่ามีการทำงานโดยสมบูรณ์ในตัวเอง การสื่อสารของเครือข่ายใน Matter จะเริ่มต้นและสิ้นสุดที่โหนด
โหนดคือคอลเล็กชันของปลายทาง แต่ละ Endpoint จะมีชุดฟีเจอร์ เช่น ปลายทางหนึ่งอาจเกี่ยวข้องกับฟังก์ชันการให้แสงสว่าง ขณะที่อีกปลายทางหนึ่งเกี่ยวข้องกับการตรวจจับการเคลื่อนไหว และอีกปลายทางหนึ่งเกี่ยวข้องกับยูทิลิตี เช่น OTA ของอุปกรณ์
บทบาทของโหนด
บทบาทของโหนดคือชุดของพฤติกรรมที่เกี่ยวข้อง แต่ละโหนดอาจมีบทบาทอย่างน้อย 1 บทบาท บทบาทของโหนดมีดังนี้
- อุปกรณ์ที่ใช้ในการจัดเตรียม: โหนดที่ทำการจัดเตรียม
- ตัวควบคุม: โหนดที่ควบคุมโหนดอย่างน้อย 1 โหนดได้ ตัวอย่างเช่น Google Home app (GHA), Google Assistant และ Google Nest Hub (2nd gen) อุปกรณ์บางประเภท เช่น สวิตช์เปิด/ปิดไฟ มีบทบาทเป็นตัวควบคุม
- อุปกรณ์ที่ถูกควบคุม: โหนดที่โหนดอื่นอย่างน้อย 1 โหนดควบคุมได้ อุปกรณ์ส่วนใหญ่สามารถเป็นอุปกรณ์ที่ถูกควบคุมได้ ยกเว้นอุปกรณ์บางประเภท ที่มีบทบาทเป็นตัวควบคุม เช่น สวิตช์ไฟเปิด/ปิด สวิตช์เปิด/ปิดไฟ สามารถเป็นได้เฉพาะตัวควบคุม และต้องไม่ใช่บัญชีที่อยู่ภายใต้การควบคุม
- ผู้ให้บริการ OTA: โหนดที่สามารถให้บริการอัปเดตซอฟต์แวร์ OTA
- ผู้ขอ OTA: โหนดที่ขออัปเดตซอฟต์แวร์ OTA ได้
คลัสเตอร์
ภายในปลายทาง โหนดจะมีคลัสเตอร์อย่างน้อย 1 รายการ ซึ่งเป็นอีกขั้นตอนหนึ่งในลำดับชั้นของอุปกรณ์ เนื่องจากจะจัดกลุ่มฟังก์ชันการทำงานที่เฉพาะเจาะจง เช่น คลัสเตอร์เปิด/ปิดในปลั๊กอัจฉริยะ หรือคลัสเตอร์การควบคุมระดับในอุปกรณ์ปลายทางหลอดไฟที่หรี่แสงได้
โหนดอาจมีปลายทางหลายรายการ ซึ่งแต่ละรายการจะสร้างอินสแตนซ์ของฟังก์ชันการทำงานเดียวกัน ตัวอย่างเช่น โคมไฟอาจแสดงการควบคุมหลอดไฟแต่ละดวงแยกกัน หรือปลั๊กพ่วงอาจแสดงการควบคุมเต้ารับแต่ละช่อง
Attributes
ที่ระดับสุดท้าย เราจะเห็นแอตทริบิวต์ ซึ่งเป็นสถานะที่โหนดถือครองอยู่ เช่น แอตทริบิวต์ระดับปัจจุบันของคลัสเตอร์การควบคุมระดับ แอตทริบิวต์ อาจกำหนดเป็นประเภทข้อมูลต่างๆ เช่น uint8, สตริง หรืออาร์เรย์
คำสั่ง
นอกจากแอตทริบิวต์แล้ว คลัสเตอร์ยังมีคำสั่ง ซึ่งเป็นการดำเนินการที่อาจทำได้ ซึ่งเทียบเท่ากับการเรียกใช้โพรซีเยอร์ระยะไกลใน DM ของ Matter คำสั่งมีลักษณะคล้ายคำกริยา เช่น ล็อกประตูในคลัสเตอร์ล็อกประตู คำสั่งอาจสร้างการตอบกลับและผลลัพธ์ได้ ในMatter การตอบกลับดังกล่าวจะถือเป็นคำสั่งด้วยเช่นกัน โดยจะไปในทิศทางตรงกันข้าม
กิจกรรม
สุดท้ายนี้ คลัสเตอร์อาจมีเหตุการณ์ด้วย ซึ่งถือเป็นบันทึก การเปลี่ยนสถานะที่ผ่านมา ในขณะที่แอตทริบิวต์แสดงสถานะปัจจุบัน เหตุการณ์คือบันทึกของอดีต และมีตัวนับที่เพิ่มขึ้นอย่างต่อเนื่อง การประทับเวลา และลําดับความสําคัญ ซึ่งช่วยให้สามารถบันทึกการเปลี่ยนสถานะ รวมถึงการสร้างรูปแบบข้อมูลที่ ทำได้ยากด้วยแอตทริบิวต์
ปลายทาง 0 จะสงวนไว้สำหรับคลัสเตอร์ยูทิลิตี คลัสเตอร์ยูทิลิตี คือคลัสเตอร์เฉพาะที่รวมฟังก์ชันการให้บริการในอุปกรณ์ปลายทาง เช่น การค้นหา การกำหนดที่อยู่ การวินิจฉัย และการอัปเดตซอฟต์แวร์ ในทางกลับกัน Application Clusters รองรับการดำเนินการหลัก เช่น เปิด/ปิด หรือ การวัดอุณหภูมิ
ประเภทอุปกรณ์
โดยรวมแล้ว ควรมีการรวมคลัสเตอร์ใดบ้างเมื่อผู้ผลิตอุปกรณ์วางแผนที่จะสร้างอุปกรณ์ใหม่
Matter กำหนดให้อุปกรณ์ต้องใช้ หรือขยายประเภทอุปกรณ์อย่างน้อย 1 ประเภท ประเภทอุปกรณ์คือคอลเล็กชันของคลัสเตอร์ที่จำเป็นและไม่บังคับซึ่งกำหนดแอตทริบิวต์ระดับบนสุดของอุปกรณ์จริง เช่น หลอดไฟแบบหรี่แสงได้ ล็อกประตู หรือวิดีโอเพลเยอร์
Matterเอกสารหลักของข้อกำหนดไม่ได้ระบุประเภทอุปกรณ์ แต่เอกสารประกอบอย่างคลังอุปกรณ์เป็นผู้ระบุ ในทำนองเดียวกัน คลัสเตอร์แอปพลิเคชันทั้งหมดจะกำหนดไว้ในคลังคลัสเตอร์ แอปพลิเคชัน คุณดูเอกสารทั้ง 3 ฉบับนี้ได้ในConnectivity Standards Alliance (Alliance)เว็บไซต์สำหรับสมาชิก
แต่ละอุปกรณ์ปลายทางที่ใช้ประเภทอุปกรณ์ต้องใช้คลัสเตอร์ที่จำเป็น ซึ่งกำหนดประเภทอุปกรณ์นั้น นอกเหนือจากคลัสเตอร์ที่จำเป็นแล้ว อุปกรณ์ปลายทางอาจใช้คลัสเตอร์เพิ่มเติม ซึ่งรวมถึงคลัสเตอร์ที่ไม่บังคับของประเภทอุปกรณ์อย่างน้อย 1 คลัสเตอร์ หรือแม้แต่คลัสเตอร์ที่ไม่ได้เป็นส่วนหนึ่งของประเภทอุปกรณ์
ไคลเอ็นต์และเซิร์ฟเวอร์
คลัสเตอร์อาจเป็นคลัสเตอร์ไคลเอ็นต์หรือคลัสเตอร์เซิร์ฟเวอร์ก็ได้ ในขณะที่เซิร์ฟเวอร์เป็นแบบเก็บสถานะและมีแอตทริบิวต์ เหตุการณ์ และคำสั่ง ไคลเอ็นต์จะเป็นแบบไม่เก็บสถานะและมีหน้าที่เริ่มการโต้ตอบกับคลัสเตอร์เซิร์ฟเวอร์ระยะไกล จึงดำเนินการต่อไปนี้
- อ่านและเขียนแอตทริบิวต์ระยะไกล
- อ่านเหตุการณ์ระยะไกล
- การเรียกใช้คำสั่งจากระยะไกล
แม้ว่า DM จะเป็นแบบลำดับชั้นภายในโหนด แต่ความสัมพันธ์ระหว่างโหนดจะไม่เป็นเช่นนั้น โหนดใน Matter ไม่มีตัวควบคุม/อุปกรณ์ต่อพ่วงหรือความสัมพันธ์แบบผู้นำ/ผู้ติดตามในแนวตั้ง ในทางตรงกันข้าม ความสัมพันธ์จะเป็นแนวนอน กล่าวคือ คลัสเตอร์ใดๆ อาจเป็นได้ทั้งเซิร์ฟเวอร์หรือไคลเอ็นต์ ดังนั้นโหนดอาจเป็นทั้งเซิร์ฟเวอร์และไคลเอ็นต์ในคลัสเตอร์และฟังก์ชันการทำงานที่แตกต่างกัน
เช่น เราอาจมีโคมไฟตั้งโต๊ะ 2 อัน ได้แก่ โหนด A และ โหนด B ทั้ง 2 โหนด ใช้ประเภทอุปกรณ์เปิด/ปิดไฟ ประเภทอุปกรณ์นี้มีคลัสเตอร์เซิร์ฟเวอร์เปิด/ปิดที่ควบคุมเอาต์พุตแสงทางกายภาพที่เกี่ยวข้อง
แต่เช่นเดียวกับโคมไฟตั้งโต๊ะทั่วไป อุปกรณ์จริงของเราจะมีประเภทอุปกรณ์สวิตช์เปิด/ปิดไฟสำหรับสวิตช์เปิด/ปิดในพื้นที่ด้วย อุปกรณ์ ประเภทนี้ต้องใช้คลัสเตอร์ไคลเอ็นต์เปิด/ปิดเพื่อควบคุมคลัสเตอร์เซิร์ฟเวอร์
ในตัวอย่างนี้ คลัสเตอร์ไคลเอ็นต์เปิด/ปิดในโหนด A กำลังเปลี่ยนแอตทริบิวต์ ของคลัสเตอร์เซิร์ฟเวอร์เปิด/ปิดในโหนด A และโหนด B ขณะที่คลัสเตอร์ไคลเอ็นต์ของโหนด B กำลังเปลี่ยนคลัสเตอร์เซิร์ฟเวอร์ในโหนด B เองเท่านั้น
ในส่วนถัดไป เราจะอธิบายรายละเอียดวิธีที่คลัสเตอร์ไคลเอ็นต์และเซิร์ฟเวอร์โต้ตอบกัน ซึ่งก็คือรูปแบบการโต้ตอบ
คลัสเตอร์ข้อบ่งชี้
ตามชื่อที่สื่อถึง เซิร์ฟเวอร์คลัสเตอร์ตัวอธิบายจะให้ข้อมูลการตรวจสอบ โดยจะอธิบายอุปกรณ์ปลายทางโดยระบุ
- คลัสเตอร์เซิร์ฟเวอร์
- คลัสเตอร์ไคลเอ็นต์
- ประเภทอุปกรณ์
- ปลายทางเพิ่มเติมที่เรียกว่าพาร์ท
อุปกรณ์ทุกประเภทต้องใช้คลัสเตอร์ตัวอธิบาย Root Device Type จะกำหนดไว้ในปลายทาง 0 การอ่านคลัสเตอร์ตัวอธิบายจะช่วยให้ไคลเอ็นต์มองเห็นโครงสร้างแบบต้นไม้ทั้งหมดของปลายทางที่พร้อมใช้งานและดำเนินการที่เกี่ยวข้องได้
อุปกรณ์ที่จัดสรรหรือควบคุม เช่น โทรศัพท์หรือฮับ สามารถใช้ ข้อมูลที่พบในคลัสเตอร์ตัวอธิบายเพื่อสร้างแบบจำลองอุปกรณ์ (หลอดไฟ สวิตช์ ปั๊ม เทอร์โมสตัท) และฟีเจอร์เฉพาะที่ติดตั้งใช้งานโดยอินสแตนซ์เฉพาะของอุปกรณ์นั้น เพื่อแสดง UI ที่ถูกต้องแก่ผู้ใช้
คลัสเตอร์เซิร์ฟเวอร์
ServerList แอตทริบิวต์จะแสดงเซิร์ฟเวอร์คลัสเตอร์ในปลายทาง
คลัสเตอร์ลูกค้า
ClientListแอตทริบิวต์จะแสดงรายการไคลเอ็นต์คลัสเตอร์ในปลายทาง
รายการประเภทอุปกรณ์
แอตทริบิวต์ DeviceTypeList คือรายการประเภทอุปกรณ์ที่ปลายทางรองรับ พร้อมกับการแก้ไขที่เกี่ยวข้อง ต้องมี Device Type อย่างน้อย 1 รายการ
รายการชิ้นส่วน
PartsList มีรายการปลายทางที่ใช้ในการติดตั้งใช้งานอุปกรณ์
ประเภทนี้
PartsList ของอุปกรณ์ปลายทาง 0 (โหนดรูท) มีอุปกรณ์ปลายทางทั้งหมดของ
อุปกรณ์ ยกเว้นตัวมันเอง (อุปกรณ์ปลายทาง 0)
โดยปกติแล้ว PartsList ของปลายทางอื่นๆ จะว่างเปล่า เช่น
Temperature Sensor กำหนดให้มีคลัสเตอร์เซิร์ฟเวอร์การวัดอุณหภูมิและไม่มี
อย่างอื่น
อุปกรณ์ประเภทอื่นๆ อาจประกอบขึ้นในโครงสร้างแบบต้นไม้ของอินสแตนซ์ Device Type มากกว่า 1 รายการ เช่น ประเภทอุปกรณ์เครื่องเล่นวิดีโออาจประกอบด้วยทีวี เครื่องเล่นวิดีโอ ลำโพง และประเภทอุปกรณ์แอปเนื้อหาต่างๆ โดยแต่ละรายการจะอยู่ใน อุปกรณ์ปลายทางที่แตกต่างกัน
-
Matter ข้อกำหนดระบุว่าอุปกรณ์อาจมีโหนดหลายรายการ เช่น สมาร์ทโฟนอาจมีหลายแอป โดยแต่ละแอปเป็นโหนดที่แตกต่างกัน สำหรับวัตถุประสงค์ของข้อมูลเบื้องต้นนี้ อุปกรณ์ทั้งหมดจะมีโหนดเดียว คาดว่าอุปกรณ์จริงส่วนใหญ่จะใช้รูปแบบนี้ ↩