No need to buy a DreamView device or camera to support light sync for Govee products! Now you can natively sync any Govee lights to your display.
Demo Video: https://tinyurl.com/LightSync
3 Different Options to Sync Lights:
Option 1 (EASIEST and no coding required): LAN Control GUI
Required Prerequisites: JDK 23
- Turn on your Govee Lights
- Open the Govee App and turn on "LAN Control" under device settings (the app can be buggy, this thread has common solutions)
- Install 'SyncApp.exe' from the repository (Look above ^)
- Run it!
- If you get a Java error, you likely need to save JAVA_HOME in your system variables: Instructions
Option 2: LAN Control (fast, but not available on all devices and sometimes unavailable on the Govee app)
Required Prerequisites: JDK 23, Apache Maven
- Turn on your Govee Lights
- Open the Govee App and turn on "LAN Control" under device settings
- After cloning repo, run
mvn installin your terminal and you should see "BUILD SUCCESS" - Navigate to
\src\main\java\com\nirmal\LANControlScripts\GetLANControlDetails.java - Run
GetLANControlDetails.javaand copy the device IP from the output - Replace
DEVICE_IPinLANControl.javawith your copied device IP - Run the
LANControl.javafile and your lights should be synced to your display!
Option 3: Govee API (slower, but supported by more devices and always available)
Required Prerequisites: JDK, Apache Maven, and your Govee API Key
- Turn on your Govee Lights
- After cloning repo, rename your
.env.examplefile to.envand replaceAPI_KEY,SKU, andDEVICE_IDwith your credentials- Submit the following GET Request if you are unsure of your SKU and Device ID:
GET /router/api/v1/user/devices HTTP/1.1 Host: https://openapi.api.govee.com Content-Type: application/json Govee-API-Key: {API KEY}
- Submit the following GET Request if you are unsure of your SKU and Device ID:
- Run
mvn installin your terminal and you should see "BUILD SUCCESS" - Run the
Main.javafile and your lights should be synced to your display!
For those who want to play around with the performance and color change threshold, look for the "MODIFIABLE" comments in Main.java and LANControl.java
10/2 Patch Update - User-friendly GUI for LAN Control!
- Added a simple GUI application to control lights from any PC
- Install, run, and sync your lights!
9/28 Patch Update - Better color perception for dark scenes!
- Changed color calculation algorithm to weigh colors based on luminance for better perceptual accuracy
9/27 Patch Update - EVEN MORE Reduced Latency using LAN Control!
- Everything needed to sync through LAN Control is inside
src\main\java\com\nirmal\LANControlScriptsdirectory - Reduces average latency to ≈ 50ms depending on hardware capability
9/25 Patch Update - Reduced Latency!
- Upgraded to HTTPClient to leverage HTTP/2
- Reduced # of pixels processed per calculation
- Asynchronous POST Requests with timeout to prevent bottlenecks
- Lowered default color change threshold since it is now capable of handling color changes more often
Planned Future Updates:
- Reduced latency delay ✅
- More user-friendly support ✅
- Ability to use screen edges for color sync ⭐
- More gradual color syncing for drastic scene changes ⭐
- Match segments of lights to the corresponding areas of the screen ⭐
- User Suggestions: https://forms.gle/NK6y5NysLNNfNUKC7