[RELEASE] Virtual Smarter Bulb

Virtual Smarter Bulb App

Group bulbs to control dimming level, color and color temperature via virtual master bulb without turning On controlled bulbs.

Screenshots
Apps section

Child App

Use case

I use it to automatically change color temperature of almost all house bulbs according to the time of day without waking up my family.

How it works

Whenever dimming level, color or color temperature is changed on master device, app checks each controlled bulb in the group if it is on and applies changed attributes immediately.
For all bulbs that are in the Off state app remembers new attributes and when previously Off bulb turns On, app will apply pending attributes.

Master virtual bulb

Master virtual bulb has On / Off commands (switch/bulb capability), however these commands are ignored (because On command is also sent on every dimming level/color/color temperature change).

App can be found on my GitHub repository:

https://github.com/ibezkrovnyi/hubitat/tree/main/apps/virtual-smarter-bulb

Changes
  • 1.0.3 - 2020-01-04 - Add configuration options to enable/disable logs and to change pauseExecution delay, add styling
  • 1.0.2 - 2020-01-03 - Add more logs, add version, cleanup, pauseExecution(200 ms) after every issued command
  • 1.0.1 - 2020-01-02 - Initial release

How to Install USER APP

Excellent Quick Guide from Bryan Turcotte

Note on Hue Bridge integration

When bulbs are connected to Hubitat through Hue Bridge, hubitat drivers of these hue bulbs rarely update (do they update state at all?) their current state when Philips Hue Mobile App or Google Assistant connected to the Hue Bridge is used.

This almost always leads to random issues in bulb automations. It seems that it is enough to issue command refresh on Hue Bridge driver to immediately get the current state of the hue bulbs from hue bridge.

So, solution to hue bulbs have outdated state issue is to create rule that will trigger refresh command on hue bridge every XX seconds.

I didn't find a way to do this with Rule Machine, so I used this Event Engine:

  1. Just create new Event Cog "Philips Hue Bridge Refresh":

  2. And configure it as follows:

    Where CRON expression that issues command refresh on Hue Bridge every 5 seconds is:
    */5 * * ? * *.

    Please feel free to change CRON expression to issue refresh command more or less often, e.g. the following CRON expression will trigger every 30 seconds:
    */30 * * ? * *

6 Likes

This is awesome.
Any idea if this works on Lutron Caseta switches as well?

Honestly I don't know how Lutron works, but if you have "Lutron Caseta switch" devices in the /device/list of your HE and if you can control them from HE, and if these devices have switch capability (commands 'on' / 'off') + any of the supported commands (set level, set hue, set saturation, set color temperature) then theoretically - yes, it should be possible to control them using this app.

Please check below the screenshot of my OSRAM CT bulb device (for which I use Generic ZigBee RGBW Light)

Thanks! Been looking for something like this. I tried this with a bulb in the group set to off (Light 24).
When I turn on light 24 it does not always get the colour of the master bulb until I made changes to the master bulb again.

Seems to be working only when the saturation is 100. Anything with saturation below 100 the bulb in the off state does not get the delayed changes.

Summary

