Esphome IR Transmit an unknown Pronto Code

Hello all,

im trying to get my electric skylight stair react with esphome by trying to fake the original IR-Code. The buttons of the original IR-Remote needs to be pressed while the stair is moving.
When analyzing the code with remote receiver i get the following codes for e.g. down:

[11:06:44][D][remote.pronto:238]: Received Pronto: data=0000 006D 000A 0000 000B 00B6 000B 0117 0009 0118 0009 00B8 000A 00B7 0006 011C 0008 00B9 0008 011A 0008 011A 0006 06C3
[11:06:44][D][remote.pronto:238]: Received Pronto: data=0000 006D 0009 0000 0008 011A 0008 011A 0008 00B9 0006 011C 0009 0119 0009 00B8 0009 00B8 0009 0119 0006 06C3
[11:06:44][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0005 06C3
[11:06:44][D][remote.pronto:238]: Received Pronto: data=0000 006D 0001 0000 0008 06C3
[11:06:44][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 00BB 0006 06C3
[11:06:44][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0006 06C3
[11:06:44][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0006 06C3
[11:06:44][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0006 06C3
[11:06:44][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0006 06C3
[11:06:45][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0006 06C3
[11:06:45][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0006 06C3
[11:06:45][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0006 06C3
[11:06:45][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0006 06C3
[11:06:45][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0006 06C3
[11:06:45][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0007 06C3
[11:06:45][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0006 06C3
[11:06:45][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0006 06C3
[11:06:46][D][remote.pronto:238]: Received Pronto: data=0000 006D 0002 0000 0006 011C 0006 06C3

The last line will be repeated as long as i press the button.

When i try to send the short code like 0000 006D 0001 0000 000B 06C3 nothing reacts, just only when i send the long code the stair reacts for a very little time like i would press on the original remote for a short time…
I think i need to repeat the code in the right frequency like the original remote does but i dont get it how to do it.
I tried to use Scrutinizer for getting the impulse-frequency but it didnt suceed:





For the command “up” the original Remote sends:

[11:19:47][D][remote.pronto:238]: Received Pronto: data=0000 006D 000C 0000 000E 0114 000A 00B7 000B 00B7 000B 0116 000A 0117 000A 00B7 0008 00B9 0009 0118 0008 00B9 0009 0119 0009 00B8 0008 06C3
[11:19:47][D][remote.pronto:238]: Received Pronto: data=0000 006D 000C 0000 0008 011A 0009 00B8 0009 00B8 0008 0119 0008 011A 0008 00B9 0007 00BA 0006 011C 0006 00BC 0006 011C 0008 00B9 0005 06C3
[11:19:47][D][remote.pronto:238]: Received Pronto: data=0000 006D 0005 0000 0006 011C 0006 00BB 0006 00BB 0008 011A 0005 06C3
[11:19:47][D][remote.pronto:238]: Received Pronto: data=0000 006D 0003 0000 0006 011C 0008 00B9 0005 06C3
[11:19:47][D][remote.pronto:238]: Received Pronto: data=0000 006D 0003 0000 0006 011C 0008 00B9 0007 06C3
[11:19:47][D][remote.pronto:238]: Received Pronto: data=0000 006D 0003 0000 0006 011C 0008 00B9 0007 06C3
[11:19:47][D][remote.pronto:238]: Received Pronto: data=0000 006D 0003 0000 0006 011C 0008 00B9 0006 06C3
[11:19:47][D][remote.pronto:238]: Received Pronto: data=0000 006D 0003 0000 0006 011C 0008 00B9 0005 06C3
[11:19:48][D][remote.pronto:238]: Received Pronto: data=0000 006D 0003 0000 0006 011C 0008 00B9 0007 06C3
[11:19:48][D][remote.pronto:238]: Received Pronto: data=0000 006D 0003 0000 0006 011C 0008 00B9 0007 06C3

On the second i dont know if the signal i receive is 100% correct because i just connected the Receiver and also the Transmitter to the ESP Board without other electric components e.g. transitor.
Trying to act with my fujitso_general a/c over esphome-climate everything works fine.

The original manufacterer doesnt want to help me
Perhaps someone can help me here. Thank you!

Have you tried sending the long code followed by the short code on repeat?

PS IR is a pain. I spent an absurd amount of time getting my TV and stereo working properly (which is great now) Thought it would be a 15 minute project and it turned into several weeks and required me getting another IR receiver.

1 Like

Couple of random comments.

I’ve sometimes found using a good quality esp and power supply can help with ir/rf. And solid wiring/cables. At least during dev to rule that all out. Then codes can become more consistent/reliable.

Have you tried raw codes (or are you sure Pronto is ok?). Raw codes can be a pain but you may need to go there…

What I often do is take 10 measurements for each action, and then try to put each “similar code” right next to each other (in rows in a text editor etc), then cherry pick “the most consistent” ones, and try to work with them.

If you have “composite codes” then yeah, maybe combine them in a script together and play with delays / repeats. Sometimes I copy/paste a bunch and try to brute force something that works…

So it might look a little like this:

#On say a virtual button.
on_...:
  #Wake up please stairs, I'm about to transmit? 
  - remote_transmitter.transmit_pronto:
      data: "0000 XXXX"
  #I wan't to go "down".
  - remote_transmitter.transmit_pronto:
      data: "0000 YYYY"
  #Repeat last action
  - remote_transmitter.transmit_pronto:
      data: "0000 ZZZZ"
      repeat:
        times: 10
        wait_time: 50ms