I have these two products, a Stream Deck (it’s only a mini, but hey it still counts!) and the OpenRGB software, for the One App to Rule All LEDs! IF you are at least a little bit savvy in the computer streaming and gaming world then you know what a Stream Deck is (not to be confused with a Valve Steam Deck gaming console). I am going to assume that you know what one is but for those that don’t you can check them out here. In short they are a small macro pad with a grid of buttons, the buttons are little LCD screens that are programmable to do and look damn near whatever you want. It is an absolutely beautiful piece of hardware. It was designed for streamers to help act as a digital switchboard for their apps and scenes but anyone can use it for anything. I’ve seen it used for a Smart Home Hub for Home Assistant and that was an awesome idea I never thought of.
I have a page with buttons mapped with icons for use when I play Diablo 4; shortcuts to Skills, Class, Character, Abilities. I use a Mad Noodle macro pad to game with on D4 instead of the main keyboard and the Stream Deck is right next to it. So I get the macro pad action and the Stream Decks sweet sweet LCD icons to play the game with. The other buttons I use are for things like taking screenshots or moving active windows between multiple monitors. One of my favorite buttons is for my Pi-hole. One press and it disables the Pi-hole, another press and it is enabled again, I don’t have to open the webpage and login anymore to do a quick bypass. It also shows the current traffic blocked percentage (or whatever else you want to display). One of my most useful ones is two buttons for switching the PC audio between the speakers and my headset without having to unplug cables constantly! Welcome to the future!
OpenRGB is a useful piece of software as well. If you are like everyone else these days and are into computers you have a plethora of LEDs at your disposal for your illuminated delight. The PC case and motherboard is loaded with em, the RAM these days are poppin’, all the fans are usually full RGB, headsets are RGB, the keyboards are loaded with RGB for the keys and the case, and lets not forget the mouse, and even your mouse/desk pad! All of these LED’ed products usually have their own proprietary software that you need to use. Unless you happen to have everything within the same brand you need more than one app to use and configure them. Fuck that. I can’t stand that, that is a major flaw these days. This is not the way. All of these products use the same LED protocols to illuminate the actual LED component but their apps/software is locked down to only their products forcing you to have to use and install a few of practically the same thing and they’re usually loaded with bloatware or ads or are heavier than they need to be. Corsair iCue I am looking at you!
Enter OpenRGB. Open source software to control (almost) anything with an LED in it connected to your computer. Doesn’t matter the manufacturer or if it is a mouse a keyboard or fan. This app will most likely be able to tap into it and control it. You can now ditch all that bloatware running all those icons in your system tray. I use OpenRGB on my Windows 11 PC. It controls the LED lighting for my ASUS motherboard, the Corsair RAM, the ASUS RTX video card, and every light bar and colored fan in my off-brand case. Don’t forget it also controls my Razer headset, my Logitech mouse and my custom keyboard (keyboard control requires new firmware, not easy). I have been using OpenRGB for a little over a year now and while it is not perfect the developer is active and my issues have always had a work around or an official fix.
This is where it gets good and why you are here. The other day I was configuring my Stream Deck for Diablo 4 use and I came across a post asking about the Stream Deck and OpenRGB. Wait, what?! Why have I never thought of that before? Or using an Amazon Alexa to change the colors (which I can now do also, see some of my other posts). After that I went off and watched a few YouTube videos on alternate uses for the Stream Deck. I also set out to figure out how to use the Stream Deck with OpenRGB to use the buttons to change the active LED lighting profile (change the colors and/or patterns) of everything. Yes, I got it working. I did have to download a current (specific?) WebHooks plugin though.
As usual with this kind of shit, you should read (or at least skim through the process) this before you attempt to do it.
If
All of your LEDs are connected properly and in working order.
You have OpenRGB already installed and working.
You have a Stream Deck.
Else If
All of your LEDs are connected properly and in working order.
You have software for all of your devices with LEDs already installed and working.
You do NOT have OpenRGB installed.
You have a Stream Deck.
If that is the case then this will be a bit more than just setting up some buttons. If you are lucky everything you have is supported and is recognized and you are good. If you have some off brand stuff you may not be able to get it to recognize and it will not work. If that is the case you can collect the data needed and submit a new hardware request and if you did your side of it they will add it to the app. Then you’d be good to go. If you have something not recognized you can try running the beta/experimental version and you might get lucky. I did.
Click here to continue doing it the hard way
The Easy Way
Summary: We are going to enable the HTTP Hook (WebHooks) plugin in OpenRGB and then configure it for use. Then we need to create some new Website buttons in our Stream Deck.
The OpenRGB app
I am going to assume you already have the Effects plugin installed and working. If you do not – go and get the OpenRBG Effects Plugin.
Install the HTTP Hooks plugin
Go and get the OpenRGB HTTP Hook Plugin. OpenRGB up and install the plugins. 'Settings' > 'Plugins' > 'Install Plugin.' Now you should have the Effects and HTTP Hook tabs if you didn’t already.
Configure HTTP Hook
For all buttons we are going to use with OpenRGB/Stream Deck set the ‘Method’ to ‘GET.’
The ‘path’ can be whatever you would like it to be, it just needs to be unique for each web hook. When creating a new hook it will populate this field with a random(?) number, but you can change it.
For ‘Action’ you need to select ‘Effects plugin action’ and then select one of your saved profiles (not an OpenRGB profile, an Effects plugin profile).
You need to have some profiles saved and created with the Effects plugin.
IP: localhost (it defaults to 0.0.0.0 but I could not get it to work, same with 127.0.0.1 but YMMV.)
Port: 8080 (this can be changed if you need to just make sure it is the same port across the entire board)
Enable 'AutoStart'
Do that for each button you want to create (one for each color or pattern, etc.).
The Stream Deck
Open your Stream Deck software, and find an empty button space to add to.
Add a new Website button.
Pick a name or no name, your preference.
'URL' is going to be http://localhost:8080/XXXX‘XXXX’ being the same exact ‘path’ used in OpenRGB under the HTTP Hook tab, for example http://localhost:8080/red . This will be unique for each button you create.
Enable the 'GET request in background' option – if you do not enable this box when you click on a button it will launch/open in your web browser every time.
Don’t forget to select an awesome icon/image to use for you new Stream Deck button! This is the most important part, don’t lie to yourself. You can use the online Elgato Creator to help!
That’s it!
You’re set! Your new Stream Deck OpenRGB buttons should now be working and changing your LED colors on the press of a button!
The Hard Way
So you had to go and be difficult. You have a bunch of LEDs and they are connected and working. You may/may not have the proprietary LED software installed by their manufacturers. You do NOT have OpenRGB installed, but you at least have a Stream Deck and know how to use it. Right? Heads up now, you may have to uninstall your existing LED controller software. ASUS Async and Corsairs iCue can interfere with OpenRGB. If they are not completely disabled and not running you may experience glitching and pulsing type behavior from your LEDs because two programs are trying to tell the LEDs what to do. Most times it is easier to uninstall them than to get them fully disabled.
Install OpenRGB
First thing, download and install OpenRGB. It is a .Zip file so extract it and slap it in a folder somewhere. Don’t open it just yet we need to add some plugins first.
Install the Effects plugin
Now go and get the OpenRBG Effects Plugin. This is a .dll file that we need to install via the OpenRGB app but don’t open it yet we have one more plugin to add.
Install the HTTP Hooks plugin
Go and get the OpenRGB HTTP Hook Plugin. Same as the other this is a .dll file to be installed via the software. This was the last plugin we needed so you can launch OpenRGB now.
Configure OpenRGB
After OpenRGB loads it should scan and detect your hardware with LEDs. If you do not see all or any devices on the left in the 'Devices' tab the go ahead and click 'Rescan Devices' at the bottom.
Head over to 'Settings' tab. Configure the 'General Settings' to your liking then click on 'Plugins.' Now make sure that the two plugins we want to use, Effects and HTTP Hooks, are enabled. Sometimes on load I have noticed the plugin(s) may not be enabled. The lighting still works I just have to enable the plugin to see the tabs sometimes.
Go ahead and click on the 'Effects' tab. This is where the magic happens. The Effects Plugin is what makes the colors and the patterns and all the LED goodness. First you pick an effect, you may have to enable it (the little icon to the left of the effect name), then you select (on the right window pane) the devices that are going to use/follow that effect(s). You can mix and match effects and devices at the same time. Then in the middle is all the settings for the effect(s) you choose.
IMPORTANT!! Do not forget to SAVE! If you don’t it will all be lost. 'Effects' > 'Profiles' > 'Save' , this is also where you can load up a saved profile to be edited. These are the profiles that HTTP Hook plugin ‘Action’ is referencing a few steps up.
Click on the 'HTTP Hook' tab and create a new 'HTTPHook.' Give the tab a name, I named them after the colors they change to.
For all of the web hooks use 'GET' for the 'Method.'
The 'path' can be whatever you would like it to be, it just needs to be unique for each web hook. When creating a new hook it will populate this field with a random(?) number but you can change it.
For 'Action' you need to select 'Effects plugin action' and then select one of your saved profiles you made earlier (not an OpenRGB profile, an Effects plugin profile).
IP: localhost
Port: 8080 (this can be changed if you need to just make sure it is the same port across the entire board)
Enable 'AutoStart'
Do that for each button you want to create (one for each color or pattern, etc.).
The Stream Deck
Open your Stream Deck software, and find an empty button space to add to.
Add a new Website button.
Pick a name or no name, your preference.
'URL' is going to be http://localhost:8080/XXXX 'XXXX' being the same exact 'path' used in OpenRGB under the HTTP Hook tab. This will be unique for each button you create.Enable the 'GET request in background' – if you do not enable this box when you click on a button it will launch/open in your web browser.
Don’t forget to select an awesome icon/image to use for you new Stream Deck button! This is the most important part, don’t lie to yourself. You can use the online Elgato Creator to help!
FIN!
Some useful links
https://www.elgato.com/us/en/s/keycreator
https://openrgb.org/index.html
https://gitlab.com/CalcProgrammer1/OpenRGB
https://gitlab.com/CalcProgrammer1/OpenRGB/-/wikis/home
https://gitlab.com/OpenRGBDevelopers/OpenRGBHttpHookPlugin
https://gitlab.com/OpenRGBDevelopers/OpenRGBEffectsPlugin
https://github.com/qmk/qmk_firmware/tree/master/keyboards/novelkeys/nk87
https://github.com/Kasper24/QMK-OpenRGB/tree/openrgb/keyboards/nk87
Discover more from Its_All.Lost
Subscribe to get the latest posts sent to your email.
Great guide, thanks. I was already an OpenRGB user so the easy setup was perfect for me!