Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature request]: Philips Hue: New effects with new firmware released #24438

Open
Grandma-Betty opened this issue Oct 22, 2024 · 8 comments
Open
Labels
feature request Feature request

Comments

@Grandma-Betty
Copy link

Grandma-Betty commented Oct 22, 2024

Is your feature request related to a problem? Please describe

No.

Describe the solution you'd like

A new Philips Hue device firmware (version 1.122.2/1.122.3) was being released recently for Bluetooth capable lights and is also available via Home Assistant OTA device firmware update already.
The new firmware brings up the following new effects:

  • Underwater
  • Cosmos
  • Sunbeam
  • Enchant

@mundschenk-at It would be nice if those effects could get implemented into Z2M too, additionally to the already existing effects.
However, I am not sure if it would be better to make a feature request for every single Philips Hue Bluetooth device. If so, please let me know, then I can make a feature request at least for every different Bluetooth Hue lights I own.

Thank you for considering!

EDIT: Another new feature of this firmware update is that the already existing "Diffuse" style of the Festavia light string is now available for all Hue gradient lamps. It would be nice to have this implemented too in Z2M.

Describe alternatives you've considered

None.

Additional context

None.

@Grandma-Betty Grandma-Betty added the feature request Feature request label Oct 22, 2024
@mundschenk-at
Copy link
Contributor

I think we still need to add the effects from 1.116.x to all the old devices (maybe this can be done by default?) and we have to find out how to trigger the new effects.

I'll try to look into it, but it does not have a high priority for me. (Separate FR for all the device types are not needed.)

@Grandma-Betty
Copy link
Author

No worries, as long as it is not going to be forgotten, I'm absolutely happy with it :-)
Thank you so far!

@Mihonarium
Copy link

After the FR update, effects also have customizable colors.

It would be great to see this supported.

@deviantintegral
Copy link
Contributor

deviantintegral commented Oct 26, 2024

The Hue app also supports customizing the colour, brightness, and speed of effects now.

I've started to capture the commands sent to the custom Philips Hue cluster and decode them in this spreadsheet. I'll be surprised if I get to work on this any more this weekend: https://docs.google.com/spreadsheets/d/1OMGBOtIhWhADVAFvsAjnnIgc86gDoOoIjVPacHjkIEo/edit?gid=430386872#gid=430386872

When I was working on this, the new firmware hadn't been captured for non Hue apps yet, so I was only confirming values for effects that already existed. I was able to do things like run an incredibly fast Candle (speed 0x12!) and change the colour.

I realized that "prism" appears to be what we've got currently set as a second kind of colorloop. Still need to confirm that though. Also, even regular on / off and brightness commands from the app are using the custom cluster now and not the standard OnOff or Level cluster. This happens even when an effect is inactive. I think that's relatively new?

To make testing easier I've hacked in a multiColor text field in zigbee-herdsman-converters that lets us send arbitrary commands to the cluster. The dev console doesn't work because the data needs to be a Buffer and not a string. I'm not sure if there's any better ways to do this.

diff --git a/src/lib/philips.ts b/src/lib/philips.ts
index 442c99b7..7f5c0414 100644
--- a/src/lib/philips.ts
+++ b/src/lib/philips.ts
@@ -61,9 +61,12 @@ export function philipsLight(args?: modernExtend.LightArgs & {hueEffect?: boolea
     const result = modernExtend.light(args);
     result.toZigbee.push(philipsTz.hue_power_on_behavior, philipsTz.hue_power_on_error);
     if (args.hueEffect || args.gradient) {
+        result.toZigbee.push(philipsTz.multiColor);
+        result.exposes.push(e.text('multi_color', ea.SET).withDescription('multiColor Hue argument in HEX').withCategory('config'));
+
         result.toZigbee.push(philipsTz.effect);
-        const effects = ['blink', 'breathe', 'okay', 'channel_change', 'candle'];
-        if (args.color) effects.push('fireplace', 'colorloop');
+        const effects = ['blink', 'breathe', 'okay', 'channel_change', 'candle', 'glisten', 'prism', 'sunrise', 'sparkle'];
+        if (args.color) effects.push('fireplace', 'colorloop', 'opal');
         if (args.gradient) {
             result.toZigbee.push(philipsTz.gradient_scene, philipsTz.gradient({reverse: true}));
             result.fromZigbee.push(philipsFz.gradient);
@@ -162,6 +165,12 @@ export const philipsTz = {
             }
         },
     } satisfies Tz.Converter,
+    multiColor: {
+        key: ['multi_color'],
+        convertSet: async (entity, key, value, meta) => {
+            await entity.command('manuSpecificPhilips2', 'multiColor', {data: Buffer.from(value.toString(), 'hex')});
+        }
+    } satisfies Tz.Converter,
     hue_power_on_behavior: {
         key: ['hue_power_on_behavior'],
         convertSet: async (entity, key, value, meta) => {
 

@Mar1usW3
Copy link

Mar1usW3 commented Dec 8, 2024

is there any update on this? is there a way to set some "custom" effects?

@Grandma-Betty
Copy link
Author

is there any update on this? is there a way to set some "custom" effects?

Not yet, but I guess it's still being considered to be implemented.

@deviantintegral
Copy link
Contributor

Things got busy for me so I doubt I’ll be working on this anytime soon. If someone does get something started, I’d be glad to help test and do code review.

@chrivers
Copy link

chrivers commented Jan 30, 2025

I had a very nice discussion with @Koenkk, after my initial work on reversing the vendor-specific Hue Zigbee format for light updates:

Koenkk/zigbee-herdsman-converters#8697

No hard conclusions yet, but we now have the protocol specification needed, to be able to (at some point) support any kind of effect that the hue lights are capable of.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Feature request
Projects
None yet
Development

No branches or pull requests

6 participants