A local-first Philips Hue controller for the official Windows 11 Widgets Board.
- Discovers Hue Bridges with mDNS and the Hue discovery broker.
- Pairs with the bridge's physical link button.
- Protects the Hue application key with Windows DPAPI.
- Controls room power, brightness, room selection, and scenes.
- Shows current state, update time, setup errors, and offline errors.
- Supports small, medium, and large Windows widget sizes.
- Uses a packaged C# Win32
IWidgetProvideron Windows App SDK 2.3.1.
The graphical settings window uses WinForms so the provider and onboarding UI can share one packaged executable. The widget itself uses the latest Windows Widgets provider APIs and Adaptive Cards.
- Windows 11 with the Widgets Board enabled.
- .NET 8 SDK.
- A Hue Bridge on the same local network.
- A wired or wireless network path from the PC to the bridge.
Run PowerShell:
Set-ExecutionPolicy -Scope Process Bypass
.\scripts\Install-Dev.ps1The script runs the tests, builds the x64 provider, and registers its generated package manifest for the current Windows user. This registration flow does not require a Store package.
Open Hue Widget from the Start menu, or run:
.\scripts\Open-Settings.ps1Select Discover, choose the bridge, press Pair bridge, physically press the bridge link button, and finish pairing. Select a room and up to four scenes, then save.
Open the Widgets Board with Win+W, select +, and add Hue Lights.
.\scripts\Build-Package.ps1The unsigned x64 MSIX is written under:
src\HueWidget.Provider\AppPackages\
For long-term sideloading, sign it with a trusted code-signing certificate whose subject matches CN=CGord. Development registration is preferred while iterating because Windows otherwise requires the certificate chain to be trusted by the package deployment service.
- Hue traffic stays on the local network except for the optional official discovery broker fallback.
- The application key is never stored as plaintext.
- DPAPI-protected settings are stored under
%USERPROFILE%\.huewidget, outside removable package state. - Certificate validation accepts valid public certificates or a current Hue bridge certificate issued by
root-bridge; it does not use a blanket trust callback. - Tests and logs contain no bridge credentials.
- Widget does not appear: run
Install-Dev.ps1, then restart the Widgets Board or sign out and back in. - No bridge found: enter the bridge IP address manually in the bridge field.
- Pairing rejected: press the physical link button and retry within 30 seconds.
- Widget says setup required: open the Hue Widget settings app and complete pairing.
- Bridge offline: confirm the PC and bridge are on the same LAN, then select Refresh in the widget.