SkillAgentSearch skills...

Glimmr

Glimmr is a .Net Core application to synchronize Ambient LED strips with Hue Lights, Lifx Bulbs, and Nanoleaf Panels

Install / Use

/learn @d8ahazard/Glimmr
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

d8ahazard/glimmr

What the heck is this??

Glimmr is a FOSS ambient home lighting solution. Hook it up to a HDMI signal, use a webcam, or use the screen capture function; and drive a wide range of lighting devices in sync with the input signal. It's similar to Hyperion, Govee, or the Hue Sync box, only with a much broader support for devices.

The project is written in dotnet core, which means it can run on most any modern arm, intel, or AMD processor. Presently, it has been tested to work with Debian and Ubuntu linux, as well as raspbian and Windows 10 and 11. It is specifically designed to run on a raspberry Pi 4B, however, it has also been shown to run fine on a 3B, and could potentailly also work on a zero...although it has not been tested.

Supported devices include DreamScreen, Hue, Lifx, Nanoleaf, WLED, Adalight (Arduino), Yeelight, and WS2812B/SK6822 strips connected to the GPIO of a raspberry pi. Additionally, a vast array of desktop RGB devices are supported via OpenRGB integration. And, if there's not a device supported and it has an API, I'm more than willing to try adding support for it.

In addition to all the supported devices, each device has a custom set of options which can be used to ensure perfect alignement with the screen content, regardless of room placement. Mirroring, scaling, and brightness are all configurable for every device.

Additional features include automatic updates, black bar detection, auto-disable and enable; audio, audio/video, and ambient modes with user-defineable parameters via a JSON loading system.

The app is controllable via an inbuilt web interface, Android application (available on the play store), and a fully documented API (via swagger). Python api wrapper WIP.

<img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/arduino.png?raw=true" width=100 height=100><img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/debian.png?raw=true" width=100 height=100><img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/docker.png?raw=true" width=100 height=100><img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/dreamscreen.png?raw=true" width=100 height=100><img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/hue.png?raw=true" width=100 height=100><img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/lifx.png?raw=true" width=100 height=100><img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/linux.png?raw=true" width=100 height=100><img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/nanoleaf.png?raw=true" width=100 height=100><img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/openrgb.png?raw=true" width=100 height=100><img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/raspi.png?raw=true" width=100 height=100><img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/ubuntu.png?raw=true" width=100 height=100><img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/windows.png?raw=true" width=100 height=100><img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/wled.png?raw=true" width=100 height=100><img src="https://github.com/d8ahazard/glimmr/blob/master/docs/logos/yeelight.png?raw=true" width=100 height=100>

Installation

Windows

Installer

Download the latest .exe installer from releases, and run it.

Scripted

Open a Powershell window, execute the following command:

iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/d8ahazard/glimmr/dev/script/setup_win.ps1'))

OR, to clone from the master branch:

iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/d8ahazard/glimmr/master/script/setup_win.ps1'))

Once the script is done running, you should now have a "GlimmrTray" application in your start menu.

Click this to launch Glimmr, minimize the console window to have it stored in the tray.

Note: Glimmr/GlimmrTray MUST be run as administrator in order for screen capture to work.

Raspberry Pi

Installer

Download the latest linux-arm deb package installer from releases, and installing it by running apt-get install FILENAME.deb.

Script

Execute the following command:

sudo su
wget -qO- https://raw.githubusercontent.com/d8ahazard/glimmr/master/script/setup_linux.sh | bash

Alternatively, you can flash a custom image directly to your pi from here:

Full Raspi OS image can be found here:

X64: https://mega.nz/file/C34GEAqZ#RpckErhTPhn6qz1cVDNDmr4QP9wfYemEaAOLvRRBz4E

You will need to use "BalenaEtcher", a free software for flashing the image.

https://www.balena.io/etcher/

Once Balena is installed and loaded, select the image file you downloaded from above, and make sure your micro SD card is connected to your computer. Select the SD card, and click "Flash" to begin.

Once flashing is done - simply insert the SD card into your pi and boot it up.

