I'm new to the Matter smart home protocol. I have done some reading and get the basic idea but coming from a hardware/firmware background (not app development), I would love to get some insight into the app development/integration process for smart home devices. Let's say I am developing my own smart lock system with:
Let's say I have coded the firmware with my devices's unique smart lock requirements. And now I want to integrate it with a popular smart home platform (app) on the market (the likes of WiZ, Google Nest, Alexa, Apple Home and Home Assistant). Of course, I will have to make sure that these platforms actually support Matter devices first and foremost (which they do). The next step is one that I'm very confused about: how do I get my device-specific features integrated in these existing apps? The pairing and adding of my device will be handled by the existing app's infrastructure itself, as I understand, but what about features unique to my device? Just an example: using a pin code to verify authenticity of the user for opening the lock. Take Google Nest as an example. They provide an SDK/API that I can use. Say I start coding using this. Do I then need to "submit" this code to Google Nest for integration into their app so that when a customer installs my lock, opens up Google Home on their phone and adds my device, they see the button for firing a pin code (above example)?
No, Matter is a standard and you need to follow the standard which means you can only make use of the features that are already defined. Take a look at the Matter Application clusters specification. Here you will find the various functionality defined for door locks. If you want to extend the functionality, you need to become a member with the Participant level and then collaborate with other vendors to add the desired functionality into the standard. Once you've done that, you must then wait until various Matter Controllers (Alexa, Google Home, Apple Home, Smartthings and so on) implement the client role of this feature before anyone can actually use it.
Regarding PIN code, that's a feature which already seems to be supported though.