No announcement yet.

Understanding the Z-Wave Scene Command Class and Related Products

  • Filter
  • Time
  • Show
Clear All
new posts

    Understanding the Z-Wave Scene Command Class and Related Products

    This information was taken from a response to a user and has been modified to provide the same information to everybody - please let me know of any errors or omissions.

    Devices that use the scene command classes (scene activation command class, scene configuration command class, etc.) also typically support the association command class, but because of how associations are used with scenes, you should use the association configuration pages in HomeSeer only as a diagnostic tool.

    The association command class is there as it is PART of the scene command class, but it is not intended that you manipulate the associations yourself. None of the scene or zone controllers will work properly with the associations being manipulated manually. When a scene is programmed, a signal is sent to the nodes being controlled to let them know that for Scene number XX, they are to go to level YY at a ramp rate of ZZ. In the scene controller that is issuing the command to use a scene, the association command class is used to establish the list of nodes that are a part of the scene. So if the controller knows that button 2 is Scene ID 5 with a ramp rate of 30 seconds, then the list of nodes participating in that scene are what the associations are used for. If you add an association without the destination node being programmed properly, then it will try to react to the association set command rather than a scene activation command.

    HomeSeer was set up to react to the scene activation command when a scene is invoked, and a basic set level 0 command when it is turned off. The scene or zone controller will send a basic set level 0 when a scene is turned off, but it does NOT send a scene activation command when it is turned on if you set up an association manually.

    When HomeSeer is used to program a scene on a controller button, it (behind the scenes) adds itself as a part of the scene. When HomeSeer receives a scene activation command, it takes the scene ID number and goes through all of the button scenes until it finds the same number, and that is how it knows which button on which controller was activated. (This is also why you should not force the use of the same scene ID number on two different scenes.)

    Here is where the manufacturer differences come in to play. Technically speaking, the scene class was never intended to manage a scene being turned "off". The concept of a scene is that each light that is a part of the scene has its programmed level to be at for that scene, even if the scene calls for it to be "off". The idea of turning off all of the devices that are a part of a scene when the scene button is "turned off" or "deactivated" is completely a conceptual implementation that is totally outside the scene class. The scene command class does not even have a scene deactivation command - it is activation only.

    The main reason though that people prefer scenes over associations is because of the scene class' ability to operate multiple lights to different levels AT THE SAME TIME, but technically if you want to set a "scene" AND want to be able to turn off all of the devices in a scene, then you should be using associations only - you just cannot have each device in the scene be at different levels.

    So here is how Leviton and Cooper Wiring implemented their controllers:

    Leviton's Scene controllers will only allow you to have one "scene" active at a time. If you press button 2, then you are choosing the scene set up on that button, but then if you press button 3, then they see that as you choosing the button 3 scene over (not in addition to) the button 2 scene, so it will turn OFF button 2. Thus on their scene controllers, you can only have ONE button on at any given time.

    Leviton's Zone controllers are what expand upon the scene concept and allow you to have multiple scenes active at the same time. They do this because with a zone controller, they understand that you are activating scenes in different zones or areas of the house, so in those devices they do allow you to have more than one button "ON" or activated at a time. However, because the scene class does not support a scene deactivation command, pressing ANY of the buttons on their "OFF" side of the button will cause ALL of the buttons to turn OFF because there is simply no way in the protocol to determine which scene you want off - the device sends an OFF command to all of the controlled devices, which includes HomeSeer, and then that results in all of the buttons being turned off since there is no way of knowing (because there is no scene ID) which of the buttons was turned off.

    Cooper Wiring is the only company to really make sense of this and combine the shortcomings of the scene class with hardware to come up with a solution. Unlike Leviton, Cooper provided to us a way through the indicator class to allow HomeSeer to take a reading and find out which buttons have lights on them, which means we can tell which buttons on the controller are ON or OFF. So, when we receive the scene activation command, we use the scene ID to map to the button that was turned ON and we turn on the corresponding device in HomeSeer. When we receive an OFF command, we query the controller to find out which buttons are OFF, compare that to the state of the device in HomeSeer, and if there is a device in HomeSeer that is ON when its corresponding button on the controller is OFF, then we make the change and trigger events (if any) in HomeSeer.

    So the bottom line is that the scene command class was designed to function exactly as it does - to activate a scene, not to deactivate one, and that Leviton has interpreted this literally, while Cooper has interpreted it literally but at least provided a way for end users to get what they REALLY wanted out of the scene command class.

    When using the Leviton zone controllers, you just have to understand that you will get a total of 5 signals from the device that you can use in HomeSeer: Button 1 ON, Button 2 ON, Button 3 ON, Button 4 ON, and ALL BUTTONS OFF. The scene controller turns on/off 1 button at a time, but you cannot have more than 1 button on at a time either. The Cooper controller have one more advantage, and that is that they will take a device into a scene that does not support the scene class. The controlled device will not go on to its desired level at the exact same time as the other devices that do support the scene class, and the configured ramp rate will not apply, but the controller will send a basic level set command to the device so that it can be a part of the "scene" without supporting the scene class.

    Most of all, you should use the CONFIGURE button on the device properties page for the BUTTON device of your controller to set up scenes, and never work with the associations directly. For controllers, the association screen is just a diagnostic tool to reference which nodes are a part of a scene.

    Rick Tinker (a.k.a. "Tink")