Matter ‐ Development of Compliant devices - 180D-FW-2023/Knowledge-Base-Wiki GitHub Wiki

image

Why do we need Matter?

Interoperability. If one were to go to the local Best Buy to look for a smart home products, brands like Amazon Alex, Google Nest, and many more cover the shelves -- each of these brands offer consumers their own app and cloud based ecosystems allowing for control and automation. Unfortunately for many of these products, if the manufacture were to stop supporting the apps or cloud based ecosystems, these products simply become e-waste. Moreover, since products from different brands speak different "languages" they are stuck only communicating within their own ecosystem. Take for example a Google Nest Thermostat and a SwitchBot temperature sensor, the sensor has valuable information for the thermostat but unfortunately there is no way for the thermostat to receive that information since they are not in the same ecosystem. Although this is only the tip of the iceberg, security is also a major concern as these products often depend on a cloud service to function. If the manufacture's cloud were to be compromised potentially millions of devices behind consumer networks become attack vectors. Learning from the infant years of IOT (internet of things) it has became clear that a smart home standard that allows for interoperability and local control is needed.

Background

Beginning as Project Connected Home over IP, Matter is a standard started by some of the most influential technology companies – Amazon, Apple, Google, Samsung, and the Zigbee Alliance. The ultimate goal of matter is to enable interoperability between smart devices created by different manufacturers and brands. As the original name suggests the standard utilizes the widely used Internet Protocol (IP) (commonly known as TCP/IP) as a foundation for the protocol. Addressing a common problem of cloud dependency, an intrinsic property of many current smart home devices, Matter allows for products to run over the local network and does not require proprietary hardware.

Matter Specification Documents

These are documents released by the governing body of Matter -- Connectivity Standards Alliance (CSA) -- establishing the specifications for supported devices and their implementation. These specifications can be thought of as building blocks that everyone agrees to use. Think about the alphabet, these characters are the fundamental building blocks of the english language. When multiple letters are combined, words are created and the group of letters take on meaning. Then when multiple words work together a sentence is formed a message is conveyed. Similarly when specification attributes are combined, they give rise to a device that has function (i.e. batteryLevel + doorStatus can give rise to a door sensor). Then when multiple devices are put together they accomplish the goal of making a home smarter.

