How to know the frequency/technology used in a remote?

Not yet.
Have been busy with Christmas and all that.

But I know I can control the remote from an ESP, I have figured that out.
The issue I have now is that the rotary encoder and display does not fit the box I have, my plan is to try and trim off some excess material from the parts to make them fit.

But been busy with other things and haven’t had time with hobby projects.

Gotcha, I know that well.

Please do update the thread when you do make progress. In the meantime I’ve also found this thread, which might help me when I finally do find some time for hobby projects. Control RF TV Lift using IR Remote using Arduino (build a remote for the remote) - Project Guidance - Arduino Forum

That is exactly how I was planning on doing it, but with an ESP instead.

Only difference is that I was planning on having a touch display to control it also and a rotary encoder to control the volume of the Chromecast.

Just got it to run with a similar solution! Used an ESP8266 with GPIO pins driving a couple of relays to toggle preset memory buttons on the remote. ESPHome made it quite easy to set up, program and interface with HA. I have a LG tv on the mount, which when turned on triggers the automation to lower the stand using the setup. Works pretty well!

@vinaykashya can you share any more info about how you attached to the remote buttons (maybe a pic?). I’m about to do the same thing and would love a starting point.

@vinaykashya Please, could you post a photo and the source code you used? We appreciate it.

@Hellis81 Did you get how to connect remote controller with ESP? sorry for inconvenience…

Just got back to this. Were you able to set it up? I will write up a post and link soon.

Did anyone end up finishing up modifying their remote with an esp and relay/optocoupler?

Any pics to share? My mount is on its way and it has this remote. Unfortunately I can’t order a spare and the supplier won’t offer a “replacement” remote I can modify… So I’ll be modifying the only remote I have so I’ll be extra careful not to ground the wrong things.

Ah ok user this thread now. That is helpful

Would be really nice too see some pics of your set up as well as your HA code!!

Not sure if anyone is still trying to do this but I recently did it with my remote.

I used an ESP32 Lite (CH340G) and two Jaycar SY4090 / KQAH616D PhotoMOS relays. Each relay input has a 330 Ω resistor between the ESP32 GPIO and pin 1; pin 2 goes to ESP32 GND. The isolated output, pins 4 and 6, connects across the centre and one outer contact of a remote key:

  • GPIO25 → K1: closes the arm against the wall.
  • GPIO26 → K8: opens the arm to the right.

I programmed the position for K1 & K8 (1 & 2 buttons on the remote) before I did the soldering.

ESPHome gives each key a 500 ms pulse, starts with both outputs off, and prevents them operating together. I checked that each PhotoMOS output was open at rest and closed when driven before connecting it to the remote. Both directions now work from Home Assistant.

This uses the remote’s original RF transmitter; I haven’t decoded or reproduced its RF protocol. The circuit is working on a breadboard, and I’m moving it to a soldered board soon but this works and its an easier way to show you how I got there (thanks also to the previous posts on this thread).

Photos of my build here with parts list: Microsoft OneDrive

ESP32 Code
esphome:
  name: esphome-web-bec4f0
  friendly_name: ESPHome Web bec4f0
  min_version: 2026.4.0
  name_add_mac_suffix: false

esp32:
  variant: esp32
  framework:
    type: esp-idf

logger:

api:

ota:
  - platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

globals:
  - id: remote_button_busy
    type: bool
    restore_value: no
    initial_value: "false"

switch:
  - platform: gpio
    id: remote_k1_output
    pin:
      number: GPIO25
      inverted: false
    internal: true
    restore_mode: ALWAYS_OFF

  - platform: gpio
    id: remote_k8_output
    pin:
      number: GPIO26
      inverted: false
    internal: true
    restore_mode: ALWAYS_OFF

button:
  - platform: template
    name: "Remote K1 - Arm against wall"
    on_press:
      then:
        - if:
            condition:
              lambda: 'return !id(remote_button_busy);'
            then:
              - lambda: 'id(remote_button_busy) = true;'
              - switch.turn_on: remote_k1_output
              - delay: 500ms
              - switch.turn_off: remote_k1_output
              - lambda: 'id(remote_button_busy) = false;'

  - platform: template
    name: "Remote K8 - Open to the right"
    on_press:
      then:
        - if:
            condition:
              lambda: 'return !id(remote_button_busy);'
            then:
              - lambda: 'id(remote_button_busy) = true;'
              - switch.turn_on: remote_k8_output
              - delay: 500ms
              - switch.turn_off: remote_k8_output
              - lambda: 'id(remote_button_busy) = false;'