Sometimes it will depend on the device and whether or not it passes enough information to an associated node. For example, I ported the Aeotech WallMote which boasts 6 or 8 or 12 or something "scenes". I can't remember the number. At any rate, it counted swipe up on each of the buttons as a separate scene because it was a separate association group.
Unfortunately, if you don't associate a node to that group and you associate the hub's node instead the message that comes from the device is the same for every single one of the swipe ups and then there is a different message for all of the swipe downs. So instead of having:
- Button 1 Swipe Up - Message A to Group 1
- Button 2 Swipe Up - Message A to Group 2
- Button 1 Swipe Up - Message A to Hub
- Button 2 Swipe Up - Message A to Hub
And even though it was two different buttons that could have gone to two different nodes from the hub the difference was indiscernible because there was nothing about the initiating button in the actual payload of the message.
So... if you are in a similar situation you may be forced to do it by association if you really want all of the potentially functionality. If the button events DO send enough information to parse the event and determine what the event was then you have complete flexibility and it comes down to preference I think.
I prefer to not use association because when things are working on the hub and we are taking full advantage of the local processing and a stable hub the difference in time between a scene controller to a node versus the scene controller to the hub to a node is mostly negligible. Plus, having it go through the hub adds a ton of flexibility because there's an event that you can use to do other things other than just turn on a light. For example, my VRCS4 is used to switch modes and control media devices as well as toggle lights. It couldn't do that with just the associations.