Matter Core Specification 4(https://github.com/180D-FW-2023/Knowledge-Base-Wiki/files/13292383/Matter-1.2-Core-Specification.pdf)

This document outlines the fundamental requirements of the Matter standard to enable it to function over Internet Protocol or TCP/IP. An example of an important definition in the core specification is the product identifier (Product ID, PID). This is a 16-bit number that identifies the product under a certain vendor. These PIDs must be unique for each product under the vendor’s Vendor ID or VID. For example if Test Vendor #1 with VID 0xFFF1 uses the the PID 0x0001, Test Vendor #2 with VID 0xFFF2 may also use the PID 0x0001 regardless of the device types. On the other hand if Test Vendor #1 has two products they can not both share PID 0x0001.

Matter Standard Namespace Specification 6(https://github.com/180D-FW-2023/Knowledge-Base-Wiki/files/13292385/Matter-1.2-Standard-Namespace-Specification.pdf)

The purpose of namespaces is to establish unique identifiers for devices and their associated properties. With unique identifiers, Matter ensures that there are no conflicts between products from different vendors and that other Matter devices can interoperate seamlessly. For example Matter defines the namespace “Common Compass Direction Namespace” by ID 0x02. The subsequent tags or properties associated with this namespace are as follows: 0x00 Northward 0x01 North-Eastward 0x02 Eastward 0x03 South-Eastward 0x04 Southward 0x05 South-Westward 0x06 Westward 0x07 North-Westward

image

(Courtesy of Geeks for Geeks) 8(https://www.geeksforgeeks.org/namespaces-and-scope-in-python/#)

Matter Device Library Specification 5(https://github.com/180D-FW-2023/Knowledge-Base-Wiki/files/13292384/Matter-1.2-Device-Library-Specification.pdf)

The purpose of this device library specification is to define “fundamental requirements for Matter Device Types” 5(https://github.com/180D-FW-2023/Knowledge-Base-Wiki/files/13292384/Matter-1.2-Device-Library-Specification.pdf). By specifying device types in the Matter standard, there is no uncertainty as to what each device is. Furthermore, this allows for templates to be applied as this guarantees a device of a certain class has defined attributes that are enumerated in a specific way. For example, a contact sensor, ID 0x0015 must have the following properties in order to be considered a contact sensor within the Matter standard: 0x0003 Identity 0x0045 Boolean State

image

(Courtesy of Google Developer Center) 7(https://developers.home.google.com/matter/primer/device-data-model)

Matter Application Cluster Specification 3(https://github.com/180D-FW-2023/Knowledge-Base-Wiki/files/13292382/Matter-1.2-Application-Cluster-Specification.pdf)

The ability to group lights or motorized window coverings is an essential part of having a smart home. In this specification the Matter Application Cluster Library (MACL) is defined. Clusters combine functions that are commonly used together into a building block for larger applications. An example of a cluster would be an On/Off cluster which tells a group of things to turn on and off. If one were to combine the On/Off cluster with a Level control cluster, it would be possible to configure groups of lights to dim to a defined level and to turn on and off in unison.

image

(Courtesy of The ESP Journal) 2(https://blog.espressif.com/matter-clusters-attributes-commands-82b8ec1640a0)

Certification Process

Why certify?

Certificates are documents that indicate compliance with sets of standards, take for example a board certified doctor. The certification tells the patients that the doctor has undergone a required amount of training and education, and that the board agrees he or she is fit to practice. Similarly the Matter certification indicates that a product is fit to operate within the Matter ecosystem and is held to the strict specifications outlined in the specification documents. Again similar to a board certification, the Matter certification must be awarded by the governing body -- not the individual or manufacture themselves. Self-certification is not an option for Matter as that degrades the quality of the ecosystem by allowing misconceptions of the standard to enter the market.

The three major phases of certification are:

  1. Product development
  • During this phase the manufacturer uses the specification posted by the CSA alliance to produce a product that is within specification. Resources on developing such products are available via the CSA alliance.
  1. Certification testing at an Authorized Test Provider
  • Certification via an authorized test provider allows the CSA alliance to ensure that there is adequate documentation from an unbiased third party. Furthermore this serves as a double check, ensuring that the manufacturer did not misinterpret any of the standards set forth in the Matter specification.
  1. Application for certification with the Alliance
  • Following certification manufactures are granted use of the Matter logo which allows for consumers to easily identify products that are held to a standard and that are guaranteed to function with other Matter compliant devices.

Broken down into more detail, the certification steps are as follows:

1. Become a member

There are currently four classes of membership in the CSA alliance:

  • Associate Member - Members that do not build or manufacture IoT products. This allows for certification of white-label products (products produced by other manufactures and branded by the associate member).
  • Adopter Member - Members of this tier may use existing specifications as a foundation for products and may certify manufactured products via certification programs.
  • Participant Member - These members may contribute to the standard and develop extensions of the standard. Participant members will also have early access to new specifications and testing.
  • Promoter Members - Members of this tier will lead development of the Alliance and have a part in the final approval of standards set forth by the Alliance. Benefits include a seat on the board of directors and the ability to lead and participate in board committees.

https://csa-iot.org/become-member/

2. Request a Manufacturer ID/Vendor ID

At this phase in the process manufacturers will request a unique identification number that will be used to denote the manufacturer of the product within the standard.

https://csa-iot.org/contact-us/

3. Select a Compliant Platform or Network Transport

Matter has the ability to function over Zigbee, compliant platforms are enumerated for manufacturers on the CSA website.

https://csa-iot.org/csa-iot_products/?p_type=17#products

Alternatively, Matter products over network transport, these networks include Wi-Fi, Thread, and Ethernet. In order to use these networks, certification from the respective standards organizations are required before certification of Matter within the Alliance.

4. Choose a Testing Provider

When ready, authorized third party testing providers are designated by CSA. The list of authorized providers can be found on the CSA website.

https://csa-iot.org/certification/testing-providers/

5. Send Product to be Tested

During this stage, the authorized third party testing facility will procure Protocol Implementation Conformance Statements (PICS).

https://csa-iot.org/certification/tools/pics-tool/

6. Submit Certification Application

Utilizing Connectivity Standards Alliance Certification Tool, manufacturers can submit certification applications to the Alliance.

7. Application Pending

During this time the Alliance team may reach out to the manufacturer to request changes or specific information to determine approval or rejection.

8. Approval

After approval by the Alliance, a certification will be issued and use of the Certified Product Logo according to guidelines is allowed -- the product is at this point added to the Matter ledger.

Versions

As the world of IOT devices continues to evolve so does the Matter standard. Together with the participant and promotor members of the alliance, CSA works to integrate new additions to the Matter standard while ensuring backwards compatibility.

Version 1.0 (October 4, 2022)

The initial release of the Matter provided a framework for power plugs, lights, and light switches, locks, air conditioners, thermostats, motorized window treatments, TVs, motion sensors, and contact sensors (doors and windows).

Version 1.1 (May 18, 2023)

This update to Matter was a behind the scenes update and did not provide any new functionality. The focus was on bug fixes and revision of the existing code base.

Version 1.2 (October 23, 2023)

This updated added support for: “Refrigerators, Dishwashers, Laundry Washers, Robotic Vacuums, Smoke and Carbon Monoxide Alarms, Air Quality Sensors, Air Purifiers, and Fan” 1(https://en.wikipedia.org/wiki/Matter_(standard)) and improved the specification, certification process, and testing tools for Matter.

[1] https://en.wikipedia.org/wiki/Matter_(standard)

[2] Matter: Clusters, Attributes, Commands

[3] Matter-1.2-Application-Cluster-Specification.pdf

[4] Matter-1.2-Core-Specification.pdf

[5] Matter-1.2-Device-Library-Specification.pdf

[6] Matter-1.2-Standard-Namespace-Specification.pdf

[7] Google Developer Center - The Device Data Model

[8] Geeks for Geeks - Namespaces and Scope in Python