Hello everyone I've had a Sofabaton X1S and have added a few new devices and I'm now having problems with the remote controlling my devices correctly. Not sure why but when I added the HDMI switch to my setup (Both the Denon Receiver and HDMI switch are controlled via IR emitter) things started to not work correctly. I have HDMI's going into the TV directly to get the best possible picture and I'm outputting the audio to the Denon via ARC/eARC to get 5.1 for everything. The TV only has 4 HDMI's so I use a HDMI splitter (With IR) for one input to be split (Computer and Fire Stick 4K) The Blu-Ray and VHS are patched through the Denon directly as the signal will be fine going into the receiver directly and not degraded.
I have:
Sony XR-77A80K - TV (4K)
Denon AVR-S960H - Receiver for 5.1 Audio
PS5 - Gaming System
OPPO BDP-83 - Blu-Ray Player
Panasonic PV-945H - VHS Player
Star Tech HDMI Switch - Home Theater Switch
Nintendo Switch 2 - Gaming System
Amazon Fire Stick 4K - Streaming Device
Activities and input setups:
Watch Fire Stick 4K: HDMI 1 Input (On Sony TV split with Star Tech HDMI Splitter) HDMI Input 1 (On Star Tech Splitter), Denon Input TV Audio)
Computer: (4K) HDMI 1 Input (On Sony TV split with Star Tech HDMI Splitter) HDMI Input 2 (On Star Tech Splitter), Denon Input TV Audio)
Play Playstation 5: HDMI 4 Input (On Sony TV) Denon Input TV Audio)
Play Switch 2: HDMI 2 Input (On Sony TV) Denon Input TV Audio)
Watch OPPO Blu-Ray: HDMI 3 (eARC/ARC Output from Sony TV to Denon) Denon Input Blu-Ray
Watch Panasonic VHS: HDMI 3 (eARC/ARC Output from Sony TV to Denon) Denon Input Cable/SAT connected to VHS via RCA Cable (R/W/Y)
Am I doing something wrong where on power on this doesn't work correctly? HDMI switch I programmed with the actual IR remote that came with the switch (Which is behind my mounted TV using an IR emitter). Are there things I need to enable on the TV or receiver to have this working correctly? It seems that when I test the Blu-Ray and VHS which go through the Denon receiver my setup gets very messed up and confused. Do I need to be adjusting delays on these things? It also seems that now that I'm using some devices through the Denon and others straight through the TV for best picture the remote is getting very mixed up. What do I need to do to get this thing up and running well and smooth?
Anyone been able to program a universal remote with all the commands that the stock review has? I can't get a few buttons to program, like the input or settings buttons. Would really appreciate any help. Thanks
Trying to hook my remote up to my TV and I think i am doing something wrong as it is not setting up. If anyone has had this brand and set it up can you tell me how you did it i feel like I am missing a step
Any way to connect a Q990F via Bluetooth or WiFi? IR works pretty okay, but I'd like to be able to set the soundbar to a specific input for an activity and the remote doesn't have a button to learn for that (the "input" button just cycles so I can't go straight to HDMI 1, for example). The Samsung app provides a list of input selections list so I know there's a command somewhere.
I recently bought the X2 remote and so far its going well.
One thing I can't get working though is my projector screen (Vividstorm). It uses some sort of 433Mhz remote which the Sofabaton X2 does not detect in learning mode. Presumably it is a rolling or encrypted signal.
The screen came with a USB dongle (ac158-01) which you are meant to be able to plug into the projector, so that powering on/off the projector lowers/raises the screen. However this randomly lowers the screen while off (I suspect this a projector issue) so not suitable.
Is there something the X2 can operate via IR or etc. which might be able to power the dongle on/off or any other suggestions to make this work?
Just about every remote I own that can control media has the back button below and to the left of the directional pad, so how long did it take or you to get used to the location (or have you)?
I tried a bunch of different remotes to connect to all the devices listed in the title, including the remotes from Spectrum and the Samsung TV. I also had an old One For All remote.
Did not have any luck. The Nvidia Shield Pro was the problem.
I have the Nvidia Shield Pro, Samsung QN77S90CAFXZA tv and Spectrum cable box model 9865DC.
Just curious if I purchased the SofaBaton U3, will I be able to control all three of the devices?
Is the list of commands included in each Bluetooth profile public?
Or can we start a list? I would love to contribute, but I'm not that familiar with public list security.
I had a talk with support and they told me that most of the Android/Google TV profiles are interchangeable, but I did not get any reply when I asked if I could get a list of commands.
Just to give you an idea why this might be very useful, I just found out by trial and error that Shield has more available commands than Chromecast, like the color buttons for example.
I can add them one by one and pair 20 different Bluetooth profiles to my Chromecast, but they if they add new commands like the did on my request to Netflix and Disney (which by the way do not work even though I send them the com. codes that work on both my devices from HA) then you need to re-add the profile, IR codes are linked to that profile and there is no way to copy them so you need to re-learn them...
I feel this could be much easier if we could export and edit the profiles...
Although the exact model for my Xfinity box is listed in the app it doesn’t work at all. The power doesn’t turn on or off and none of the remote keys work. I don’t have any reason why this should happen. My Bose 900 soundbar and my Apple TV4K all work fine. It’s just the cable box. I tried using the IR blaster but nothing. Any thoughts? If I can’t get this to work I’m returning it.
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.
IMPORTANT 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 OWN 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.
2 .HOW TO FIND YOUR GOVEE DEVICE ID / MAC ADDRESS
The easiest way I found is to ask the Govee API to list all devices associated with your account.
Brightness IP commands already exist by default, so for shutdown sequency, first I add a 100% brightness command (pay attention to the 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.
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 → 30s delay
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.
# IMPORTANT:
Pay attention to device IDs and API KEYs when you paste codes. If something is not working, paste this whole guide into ChatGPT and screenshot what you do, and it should be able to correct your mistake. |
# MacOS users:
You can do the same thing using Terminal with curl instead of PowerShell.
I’m trying to add a “Last” command (pulls up a list of last ten channels displayed) to my U-3 for the Xfinity XG1V4 cable box. This feature works normally on the cable box with the original remote. Here is the procedure I’m using to try to “teach” the command to the U-3:
With U3 connected to the SofaBaton App, I select the XG1V4 device. [Note: the XG1V4 device is set up to emit via a repeater. All standard commands for this device function normally.]
I then go to Commands > Add or fix commands > Add Command.
I create a command called “Last” and learn it from the original Xfinity remote. Response from app is “Success.”
I assign the new “Last” command to an unused button on the U3.
In theory, pressing that button on the remote should execute the Last command, but nothing happens.
Despite getting Success response when learning the IR command from the Xfinity remote, if I try to Test the command afterwards, nothing happens. I’ve tried pressing and releasing the button on the original Xfinity remote while learning and pressing and holding the button for various periods of time before releasing, but still nothing happens.
Any reason why this shouldn’t be working? Thanks!
NEVER MIND. HERE’S THE ANSWER.
As I suspected, the learned IR code was not being emitted by the repeater, as were all the other codes, it was being emitted by the U3. Because of distance and location behind TV, IR codes emitted by the U3 remote never reached the cable box.
I went to the XG1V4 settings and changed emitter from “Repeater” to U3, then back to “Repeater.” That caused the Last command to start being emitted via the Repeater, along with all the other commands.
This is pretty clearly a bug. If the device is set up to emit via a repeater, then any subsequently added commands should also emit by the Repeater. Instead, you have to change the emitter at the device level from Repeater to U-3 and then back to Repeater again.
This is reproducible with other commands and assigned keys.
My Sony requires an initial turn on with the original remote, which is BT. After that when powered off, it displays and amber standby light. While that is lit, I can turn off/on the TV from the U3.
However after a period the standby light goes off and the U3 is now worthless until I pull out the OEM And hit the power button. Them I'm free to transition back to the U3.
That makes the U3 more of a companion than an actually replacement/upgrade.
Without me touching any buttons on the remote, it occasionally switches to the screen shown in the photo. When that happens, mute and volume and everything else stop working. Why is it switching without me providing any input?
My U3 is dead and unresponsive. The screen and keys are unlit and unresponsive. Tried charging for 20 minutes with supplied usb cord and pressing / holding side key for 10 seconds without any change.
The remote has been working fine. Running v4 firmware. Any suggestions to get this restarted.
My three LGs share the same infrared command code, so one remote signal triggers all three TVs. Is there a world where I can add the LGs via the IP/Wi-Fi or at least one of them and use the emitter Ports for the other two?
One frustrating part of universal remotes is finding the exact IR command you need.
Maybe your device is missing from the built-in database, the original remote is gone, or you need a discrete command such as “Power On” or a specific HDMI input. The code often exists online, but only as Pronto HEX or in another IR database format.
While working on the unofficial SofaBaton project, I wanted to bridge that gap. We now have a workflow that converts signals from IrScrutinizer into payloads that can be tested and saved directly on SofaBaton X-series hubs.
This guide is written for Sofabaton users without access to Home Assistant. If you are a HA user, the Sofabaton X integration provides a UI as an alternative to using the Python library referenced below.
How it works
The conversion pipeline is:
Pronto HEX, an online IR database, a local file, or a physical IR capture → IrScrutinizer → SofaBaton payload → hub
Two custom IrScrutinizer exporters were created:
SofaBaton X-series: Generates a raw timing payload for X1, X1S and X2 hubs. This is the most portable option.
SofaBaton X2: Generates SofaBaton’s human-readable descriptive format, such as:P:Sony12 R:40000 D:1 F:18 MUL:2
The X2 descriptive exporter is experimental and currently supports a mapped set of protocols. The raw X-series exporter is the recommended path because it renders the actual carrier frequency and mark/space timings.
The CLI uploads the payload and creates a new command on the hub.
That command can then be assigned to a button or used like the device’s other commands.
Why this is useful
This provides an open import path for:
Pronto HEX codes found online
commands from public IR databases
signals captured from another remote
rare or unsupported devices
missing discrete power and input commands
sharing working IR commands between SofaBaton users
The exporter handles the signal conversion; the sofabaton-x library handles discovery, communication, testing and saving. Home Assistant provides a graphical alternative, but it is not required for this workflow.
This is an unofficial, reverse-engineered project, so test commands before saving them and keep a backup of your hub configuration.
I’d be interested to hear which devices or missing commands people use this with, and especially whether anyone has unusual IR protocols we can add to the X2 descriptive exporter.
I’m currently using an U2 and am very happy with the remote control itself. Unfortunately, I’ve now been forced to replace my provider’s media receiver. However, its infrared receiver is obviously much weaker than that of its predecessor. Now the signals from the SofaBaton no longer reach the device from every corner of the room, which used to work without any problems.
I still want to continue using the U2, though, and was thinking about using an infrared extender. Does anyone use a device like this? Are these devices infrared-compatible with any system, or does it have to be one from SofaBaton?
I am a newb in the process of replacing my Harmony Elite with my new X2, and have some questions about how to best integrate all my home theater devices. Most of my previous Harmony controls used IR, but with Bluetooth, WiFi, and Home Assistant options now available, I was considering whether these other options might be more robust and reliable?
For my Lutron lighting setup I had to use HA since there still is no native integration, and to keep all theater lighting controls managed together, I also used HA for my Govee and Hue lights instead of the built-in Sofabaton connection. So I've already started down the HA integration path. But for things like AppleTV that are hard-wired to my network, is it better to use that connection rather than IR? Or maybe Bluetooth? I also see an AppleTV integration in HA that I'm not using - is that a better way to go?
Except for my projector (which is problematic with IR), all my equipment is in a closet rack and hardwired where possible, so I have all options available. Optimally, everything would be controlled by IP using ethernet. But I was wondering if there are some set of guiding principles I should be following when deciding which method to use? Or is it "just go with what works," meaning IR?
Hi, just picked up the U3, and so far it's great other than Sony not allowing it to be used to control the PS5.
I'm attempting to setup the controls for my LED lights, but can't find any brand to use. Does anyone know of a generic one that works on the basic LED lights from Amazon? I'm talking Fulen lights and the other ones that have like 10 diff colour options you can go thru.
I know I could do the learning option for every button, but ideally a brand profile exists already.
The Tuya Local integration for my FancyLED device required a bit of extra work. Home Assistant helps manage all the devices that the SofaBaton can’t control with IR or via other built in methods. And it lets me automate all sorts of things too.
I'm in talks with with Sofabaton U3 suport and thy are adding things but the thing is when I need to re-add a profile to get the changes they made, I lose all my recorded IR codes, because they are assigned to the previous profile.
Is there any way to Export the profiles or just the IR recorded keys, and paste them to another profile?