DarthAffe / RGB.NET

The one-stop SDK for RGB-peripherals

Home Page:http://lib.arge.be

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Feature Request: Integration of Phillips Hue Lights

Shiichibukai opened this issue · comments

Would love to see support for Phillips Hue Lights to be integrated into RGB.NET so they can be controlled and set up similar to Keyboards and other devices.

Use case would be making the lights trigger on certain events, similar to how it already does if you use the HueSync App on PC/Consoles. Aka when colors on the screen change > the lights respond. Lightning strikes > the lights light up accordingly. That kind of stuff. But more control, to have it only do certain events/conditions, not just EVERYTHING on the screen.

Hi, Artemis features Philips Hue integration using RGB.NET: https://wiki.artemis-rgb.com/en/guides/user/devices/philips

The implementation of the RGB.NET device provider is backed by Q42.HueApi. Currently it's part of the Artemis.Plugins repository, you can find the device provider here: https://github.com/Artemis-RGB/Artemis.Plugins/tree/master/src/Collections/Artemis.Plugins.PhilipsHue/RGB.NET

If you want to use the code in your own project that's fine but note that it's currently available under the PolyForm Noncommercial License 1.0.0. If you need something else I can look at extracting the RGB.NET device provider from the repository and publishing it separately under a different license.

@DarthAffe is it as simple as extracting the device provider as is? Or is there wrapper code it relies on from the Artemis plug-in implementation, such as passing it config information, etc.?

The code robert linked should work fine independent of artemis.

Apologies, I meant to tag @RobertBeekman but tagged you instead as i was half asleep. 😅

It seems there is code here that is required to be merged in with the device provider (for anyone looking at this post):

https://github.com/Artemis-RGB/Artemis.Plugins/blob/master/src/Collections/Artemis.Plugins.PhilipsHue/HueDeviceProvider.cs

@RobertBeekman are you able to explain how the bulbs are assigned to LedIds?

After carefully looking at the code, it seems the DeviceType is set to RGBDeviceType.Unknown, and the LedId is set to LedId.Custom1. However the provider seems to assign it per entertainment group. Is each group being assigned to an LedId or is each bulb within the group being assigned to an LedId? Does that mean the same bulb in multiple groups could be assigned multiple LedIds?

That aside, I'm having trouble controlling the bulbs, I have got them being detected by the app and being listed as a Device on the surface, but when I try and change a value on LedId.Custom1, it doesn't work. I also tried changing them to RGBDeviceType.LedController, as this more accurately aligns with LedId.Custom1 (as opposed to LedId.Unknown1) but still nothing.

Any advice would be appreciated here.