
SofaBaton + Govee TV Backlight Automation
This could work with any Govee Device WITHOUT running any extra device for Home Automation.
I finally got my Govee T2 TV Backlight (H605C) working the way I wanted with my SofaBaton remote, so I figured I'd post the complete setup in case anyone else wants to do something similar.
Before you read any further: YOU NEED TO REQUEST YOUR OWN API KEY!
It wouldn't work without it. You can do this in Govee app.
The goal was:
When shutting down the home theater:
TV/AVR/etc. shut down → Govee leaves Movie mode → changes to a solid warm orange at 100% brightness so we can see while leaving the room → stays on for a selected time → turns off.
When starting the theater again:
Govee turns on → automatically goes back into my Movie DreamView.
MPORTANT LIMITATION — VIDEO MODE / “START TO EXPERIENCE”
One limitation I could not find a way around through the Govee API is directly controlling the normal Video mode.
So unfortunately, SofaBaton cannot simply reproduce every setting from the normal Govee Video/Experience screen. (White balance, individual LED segment brightness, etc.
The workaround: Movie DreamView
The solution I found was to create a Movie DreamView in the Govee app and have SofaBaton activate that DreamView through the API.
DreamView gives you fewer adjustments than the normal Video Experience. In my case, I can configure:
- Brightness
- Saturation
- Movie or Game
- Part or All
For a TV backlight, make sure you select PART, not ALL.
PART allows the different sections of the LED strip to display different colors based on the corresponding areas of the TV picture. This is what you want for proper screen-matching ambient lighting.
ALL treats the backlight more like one unified light, so the entire LED strip displays the same overall color instead of different areas of the strip matching different areas of the screen.
Once the Movie DreamView is configured the way you want in the Govee app, SofaBaton can activate it automatically during the home-theater startup sequence.
Also IMPORTANT: DO NOT IN ANY CASE EVER SHARE YOUR API KEY!!!!
End of disclaimer....
1. Get your Govee API key
First you need to request your own Govee API key through the Govee app/developer API.
You'll also need:
- Your Govee model/SKU, in my case
H605C - Your individual Govee device ID
Obviously, do not copy somebody else's API key or device ID. The command structure is the same, but those values need to be your own.
In SofaBaton I added the commands using IP Control / API commands.
For the headers I use:
Govee-API-Key: YOUR_API_KEY
Content type:
application/json
SOLID COLOR COMMAND
For normal color control, Govee uses its older API.
Method
PUT
URL
https://developer-api.govee.com/v1/devices/control
Body
You can select any color you want; just change the RGB values.
{"model":"H605C","cmd":{"name":"color","value":{"r":255,"g":90,"b":0}},"device":"YOUR_DEVICE_ID"}
Brightness IP commands already exist by default, so for shutdown sequency, first I add a 100% brightness command (pay attention to device if you have multiple ones!)
THEN add the color command.
THEN add Off. command and set delay.
So my shutdown sequence sends:
Brightness 100% → Warm Orange → Off.
GETTING BACK INTO MOVIE MODE
This was the difficult part.
You need to create a Movie DreamView
In the Govee app I created a Movie DreamView and configured it exactly the way I want for movie watching.
Go to Feature hub then Group and DreamView and create a new one and name it "movie".
Then set it up how you want it to. These are my settings for T2 backlight:
MOVIE DREAMVIEW ON COMMAND
This is where an important difference comes in.
DreamView uses Govee's new API endpoint, NOT the older one used for color and brightness.
Method
POST
Do not use PUT.
URL
https://openapi.api.govee.com/router/api/v1/device/control
Header
Govee-API-Key: YOUR_API_KEY
Content type
application/json
Body
{"requestId":"sofabaton-movie-1","payload":{"sku":"H605C","device":"YOUR_DEVICE_ID","capability":{"type":"devices.capabilities.toggle","instance":"dreamViewToggle","value":1}}}
value:1 turns Movie DreamView ON.
The important part is that this MUST use:
POST
https://openapi.api.govee.com/router/api/v1/device/control
MOVIE DREAMVIEW OFF
If you want a separate DreamView OFF command, use the same command and change:
"value":1
to:
"value":0
So:
{"requestId":"sofabaton-movie-off","payload":{"sku":"H605C","device":"YOUR_DEVICE_ID","capability":{"type":"devices.capabilities.toggle","instance":"dreamViewToggle","value":0}}}
Again:
POST
https://openapi.api.govee.com/router/api/v1/device/control
MY SOFABATON STARTUP SEQUENCE
For starting the theater I can now basically do:
TV/AVR/etc. ON
↓
Govee ON
↓
Movie DreamView ON
And the T2 goes back into my Movie DreamView instead of remaining in the solid orange lighting mode.
The nice thing about using DreamView is that I don't have to try to send separate commands for saturation, Vivid, Movie, white balance, etc. The DreamView already contains the configuration I want.
MY SOFABATON SHUTDOWN SEQUENCE
My shutdown is essentially
Brightness 100%
↓
Solid warm orange
↓
Govee OFF + Delay approximately 2 minutes
This means the home theater equipment can shut down while the Govee backlight stays on as a warm orange room light for a couple of minutes so nobody is walking around in complete darkness.
Then it turns itself off.
ONE SOFABATON DELAY QUIRK I FOUND
I initially set a delay to MAX which is 127.5 seconds, but SofaBaton strangely executed the final Govee OFF command after only about 2 seconds.
I removed the OFF command completely and confirmed the orange light stayed on, so Govee itself was not shutting down.
I then tested a 10-second SofaBaton delay, and that worked perfectly.
Then tested longer delays but did not track perfectly. 111s delay turned off the color after 45 seconds. I have relayed the issue to Sofabaton, and they will look into it. I also requested to have 3-4-5 minute delays after 120seconds.
This might also be beneficial for people with serious home theater processors that take minutes to boot up
UPDATE: The best solution I found was to use repeated Color ON commands with 30-second delays instead of trying to use one long 120-second delay, which doesn't seem to work correctly with SofaBaton. So instead of: Color ON → 120-second delay → OFF I repeat the same Color ON command every 30 seconds. This keeps the light on for the amount of time I want while getting around the problem with longer delays. I also made an important change at the end of the shutdown sequence. Before actually turning the backlight off, I lower the brightness and put it back into Movie DreamView. The reason is that without doing this, the next startup begins with the Govee displaying the last solid color from the shutdown sequence at 100% brightness before Movie DreamView kicks in. By restoring the brightness and Movie DreamView before turning the backlight off, the Govee is already in the correct state for the next startup. My shutdown sequence is now: Brightness 100% → 0s delay → Color ON → 30s delay → Color ON → 30s delay → Color ON → 30s delay → Color ON → Brightness 50% → 2s delay → Movie DreamView → 2s delay → OFF This gives me the temporary solid-color room lighting during shutdown, but before the Govee actually powers off, it is returned to Movie DreamView at a more reasonable brightness. The next time the system starts, it comes on in the correct mode instead of briefly blasting the previous solid color at 100% brightness.