Managing Govee RGBIC Effects in Hubitat Scenes at Scale

I recently set up the first of several Govee RGBIC lights via the v2 integration in the Package Manager. I can send commands to the device and it works fine.

What I'm trying to figure out is how to scale their use, however. Because I can only address the color/brightness/temp in scenes, I don't have a native way of, for example, having a scene that sets a Govee device to a specific effect.

I could set a rule that, when a virtual device is switched/pressed/sensed, would send the appropriate effect and other info to the Govee device(s). That'd be fine if there was one, or even a small number of scenarios I want to account for. But if I have six effects I'm interested in, sometimes impacting one lights, sometimes three, etc - the number of rules and virtual devices just for this becomes a bit unwieldy.

Is there a better way forward I'm not thinking of?

1 Like

Hi @monorailmedic did you find a solution to this issue? I would love a way to do this as well.

The following is a rant :roll_eyes: so feel free to ignore it.

I haven't tried to solve this problem through Hubitat myself because I get so frustrated with the Govee app :exploding_head: :face_with_symbols_over_mouth: I tend to give up :triumph: on doing anything particularly creative with my Govee lights. The problem is that I keep buying Govee lights :man_facepalming: :crazy_face: because they keep releasing form factors that other companies don't or Govee does it cheaper or better. Or maybe it's just that Govee markets its new stuff better through Amazon and the Govee app...

1 Like

Sorry that i missed this until now. I am not really sure what the ask is here.

Part of the problem as i see it is that simply put Govee has so many darn oprions for control. The new API enabled a ton of new ways for it as well.

Do either of you have a suggestion as what would be a reasonable solution for this. Or maybe a way you would like it to work for you.

I can see where this has become an issue. Things that were simple now have new and more complex commands. Things don't even seem to be standardized between devices.

I am not sure what the solution is, but I sure would like to take more advantage of this integration than I feel I can now. I mostly do some basic on/off stuff with my air purifiers, and the ground lights are mostly integrated as a novelty right now, I am not sure what or how to use them effectively with Hubitat.

My solution is probably not reasonable, at least not for your present app/drivers.

  • Rule Machine seems like a logical place to automate these devices, but the Govee commands don't seem to make this possible, at least not in a way that is easy to just select your desired color and brightness, or even a Govee scene without a bunch of rigmarole.

  • The Govee app does all this already, and with a graphical interface. The "issue" is it doesn't send those commands back to Hubitat or at least not in a easy to use format. Or at least not for us that don't spend hours trying to research all this.

I would think that there needs to be some type of whole new app in Hubitat where you can specify a segment of a RGB strip/chain and what color and brightness to set that particular segment in an easy to use format. Almost like the Govee app does now, but within Hubitat.

I can't imagine what it would take to make a whole new app that could do this, or attempt to make it graphical in any way, Or at the very least something you can just click a color on a list of segments and how you want to animate those colors or anything like that.

I am not sure Hubitat UI/GUI is set up to do such things. I am not sure I have seen any other apps that have anything similar to what I am imagining.

Well the thing is the previous driver was very simple. It was either on/off, Brighness, ct, or color. Then we hacked a way to get scenes for lan devices.

The new driver adds a ton. I agree the scenes are a mess with the cloud api, but Hubitat doesn't make it easier either.

Habitat's limits on how a driver needs all of their command information explicitly stated doesn't help. There is also, for me, at least a significant lack of clarity on how to implement light effects. I use the standard capability in the documentation for light effects, but I don't think that is used in any of the Hubitat apps to be able to set them. If you have Wiz Bulbs and use RL with them you can set them as scenes devices. I still don't know of a good way to do that with other devices. I think they don't use the standard capability, so i don't know how to implement it. I suspect if i could figure out how to use the same capability as the Wiz bulbs though i need to have all of the scenes enumerated in the command and well that would mean I need over 150 drivers so the scenes are right on each device. That is just kind of nuts.

This need to enumerate command values is also a problem for most of the Govee Life Devices.

If the drivers were more dynamic and i could set all of the command values from lets say from corresponding state values with json's i could make allot of great improvments for the drivers.

I am all for making improvements to the drivers to make them easy to understand. I think @neonturbo brought up some good questions about the "workMode" command and i may simplify it and make that easier to use.

What i would love to do is change from using set effect with a number to a name. The names are relatively consistent across devices so then i could atleast search for the same scene name for each device and then send the correct number as each device retrieves is number value. I just don't see a good way to do that without creationg 150 drivers.

Sorry this turned into a little bit of a rant. I really do want to make this easier to use though. If you do think of anything let me know and i will try to implement it.

Actually lets start with one small thing first. What would be the best way to handle scenes.

Would a smart app that gives the ability to select devices and then a scene from those devices be useful. Maybe then create a activator device to trigger it. It could be many cloud calls, but no worse after initial setup then just creating a rule in RM

As far as segement control, I would use that sparingly. It seems to work ok on some stuff but isn't super predictable. Even with the data through the API to tell us valid values doesn't seem to be super accurate right now.

1 Like