Logs: Red with Saturation 79 (Off bulb did not get color change)
app:5522021-01-03 02:08:01.335 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:08:01.323 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:08:01.304 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:08:01.217 pm infoSmarter Bulb: slavesHandler name=switch value=on
app:5522021-01-03 02:07:58.946 pm traceSmarter Bulb: masterHandler - next pending changes: [[dni:CCH/A98ABD/Light/28, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/29, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/24, attributes:[level:100, colorTemperature:4630, hue:46, saturation:100]]]
app:5522021-01-03 02:07:58.944 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/32 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.887 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/34 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.859 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/24 is 'off', attribute level change to value=100 is delayed
app:5522021-01-03 02:07:58.854 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/33 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.835 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/29 is 'off', attribute level change to value=100 is delayed
app:5522021-01-03 02:07:58.831 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/28 is 'off', attribute level change to value=100 is delayed
app:5522021-01-03 02:07:58.825 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/31 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.794 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.785 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/30 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.765 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.751 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.727 pm traceSmarter Bulb: masterHandler - prev pending changes: [[attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/28], [attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/29], [attributes:[saturation:100, level:100, hue:46, colorTemperature:4630], dni:CCH/A98ABD/Light/24]]
app:5522021-01-03 02:07:58.724 pm infoSmarter Bulb: masterHandler name=level value=100
app:5522021-01-03 02:07:58.721 pm traceSmarter Bulb: masterHandler - next pending changes: [[dni:CCH/A98ABD/Light/28, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/29, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/24, attributes:[level:100, colorTemperature:4630, hue:46, saturation:100]]]
app:5522021-01-03 02:07:58.719 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/32 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.680 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/34 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.676 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.655 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/24 is 'off', attribute saturation change to value=79 is delayed
app:5522021-01-03 02:07:58.647 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/33 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.634 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.620 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/29 is 'off', attribute saturation change to value=79 is delayed
app:5522021-01-03 02:07:58.610 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/28 is 'off', attribute saturation change to value=79 is delayed
app:5522021-01-03 02:07:58.600 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/31 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.588 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.583 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.572 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.561 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/30 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.535 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.533 pm traceSmarter Bulb: masterHandler - prev pending changes: [[attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/28], [attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/29], [attributes:[saturation:100, level:100, hue:46, colorTemperature:4630], dni:CCH/A98ABD/Light/24]]
app:5522021-01-03 02:07:58.530 pm infoSmarter Bulb: masterHandler name=saturation value=79
app:5522021-01-03 02:07:58.465 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.459 pm traceSmarter Bulb: masterHandler - next pending changes: [[dni:CCH/A98ABD/Light/28, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/29, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/24, attributes:[level:100, colorTemperature:4630, hue:46, saturation:100]]]
app:5522021-01-03 02:07:58.444 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/32 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.415 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.397 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/34 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.356 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.348 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.337 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/24 is 'off', attribute hue change to value=97 is delayed
app:5522021-01-03 02:07:58.331 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/33 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.299 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.258 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.236 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/29 is 'off', attribute hue change to value=97 is delayed
app:5522021-01-03 02:07:58.232 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/28 is 'off', attribute hue change to value=97 is delayed
app:5522021-01-03 02:07:58.218 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/31 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.199 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/30 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.149 pm traceSmarter Bulb: masterHandler - prev pending changes: [[attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/28], [attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/29]]
app:5522021-01-03 02:07:58.146 pm infoSmarter Bulb: masterHandler name=hue value=97
app:5522021-01-03 02:07:58.142 pm infoSmarter Bulb: masterHandler name=colorName value=Red

Logs with Green, Saturation 100 (Off bulb did get colour change)
app:5522021-01-03 02:08:01.335 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:08:01.323 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:08:01.304 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:08:01.217 pm infoSmarter Bulb: slavesHandler name=switch value=on
app:5522021-01-03 02:07:58.946 pm traceSmarter Bulb: masterHandler - next pending changes: [[dni:CCH/A98ABD/Light/28, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/29, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/24, attributes:[level:100, colorTemperature:4630, hue:46, saturation:100]]]
app:5522021-01-03 02:07:58.944 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/32 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.887 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/34 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.859 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/24 is 'off', attribute level change to value=100 is delayed
app:5522021-01-03 02:07:58.854 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/33 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.835 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/29 is 'off', attribute level change to value=100 is delayed
app:5522021-01-03 02:07:58.831 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/28 is 'off', attribute level change to value=100 is delayed
app:5522021-01-03 02:07:58.825 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/31 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.794 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.785 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/30 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.765 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.751 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.727 pm traceSmarter Bulb: masterHandler - prev pending changes: [[attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/28], [attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/29], [attributes:[saturation:100, level:100, hue:46, colorTemperature:4630], dni:CCH/A98ABD/Light/24]]
app:5522021-01-03 02:07:58.724 pm infoSmarter Bulb: masterHandler name=level value=100
app:5522021-01-03 02:07:58.721 pm traceSmarter Bulb: masterHandler - next pending changes: [[dni:CCH/A98ABD/Light/28, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/29, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/24, attributes:[level:100, colorTemperature:4630, hue:46, saturation:100]]]
app:5522021-01-03 02:07:58.719 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/32 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.680 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/34 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.676 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.655 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/24 is 'off', attribute saturation change to value=79 is delayed
app:5522021-01-03 02:07:58.647 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/33 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.634 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.620 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/29 is 'off', attribute saturation change to value=79 is delayed
app:5522021-01-03 02:07:58.610 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/28 is 'off', attribute saturation change to value=79 is delayed
app:5522021-01-03 02:07:58.600 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/31 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.588 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.583 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.572 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.561 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/30 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.535 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.533 pm traceSmarter Bulb: masterHandler - prev pending changes: [[attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/28], [attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/29], [attributes:[saturation:100, level:100, hue:46, colorTemperature:4630], dni:CCH/A98ABD/Light/24]]
app:5522021-01-03 02:07:58.530 pm infoSmarter Bulb: masterHandler name=saturation value=79
app:5522021-01-03 02:07:58.465 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.459 pm traceSmarter Bulb: masterHandler - next pending changes: [[dni:CCH/A98ABD/Light/28, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/29, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/24, attributes:[level:100, colorTemperature:4630, hue:46, saturation:100]]]
app:5522021-01-03 02:07:58.444 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/32 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.415 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.397 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/34 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.356 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.348 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.337 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/24 is 'off', attribute hue change to value=97 is delayed
app:5522021-01-03 02:07:58.331 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/33 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.299 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.258 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.236 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/29 is 'off', attribute hue change to value=97 is delayed
app:5522021-01-03 02:07:58.232 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/28 is 'off', attribute hue change to value=97 is delayed
app:5522021-01-03 02:07:58.218 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/31 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.199 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/30 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.149 pm traceSmarter Bulb: masterHandler - prev pending changes: [[attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/28], [attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/29]]
app:5522021-01-03 02:07:58.146 pm infoSmarter Bulb: masterHandler name=hue value=97
app:5522021-01-03 02:07:58.142 pm infoSmarter Bulb: masterHandler name=colorName value=Red

