Channel switching problem

Hi,

I use a Broadlink RM Mini 3 connected to a Sony A95L TV and Alexa to manage channel switching via preset scenes. I set a 0.500 second interval between transmitting numbers to select three-digit channels. However, I have a problem: when I send the command, the TV only detects one or two numbers, instead of the full sequence.

For example, to select channel 130, it only displays “1 and 0” or “1 and 3”, or sometimes only “3 and 0”. I tried moving the Broadlink device closer to the TV, but with no improvement. I should note that with a Samsung TV I have never had similar problems.
any suggestions on how to solve this difficulty?

Have you tried to change the interval?

Sony codes are a bit more specific than Samsung or LG - I think a pause of 0.8 to 1.0 seconds is a good tip.
Here is the background information on the Sony IR codes if you are interested

If you are familiar with plugins in HR, you can try the following plugin code. Your TV has a REST API and can be controlled via the local network.
Here is the description of the REST API and examples from SONY

and here is a plugin code for HR that I had created by an AI (unfortunately I can’t test it myself because I don’t have a SONY TV).

plugin.Name = "SonyTV";
plugin.OnChangeRequest = onChangeRequest;
plugin.OnConnect = onConnect;
plugin.OnDisconnect = onDisconnect;
plugin.OnPoll = onPoll;
plugin.OnSynchronizeDevices = onSynchronizeDevices;
plugin.PollingInterval = -1;
plugin.DefaultSettings = { "Host": "192.168.0.1", "PSK": "1234" };

var http = new HTTPClient();
var baseUrl;
var commands = {
    "HDMI1": { method: "setPlayContent", params: [{ uri: "extInput:hdmi?port=1" }] },
    "HDMI2": { method: "setPlayContent", params: [{ uri: "extInput:hdmi?port=2" }] },
    "HDMI3": { method: "setPlayContent", params: [{ uri: "extInput:hdmi?port=3" }] },
    "HDMI4": { method: "setPlayContent", params: [{ uri: "extInput:hdmi?port=4" }] },
    "CHANNEL1": { method: "setPlayContent", params: [{ uri: "tv:dvbc?trip=1.1.1" }] },
    "CHANNEL2": { method: "setPlayContent", params: [{ uri: "tv:dvbc?trip=1.1.2" }] },
    // Add more channels here
};

function onChangeRequest(device, attribute, value) {
    // Validate the attribute
    if (attribute != "MediaCommand")
        throw "Invalid attribute";
    // Get the command from the commands list
    var command = commands[value];
    if (!command)
        throw "Invalid command";
    // Prepare the request data
    var requestData = JSON.stringify({
        method: command.method,
        version: "1.0",
        id: 1,
        params: command.params
    });
    // Set HTTP headers
    http.setRequestHeader("X-Auth-PSK", plugin.Settings["PSK"]);
    http.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
    // Send the request
    console.log("sending=> " + baseUrl + "/sony/avContent");
    http.post(baseUrl + "/sony/avContent", requestData);
}

function onConnect() {
    // Set the base URL from plugin settings
    baseUrl = "http://" + plugin.Settings["Host"];
    var mediaCenter = plugin.Devices["1"];
    if (mediaCenter != null) {
        // Add supported media commands to the device
        mediaCenter.SupportedMediaCommands = Object.keys(commands);
    }
}

function onDisconnect() {
    // Handle disconnection logic here
}

function onPoll() {
    // Handle polling logic here
}

function onSynchronizeDevices() {
    // Create and add a media center device
    var mediaCenter = new Device();
    mediaCenter.Id = "1";
    mediaCenter.DisplayName = "SonyTV";
    mediaCenter.Capabilities = ["MediaControl"];
    mediaCenter.Attributes = [];
    plugin.Devices[mediaCenter.Id] = mediaCenter;
}

Sometimes it can be that the IR is too strong. Put a piece of painter’s tape over the IR sensor on the TV, or if the Broadlink has a strength setting, turn it down.

I second what ECIS said. When I have this type of problem, I extend the interval to as long as I can (like several seconds). If it starts working, I then experiment with shorter times until it stops working.