Good questions.
First, zwave uses the terms”slave device” somewhat differently than you are using it:
So I think you are really asking about any of the devices on the network other than the hub.
Ok, that said: SmartThings has NOT made changes to the zwave standard. The basic messages sent to the device are still in the standard zwave format: otherwise the light switches, etc, wouldn’t understand them.
What SmartThings HAS done is add an additional application layer above that, which they call Edge Drivers, which are required to tell the hub to send that standard Zwave message. without the correct edge driver, any Z wave device connected to the network established by a SmartThings hub will only use “basic“ messages (that has a very specific meaning in Zwave). And that might cause a lot of the functionality to be lost.
Let’s use the typical post office example. You have a letter written in perfect French that you want to send to a French speaker. So far, so good. That’s the Z wave part, and the smartthings hub is acting as the post office.
But That post office is located in Spain, and your envelope doesn’t have any postage on it yet.
So you have to go to the post office and have a conversation in Spanish with the clerk there in order to purchase the right stamp and submit the letter to be mailed.
The letter itself is still in French. You haven’t changed anything about that. But before it can be delivered, you also have to have the Spanish conversation to get the postage on it.
That’s what smartthings has done. The edge driver lets you have the conversation about sending the message, rather than changing the message itself.
The Z wave independent standard allows that. It doesn’t apply until you get to the actual message, not the request to send the message. It’s just that most other zwave hubs make it easier to make that request.
It’s clear that when SmartThings first came up with the idea of their edge architecture, they intended it to work automatically (no custom code required) for most certified Z wave devices. They thought they would be able to handle the requests by identifying the “capabilities“ of a new device joining the network.
It’s just that in practice that has not worked very well. Locks get identified as light switches, multi endpoint devices don’t get treated as multi endpoint devices, sensors get identified as the wrong kind of sensor. We could all make engineering guesses as to why that happens, but the solution is almost always to take the specific “fingerprint“ (manufacturer code plus model number) and add that to the code for a specific edge driver, to ensure that the message requests trigger the right messages. And the process of adding that fingerprint is coding. Not very complicated coding, but more than a typical “plug and play“ customer can do for themselves.
So that ends up leading to a lot of frustration for both customers and device manufacturers. But it is how smartthings has chosen to design their architecture, and they do have that option, even for certified Z wave devices. 