1 Like

Thanks for the logs, this:

and

tells, that saturation=79% was set using Smarter Bulb in both Logs with Green and Logs: Red cases.

These lines:

tell that in both cases light 24 had saturation 100% just before saturation=79 was set using Smarter Bulb.

So, please correct me if I'm wrong, but the process for the light 24 was:

  1. set saturation=100% (not by using Smarter Bulb, but directly)
  2. turn it Off (not by using Smarter Bulb, but directly)
  3. set saturation=79% using Smarter Bulb
  4. turn it On (not by using Smarter Bulb, but directly)

In this case I can only guess that it is because either:
a) driver for CCH/A98ABD/Light/24 can't apply multiple attributes without delay between commands, so when Smarter Bulb app issues commands one after another, some of them can be ignored)
b) test involved turning offline the light CCH/A98ABD/Light/24 with physical switch. Can't really do anything in such cases as I assume it's common approach for drivers to not report bulb/light's presence, which means delayed attributes change logic easily breaks when bulb is physically offline.

Version 1.0.2

I prepared version 1.0.2 of the Smarter Bulb Child App where I added more logs, and also added pauseExecution between all commands issued to the bulbs - see below

It is not merged to the main branch of my hubitat gh repository yet.

Please replace code of the Smarter Bulb (Child) in HE /app/list with the code from the following url:
https://raw.githubusercontent.com/ibezkrovnyi/hubitat/7a025a9d8460fccade581eb08722f78dbd76846b/apps/virtual-smarter-bulb/virtual-smarter-bulb-child-app.groovy

And please recreate Child apps (just to be sure).

Note: deleting Child Apps will also delete connected Child devices, which in turn will break rules in Rule Machine that rely on the deleted devices.

If Child App's code is updated successfully, when you creating new Child app, you should see Application: Smarter Bulb@VERSION as on the screenshot below:
image
and also all logs are now prefixed with @VERSION

please let me know if it works better for you

When you post long sets of logs or many pics, it helps to use the "hide" option so that the thread is easier for everyone to navigate...especially if you're looking at the forum on a phone. Thanks!

Highlight your content, hit the gear and choose "Hide Details."
image

Ends up like this below:

Summary

