Hi,
I am currently trying to understand the BLE mesh concepts, but its a quite tough process. At the moment I am wondering the following:
Let's say that I wand to create a light switch with 2 rocker buttons. If I just want to switch a light on/off, it could be pretty simple. I guess, I would have 2 elements with a Generic OnOff Client and I would set the publish address of e.g. for the OnOff model on the first element to the group address that will switch a light. Then, when the user presses the first rocker switch, it would generate the Generic OnOff Set Message and would send it to the configured group address.
Now, I wand to reconfigure the switch so that it does not switch the lamp on/off, but it should dim it up with each press of a button. So I would remove the publish address on the Generic OnOff Client of the first element. Next, I would set the publish address for the Generic Level Client that is also bound to the first element.
Now, how does the Generic Level Client know which message it should send, once the user presses a button? How can I configure the button to either send a Generic Level Set message, with e.g. a value of 10000, or reconfigure it to send a Generic Delta Set message with a step count of 10? Or maybe another user wants to configure a delta step of 20 instead of 10. I think this must be configurable somehow, but I cannot figure out how. Hardcoding some action in the firmware of the switch would be a weird way to do it.
Of course, I could add some kind of virtual element that I use to change the switch mode and another element that I use to configure the delta step. But I think that would really bend the standard and would be completely different for every vendor and therefore would not provide any interoperability.
Thanks,
Marius