If using the custom RasPi image, it is configured to use the Comitup service to create an access point which you can connect to to configure your Glimmr's wifi settings. Once the pi is booted, use a phone or laptop and connect to the access point "Comitup-XXX" or "Glimmr-XXX" (WIP). Once connected, you should be prompted to select a local wifi network and enter a password. Make a note of the name of the access point.

Once wifi is configured, reconnect to your home wifi, and enter http://glimmr-xxx into a browser, where the -xxx is the same as the access point.

Note: Glimmr is installed as a service, and can be stopped/started by running "sudo service glimmr start" or "sudo service glimmr stop" respectively.

Linux

Installer

Download the latest linux-x64 deb package installer from releases, and installing it by running apt-get install FILENAME.deb.

Script

Execute the following command:

sudo su
wget -qO- https://raw.githubusercontent.com/d8ahazard/glimmr/master/script/setup_linux.sh | bash

Note: Glimmr is installed as a service, and can be stopped/started by running "sudo service glimmr start" or "sudo service glimmr stop" respectively.

OSX

Installer:

Download the latest macos-installer package installer from releases, and installing it by double-clicking it.

Scripted Install

Open a terminal, execute the following commands:

sudo su
curl https://raw.githubusercontent.com/d8ahazard/glimmr/master/script/setup_osx.sh | sh

docker

Use the following command. You don't need to specify the ASPNETCORE_URLS value, unless you wish to change the default port that the web UI listens on. If so, modify the port number. e.g.: 'http://+:5699' to 'http://+:80'

docker create \
  --name=glimmr \
  -v <path to data>:/etc/glimmr \
  -p 1900:1900/udp \
  -p 2100:2100/udp \
  -p 5353:5353/udp \  
  -p 8888:8888/udp \ 
  -p 56700:56700/udp \ 
  -p 60222:60222/udp \ 
  -p 80:5699 \
  -p 443:5670 \
  --network="bridge" \
  --restart unless-stopped \
  digitalhigh/glimmr

docker-compose

Compatible with docker-compose v2 schemas.

---
version: "2"
services:
  glimmr:
    image: d8ahazard/glimmr
    container_name: glimmr
    restart: unless-stopped
    network: bridge
	volumes:
      	- <path to data>:/etc/glimmr
    ports:
      	- 1900:1900/udp
  	- 2100:2100/udp
  	- 5353:5353/udp
  	- 8888:8888/udp
  	- 56700:56700/udp
  	- 60222:60222/udp
  	- 5699:5699

Parameters

Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

| Parameter | Function | | :----: | --- | | -v <path_to_data>/etc/glimmr | Change <path_to_data> to the location where to keep glimmr ini | | -p 1900:1900\udp | Hue Discovery port | | -p 2100:2100\udp | Hue Broadcast port | | -p 5353:5353\udp | MDNS Discovery port | | -p 8888:8888\udp | DS Emulation port | | -p 56700:56700\udp | LIFX Discovery port | | -p 60222:5353\udp | Nanoleaf Discovery port | | -p 5699:5699 | Web UI port | | -network="bridge" | Because Glimmr requires MDNS for discovery, it is recommended to use a bridge when running this container, otherwise a binding error on port 5353 is likely to occur. |

 

Application Usage

Once installed, access the Web UI at <your-ip> from a web browser.

Alternatively, you can use the Glimmr Mobile app (Android, UWP).

Discover Devices

Discovery should be auto-triggered when the application runs for the first time.

If devices are missing or you want to re-scan, the refresh button is in the lower-right corner of the web UI.

Configure Glimmr Settings

To configure system, capture, and audio preferences, click the gear icon in the top-right corner of the screen.

Configure OpenRGB

OpenRGB is a free, cross-platform solution for controlling desktop-connected lighting peripherals.

Once installed, ensure OpenRGB is running and the SDK server is started. Refer to the OpenRGB FAQ for information regarding setting it up as a service.

Under Settings -> General -> OpenRGB, enter the IP Address of the computer on which OpenRGB is running.

Now, trigger a device refresh, and any devices in OpenRGB should be added to the Glimmr UI.

Configure

View on GitHub
GitHub Stars58
CategoryDevelopment
Updated9mo ago
Forks8

Languages

C#

Security Score

87/100

Audited on Jun 29, 2025

No findings