Smart Bulb Mode Optimization Thread

Here is how I envision Smart-bulb mode:

Load output is locked at 100%, and cannot be changed by local or zwave commands. Switch will still simulate brightness levels, and will still send commands to associated devices. This should be similar to hard-wiring the bulb to be always connected to power (although pulling the air-gap will still cut power to the bulb). You can change the dimming level all you want, and LED bar will reflect the change, but the load will always be at 100%

On button press:

  • Pressing ON button will cause no change in the actual load output (always 100%)
  • Pressing ON button will scale the dimmer’s internal “Level” value based on the value in Parameter 9 (default level). The scaling duration will be based on the ramp rate
  • Pressing ON button will scale LED strip to appropriate level based on the dimmer’s internal “level”
  • Pressing ON button will send Basic Set command with value from internal “Level” to devices in association group 2
  • Pressing ON button will send Multi-level Set command with value from internal “Level” and duration as defined in Parameter 4 (Ramp Rate) to devices in association group 3

On button Hold:

  • Holding ON button will cause no change in the actual load output (always 100%)
  • Holding the ON button will send multilevel Start command and duration as defined in Parameter 2 (Dimming Speed) to devices in association group 4
  • Holding the ON button will cause its internal “level” value to scale up as if it were increasing brightness
  • Holding the ON button will cause the LED strip to scale up as if it were increasing brightness
  • Releasing the ON button will send multilevel Stop command to devices in association group 4
  • Releasing the ON button will send Multilevel Set command with brightness equal to internal “level” on the dimmer, and a duration of 0 to devices in Association group 3 (this will cause associated devices to “sync up” their brightness levels)

Off Button Press:

  • Pressing OFF button will cause no change in the actual load output
  • Pressing OFF button will cause internal dimmer’s “level” to scale down to 0 with duration based on ramp rate
  • Pressing OFF button will cause LED strip to scale to 0 based on internal “level”
  • Pressing OFF button will send Basic Set command with value 0x00 to devices in association group 2
  • Pressing OFF button will send Multi-level Set command with value 0x00 and duration value as defined in Parameter 4 (Ramp Rate) to devices in association group 3

Off Button Hold:

  • Holding the OFF button will have no effect on load output
  • Holding the OFF button will send multilevel Start command and duration as defined in Parameter 2 (Dimming Speed) to devices in association group 4
  • Holding the OFF button will cause its internal “level” value to scale down as if it were decreasing brightness
  • Holding the OFF button will cause the LED strip to scale down as if it were decreasing brightness
  • Releasing the ON button will send multilevel Stop command to devices in association group 4
  • Releasing the ON button will send Multilevel Set command with brightness equal to internal “level” on the dimmer, and a duration of 0 to devices in Association group 3 (this will cause associated devices to “sync up” their brightness levels)

Basic Set Command Received by dimmer:

  • Basic Set 0x00:
    • No change to load output (still at 100%)
    • Internal “level” value set to 0
    • LED strip turns off
  • Basic Set 0x01 - 0x63, 0xFF:
    • No change to load output
    • Internal “level” value set to value received
    • LED strip is set to value received

Multi-Level Set Command Received by dimmer:

  • Multi-level Set 0x00:
    • No change to load output
    • Internal “level” value scales down to 0 based on duration value received in command
    • LED strip scales down to 0 based on duration value received in command
    • If permitted by Parameter 12 (Association Behavior), forward the command to devices in Association group 3
      • Use Duration value that was received in the Multi-level set command.
      • If no Duration value received or if duration value = 0xFF, use value from Parameter 3
  • Multi-level Set 0x01 - 0x63, 0xFF:
    • No change to load output
    • Internal “level” value scales to received value based on duration received in command
    • LED strip scales to received value based on duration received in command
    • If permitted by Parameter 12 (Association Behavior), forward the command to devices in Association group 3
      • Use Duration value that was received in the Multi-level set command.
      • If no Duration value received or if duration value = 0xFF, use value from Parameter 3

Multilevel Start/Stop commands:

  • No change to load output
  • Scale internal “level” based on duration value received
  • Scale LED scrip based on duration value received
  • If permitted by Parameter 12 (Association Behavior), forward the command to devices in Association group 4
    • Use Duration value that was received in the Multi-level Start command.
    • If no Duration value received or if duration value = 0xFF, use value from Parameter 1 (Dimming Speed)
  • After multi-level stop command is received, send a multi-level set command to devices in Association group 3 in order to force everything back in sync

Most of this functionality seems to exist in beta firmware 1.52. The only thing I really see that is missing is the ability for the dimmer to send duration values as part of the multi-level switch command, and the fact that sending a value of 0 via zwave will cut power to the smart bulbs. Based on the information above, the questions about LED bar tracking can be answered:

The bulbs are all synced up by the switch when you press the buttons on the switch or change the switch brightness via zwave. If you control the smart bulb directly, it will temporarily be out of sync until the next time you control the switch. This is similar to how the virtual 3-way setup works. You just need to send commands to the switch, and let the switch forward them to associated devices.

Other than the lack of duration values and sending brightness of 0 via zwave cuts power to the bulb, then yes, Associations are the way to go if your smart bulbs are zwave.

The benefit to this method is you can read the “level” of the dimmer. The dimmer would still send a multi-level report to the hub when its internal “level” changes, even though the load is still outputting 100%. A user could set up an automation to send a value to their non-wave devices when the “level” of the dimmer changes. This could be accomplished even without the use of scenes.

3 Likes