Catching up on this thread and appreciate your :eyes: on it. For my part (I don't want to speak with others), the basic requirement (I mean this from a product perspective, not trying to be demanding) is "as a Hubitat user, I want to be able to include Govee effects from the Govee app in Hubitat scenes."

The key here is that the effects are (and can continue to be) managed completely within the Govee app. These scenes may be stock/included with the Govee product and within the app, or scenes created by the end-user within the Govee app. At that point, there is a scene number that can be passed.

The current drivers already support sending this scene number, as seen below.

These can be set be set from some apps, such as the button controller, as seen here below.

The problem is that these parameters cannot be set from a Hubitat scene, since scenes don't have a mechanism to pass parameters in this way (just bulbs, dimmers, switches, and buttons).

So, this could mean a modification to how scenes work (seemingly far out of scope here, but the idea more broadly has appeal to me, and I suspect others, as it could be used for modifying thermostat settings and more), or by facilitating some easy "link" between scenes and buttons. We can, of course, create a virtual button that triggers a scene, but that means we'd have to manually create one per scene - a giant task, and would result in a ton of extra buttons.

If there was a way to automate the creation of one button for each scene (perhaps with a prefix in the name), it'd still be a bit messy, but would save some steps. If the button controller app was forked to a version that checked the available scenes and could automate creation upon identifying those keys, it'd help with organization some.

I'm honestly not sure how else to tackle this since ultimately, it seems a shortcoming of Hubitat's scene app.

1 Like

Which app are you referencing here. Is it the "Groups and Scenes" app. As I recall that is a older app and even though it is supported it isn't really getting updates.

There are two problems.

  1. The meaning behind scenes has changed a little bit. It use to be when you created mood lighting by using several lights to create a static environment in a room. That has changed with the recent proliferation of RGBIC devices like so many of the Govee Products.
  2. There isn't really a good set way to do light effects in Hubitat and ensure other apps can use them. There is a capability available which is "capability.lightEffects", but i don't think it is recogized by most apps. All of the Govee Light Drivers use that capability.

What we really need is a good way that the Hubitat Apps use to work with light/effects(scenes) from light manufactures. I also don't think that capability is necessarily the solution either. Wiz bulbs work in RL for Light effects/scenes but use a different method.

That said if someone with Hubitat like @gopher.ny or @bcopeland could help explain what is needed for those apps to recognize device Light effects I will do my best to implement it if possible.

The idea about creating a button for each scene could get really messy fast. I wouldn't suggest that as a good option. If I did that in my setup I would have thousands of buttons just for Govee devices.

1 Like

Yes, the Groups & Scenes app.

In my mind, the idea of a scene, in terms of a function in any HA, is to set multiple devices to a set of states at once. A batch device control. I recognize that some may want to introduce concepts where a scene represents some devices moving through states (a flashing light being a simple example). In this way, I'm just looking to send capability.lightEffects in a batch job that is triggerable and scalabel in the same ways as scenes are today.

Agreed on the buttons - that's why in my head I'd want a way having them as buttons in a different app, tagged in a different way to avoid a giant mess. So, maybe the goal is somehow abstracting away capability.lightingEffects (and similar constructs by other manufacturers) with middleware or sorts - as that's what my button suggestion essentially is (by any other name, as it were). Some object that a scene CAN point to, and that thing allows simple scalable mapping of that object to proprietary effects, provided the object in that middleware can be automatically generated based on device capabilities.

take a look at the code for my gardenspot app in package manager/git hub but basically the following works from the code:

1 Like

Is there something that needs to be done to enable the effects.

I installed it and set it up i think, all it does is cycle through the colors no matter what I set. It also doesn't matter what i set to enabled or disabled.

It will not cycle if disabled wrong.
Post your aettings and turn.on.logging.

Enabled on
Turn on random mode
fill in the 5 effect numbers.
Enable only those effect numbers . In the.toggles
Choose yotr cycle time

Manually turn on the device(s) to test.

Here they are settings of the App

Here are the logs

So previously it just cycled through colors. The one option I didnt have turned on was the " Enable Random Mode".

I turned that on now and it atleast it will hit effects along with cycling through all the colors.

for some reason your color array is wrong .. try saving settings again.. it should look like this..
also get rid of the virtual switch not needed just turn on the light switch and it will start..
also try changing the hours to before sunset to something other than 0

I think that did it. It is working as expected i believe and only doing the Govee effects. I do see this as a promising option with some limitations. It would be great for when you have multiple of the same devices. Like I have 2 H6172 outdoor strips, so it would be great for keeping those in the same scene. Were it would start fall a little flat is when the Govee device model changes. With my example above, i also have 2 H7075 Outdoor Wall Lights, H7050 Outdoor Ground Lights, and a H70C2 Outdoor String Light. Each device has its own set scenes with there own numbers.

Maybe a fork with multiple sets of device groups and then assigned values per group for each Effect Number value. I wonder what would be a good number for the amount of device groups.

1 Like

Now i have new questions. Is this apps primary focus on rotating between scenes/colors once the device is activated? And any time it is activated?

I can certainly see how that would be a good for thing for users. I have had requests for a similar function a few times. At the very least it is nice to see this part of your app if others ask.

I think this has given me some ideas of a app/driver to emulate Govee groups and scenic dreamviews that are not currently possible. When i get some free time i will see what i can do.

1 Like

yes to both.. and also it will automatically activate (turn on the devices at sunset) and off x hours before sunrise.

and allow to customize the colors for certain holidays.