Logs: Red with Saturation 79 (Off bulb did not get color change)
app:5522021-01-03 02:08:01.335 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:08:01.323 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:08:01.304 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:08:01.217 pm infoSmarter Bulb: slavesHandler name=switch value=on
app:5522021-01-03 02:07:58.946 pm traceSmarter Bulb: masterHandler - next pending changes: [[dni:CCH/A98ABD/Light/28, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/29, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/24, attributes:[level:100, colorTemperature:4630, hue:46, saturation:100]]]
app:5522021-01-03 02:07:58.944 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/32 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.887 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/34 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.859 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/24 is 'off', attribute level change to value=100 is delayed
app:5522021-01-03 02:07:58.854 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/33 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.835 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/29 is 'off', attribute level change to value=100 is delayed
app:5522021-01-03 02:07:58.831 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/28 is 'off', attribute level change to value=100 is delayed
app:5522021-01-03 02:07:58.825 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/31 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.794 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.785 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/30 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.765 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.751 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.727 pm traceSmarter Bulb: masterHandler - prev pending changes: [[attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/28], [attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/29], [attributes:[saturation:100, level:100, hue:46, colorTemperature:4630], dni:CCH/A98ABD/Light/24]]
app:5522021-01-03 02:07:58.724 pm infoSmarter Bulb: masterHandler name=level value=100
app:5522021-01-03 02:07:58.721 pm traceSmarter Bulb: masterHandler - next pending changes: [[dni:CCH/A98ABD/Light/28, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/29, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/24, attributes:[level:100, colorTemperature:4630, hue:46, saturation:100]]]
app:5522021-01-03 02:07:58.719 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/32 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.680 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/34 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.676 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.655 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/24 is 'off', attribute saturation change to value=79 is delayed
app:5522021-01-03 02:07:58.647 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/33 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.634 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.620 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/29 is 'off', attribute saturation change to value=79 is delayed
app:5522021-01-03 02:07:58.610 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/28 is 'off', attribute saturation change to value=79 is delayed
app:5522021-01-03 02:07:58.600 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/31 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.588 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.583 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.572 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.561 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/30 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.535 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.533 pm traceSmarter Bulb: masterHandler - prev pending changes: [[attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/28], [attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/29], [attributes:[saturation:100, level:100, hue:46, colorTemperature:4630], dni:CCH/A98ABD/Light/24]]
app:5522021-01-03 02:07:58.530 pm infoSmarter Bulb: masterHandler name=saturation value=79
app:5522021-01-03 02:07:58.465 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.459 pm traceSmarter Bulb: masterHandler - next pending changes: [[dni:CCH/A98ABD/Light/28, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/29, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/24, attributes:[level:100, colorTemperature:4630, hue:46, saturation:100]]]
app:5522021-01-03 02:07:58.444 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/32 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.415 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.397 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/34 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.356 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.348 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.337 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/24 is 'off', attribute hue change to value=97 is delayed
app:5522021-01-03 02:07:58.331 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/33 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.299 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.258 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.236 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/29 is 'off', attribute hue change to value=97 is delayed
app:5522021-01-03 02:07:58.232 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/28 is 'off', attribute hue change to value=97 is delayed
app:5522021-01-03 02:07:58.218 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/31 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.199 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/30 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.149 pm traceSmarter Bulb: masterHandler - prev pending changes: [[attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/28], [attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/29]]
app:5522021-01-03 02:07:58.146 pm infoSmarter Bulb: masterHandler name=hue value=97
app:5522021-01-03 02:07:58.142 pm infoSmarter Bulb: masterHandler name=colorName value=Red

Logs with Green, Saturation 100 (Off bulb did get colour change)
app:5522021-01-03 02:08:01.335 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:08:01.323 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:08:01.304 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:08:01.217 pm infoSmarter Bulb: slavesHandler name=switch value=on
app:5522021-01-03 02:07:58.946 pm traceSmarter Bulb: masterHandler - next pending changes: [[dni:CCH/A98ABD/Light/28, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/29, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/24, attributes:[level:100, colorTemperature:4630, hue:46, saturation:100]]]
app:5522021-01-03 02:07:58.944 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/32 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.887 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/34 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.859 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/24 is 'off', attribute level change to value=100 is delayed
app:5522021-01-03 02:07:58.854 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/33 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.835 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/29 is 'off', attribute level change to value=100 is delayed
app:5522021-01-03 02:07:58.831 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/28 is 'off', attribute level change to value=100 is delayed
app:5522021-01-03 02:07:58.825 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/31 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.794 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.785 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/30 is 'on', applying attribute level with value=100 immediately
app:5522021-01-03 02:07:58.765 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.751 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.727 pm traceSmarter Bulb: masterHandler - prev pending changes: [[attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/28], [attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/29], [attributes:[saturation:100, level:100, hue:46, colorTemperature:4630], dni:CCH/A98ABD/Light/24]]
app:5522021-01-03 02:07:58.724 pm infoSmarter Bulb: masterHandler name=level value=100
app:5522021-01-03 02:07:58.721 pm traceSmarter Bulb: masterHandler - next pending changes: [[dni:CCH/A98ABD/Light/28, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/29, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/24, attributes:[level:100, colorTemperature:4630, hue:46, saturation:100]]]
app:5522021-01-03 02:07:58.719 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/32 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.680 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/34 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.676 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.655 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/24 is 'off', attribute saturation change to value=79 is delayed
app:5522021-01-03 02:07:58.647 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/33 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.634 pm infoSmarter Bulb: slavesHandler name=saturation value=79
app:5522021-01-03 02:07:58.620 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/29 is 'off', attribute saturation change to value=79 is delayed
app:5522021-01-03 02:07:58.610 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/28 is 'off', attribute saturation change to value=79 is delayed
app:5522021-01-03 02:07:58.600 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/31 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.588 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.583 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.572 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.561 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/30 is 'on', applying attribute saturation with value=79 immediately
app:5522021-01-03 02:07:58.535 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.533 pm traceSmarter Bulb: masterHandler - prev pending changes: [[attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/28], [attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/29], [attributes:[saturation:100, level:100, hue:46, colorTemperature:4630], dni:CCH/A98ABD/Light/24]]
app:5522021-01-03 02:07:58.530 pm infoSmarter Bulb: masterHandler name=saturation value=79
app:5522021-01-03 02:07:58.465 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.459 pm traceSmarter Bulb: masterHandler - next pending changes: [[dni:CCH/A98ABD/Light/28, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/29, attributes:[level:100, colorTemperature:4630, hue:95, saturation:73]], [dni:CCH/A98ABD/Light/24, attributes:[level:100, colorTemperature:4630, hue:46, saturation:100]]]
app:5522021-01-03 02:07:58.444 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/32 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.415 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.397 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/34 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.356 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.348 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.337 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/24 is 'off', attribute hue change to value=97 is delayed
app:5522021-01-03 02:07:58.331 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/33 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.299 pm infoSmarter Bulb: slavesHandler name=colorName value=Red
app:5522021-01-03 02:07:58.258 pm infoSmarter Bulb: slavesHandler name=hue value=97
app:5522021-01-03 02:07:58.236 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/29 is 'off', attribute hue change to value=97 is delayed
app:5522021-01-03 02:07:58.232 pm debugSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/28 is 'off', attribute hue change to value=97 is delayed
app:5522021-01-03 02:07:58.218 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/31 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.199 pm traceSmarter Bulb: masterHandler - device with dni=CCH/A98ABD/Light/30 is 'on', applying attribute hue with value=97 immediately
app:5522021-01-03 02:07:58.149 pm traceSmarter Bulb: masterHandler - prev pending changes: [[attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/28], [attributes:[saturation:73, level:100, hue:95, colorTemperature:4630], dni:CCH/A98ABD/Light/29]]
app:5522021-01-03 02:07:58.146 pm infoSmarter Bulb: masterHandler name=hue value=97
app:5522021-01-03 02:07:58.142 pm infoSmarter Bulb: masterHandler name=colorName value=Red

1 Like

Great! I updated to the new version and it now works regardless of saturation.

Sorry for the confusing logs. What i was actually doing was

  1. Turn OFF light 24 - from HE device page
  2. Change the colour of master bulb (tried a few variations - with saturation at various levels)
  3. Turn on light 24 - from HE device page

The results I had before was:

  • when sat was set to 100%, light 24 would take the colour
  • when sat was set to anything other than 100% - light 24 just keeps the old colour
  • when colour temp was changed - light 24 takes the new temp as expected

I guess your clean up might have fixed it.

Is there a way to turn off the logging? once its all working the massive amount of logging kinda spams the log with stuff I dont really want to look at.

1 Like

Great!

Just released version 1.0.3 with option to enable/disable logs and pause time setting (for Philips Hue bulbs I use 0, while in general case safe value will be 200 or more). Please check main branch on my GH.

Any feedback is welcome.

Been using this over awhile now, its great thanks! Just a suggestion, a useful feature would be to have an option to disable a master bulb. (e.g. via a switch). Sometimes I just would like a manually set scene to stay as is without it being changed by the master bulb that is being automated.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.

Download the Hubitat app