Request: will any user successfully using ESPhome as a remote IR transmitter please post their yaml

instead of dump raw, set it to dump all, or a select number of protocols:

remote_receiver:
  pin:
    number: GPIO5
    inverted: true
  dump: 
    - lg 
    - samsung
    - nec

Honestly you don’t want to use raw unless you really need to. I started using lg default cause the’re easiest to work with, but some devices you can’t send lg to, and you need to work with samsung or nec

below example of the codes I send, as you can see I need to send in 3 different protocols (that’s why I dump those three):

# Neufunk
  - platform: template
    name: NeuFunk_TV_ON
    turn_on_action:
      - remote_transmitter.transmit_lg:
          data: 0x04FB4AB5
          nbits: 32
# Samsung
  - platform: template
    name: Samsung_TV_ON
    turn_on_action:
      - remote_transmitter.transmit_samsung:
          data: 0xE0E040BF
          #nbits: 32
# Onkyo stereo receiver
  - platform: template
    name: Onkyo_Stereo_vol-up
    turn_on_action:
      - remote_transmitter.transmit_nec:
          address: 0x6DD2
          command: 0xFD02

Thanks @kurtj

I tried with this config:

remote_receiver:
  pin:
    number: GPIO4
    inverted: true
  dump: 
    - drayton 
    - rc_switch
    - nexa
    - lg 
    - samsung
    - nec

I added all the RF protocals in addition to the protocals you suggested. I did this because the fan uses RF.

With this configuration I don’t receive any codes, no matter which buttons I press.

I’ll happily receive further suggestions.

Thanks anyway.

if you set it to dump: all you will get all the protocols, including raw.

What remote (brand/applicance/type) are you trying to capture/send btw?

Thanks @kurtj

It’s this one

It wasn’t my choice.

I’ll try the all option.

Hi @kurtj

Using all I just get steady stream of Pronto codes. When I press buttons on the remote I can’t see anything that stands out from the stream of pronto codes.

How do I stop the status LED being on once it has reached a steady state?
I tried inverting the LED, but what I tried wasn’t allowed.

Has anyone successfully configured to use RCCM protocol with esphome? I have a STB from a vendor called as Airtel here. It looks the IR remote is using RCCM/Nokia32 as the protocol.
In my esphome based IR transmitter, I configured it as dump: raw. I am getting the raw codes something similar to the one given below. These values are for same key “Digit 1” on my remote. If I configure any other protocol like nec or rc6, I am not getting any log in my esphome IR receiver log page. So using alternative protocal like NEC, Pioneer is ruled out.

Digit 1:
Received Raw: 352, -247, 187, -282, 191, -596, 181, -438, 218, -563, 187, -284, 185, -281, 188, -250, 187, -281, 195, -587, 219, -562, 187, -438, 187, -785, 215, -219, 219, -250, 194, -274, 219, -406, 219
Received Raw: 343, -215, 251, -225, 181, -625, 218, -407, 187, -613, 200, -218, 219, -250, 188, -281, 187, -285, 184, -594, 218, -563, 220, -412, 180, -782, 218, -219, 191, -278, 219, -218, 219, -438, 218

I tried to send the value multiple times using repeated signal, as given below, But still the codes are not getting detected by my device.
Meanwhile to confirm the protocol that are sent by the remote, I tried to decode the signals using Ubuntu. I used the intel NUC with IR receiver running with Ubuntu. When I used linux commands to collect the output, I am getting the protocol received is lirc protocol (rc-mm-32).
I checked esphome IR transmitter documents section, I could not find rcmm or Philips available there.

  - platform: template
    name: "Num1"
    id: Num1
    turn_on_action:
      - remote_transmitter.transmit_raw:
          repeat:
            times: 15
            wait_time: 16 ms
          carrier_frequency: 36kHz
          code: [  349, -222, 253, -211, 189, -625, 219, -406, 219, -562, 219, -219, 225, -212, 219, -281, 226, -212, 187, -625, 219, -563, 239, -386, 190, -788, 209, -188, 256, -215, 219, -247, 219, -406, 219 ]
      - remote_transmitter.transmit_raw:
          repeat:
            times: 15
            wait_time: 16 ms
          carrier_frequency: 36kHz
          code: [  344, -218, 219, -250, 188, -625, 219, -406, 219, -576, 205, -219, 187, -281, 188, -281, 235, -203, 187, -282, 187, -594, 219, -409, 184, -782, 218, -219, 188, -281, 187, -282, 187, -438, 218 ]

Below given are with multiple lines as input with repeat and wait options. 
      - remote_transmitter.transmit_raw:
          repeat:
            times: 15
            wait_time: 16 ms
          carrier_frequency: 38kHz
          code: [  337, -250, 225, -212, 219, -594, 218, -407, 187, -613, 200, -219, 218, -250, 188, -281, 197, -272, 188, -250, 187, -625, 219, -418, 175, -750, 219, -219, 219, -259, 178, -282, 187, -438, 218 ]
      - remote_transmitter.transmit_raw:
          repeat:
            times: 15
            wait_time: 16 ms
          carrier_frequency: 38kHz
          code: [  352, -249, 231, -209, 216, -594, 218, -406, 241, -571, 219, -187, 250, -219, 219, -249, 231, -208, 217, -625, 187, -615, 198, -405, 188, -749, 219, -237, 207, -282, 211, -187, 219, -437, 219 ]

Have someone who successfully configured this protocol to work with esphome, share your suggestions please? I am trying from past few week but I could not get it working.

One point I forget to mention. This IR transmitter/blaster is based on cb3s chipset. I have configured my LG TV and another IR remote based ceiling fan using LG and NEC protocols. When I press respective remote of these devices, the log is showing lg and nec as the protocol. They are working fine without any issue as well for the commands initiated from esphome web page of respective IR device. so the IR receiver and Transmitter is working as expected. Only the STB remote in question is stubborn.

Meanwhile I continued to work on this and figured out the options to control my STB as well using RAW format of codes successfully. The codes I have received didn’t work but using IrScrutinizer I got the working RAW codes. I have tested 3 of the buttons. Configuring the YAML with other buttons. I will post my solution once its ready which may be helpful for someone using the same STB provider.

Hi,

I have a Freenove ESP32 Wroom board.
I can receive ir codes from my air heat pumps remote in the following formats to my board without any problem:
Coolix, Pronto, RAW, Samsung, Toshiba AC

remote_receiver:
  pin: 
    number: GPIO32
    inverted: true
  dump: all

The problem is sending the different remote codes via remote_transmitter

remote_transmitter:
  pin: 
    number: GPIO19
  carrier_duty_percent: 50%

I started with trying to send Coolix but that gave me nothing in the logs so i moved on to try to send the rest of the codes to test.
I have the following for testning the different codes i my .yaml

button:
  - platform: template
    name: "Toshiba AC"
    id: toshiba_id
    on_press:
      - remote_transmitter.transmit_toshiba_ac:
          rc_code_1: 0xB24DBF4040BF
      - logger.log: "My Log: Toshiba AC"
  - platform: template
    name: "Samsung"
    id: samsung_id
    on_press:
      - remote_transmitter.transmit_samsung:
          data: 0xB946F50A09F6
          nbits: 48
      - logger.log: "My Log: Samsung"
  - platform: template
    name: "Pronto"
    id: pronto_id
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 0010 0000 0008 0020 0008 0046 000A 0020 0008 0020 0008 001E 000A 001E 000A 0046 000A 001E 0008 0020 0008 0020 0008 0046 000A 0046 000A 0046 000A 001E 000A 001E 0008 06C3"
      - logger.log: "My Log: Pronto"
  - platform: template
    name: "RAW"
    id: raw_id
    on_press:
      - remote_transmitter.transmit_raw:
          code: [2000,-1000, 400,-1000, 400, -400,1000,-1000, 400,-1000, 400, -400,1000,-1000, 400,-1000, 400, -400,2000,-5600,
                 2000,-1000, 400,-1000, 400, -400,1000,-1000, 400,-1000, 400, -400,1000,-1000, 400,-1000, 400, -400,2000,-5600,
                 2000,-1000, 400,-1000, 400, -400,1000,-1000, 400,-1000, 400, -400,1000,-1000, 400,-1000, 400, -400,2000,-5600]
          carrier_frequency: 38kHz
          repeat:
            times: 5
            wait_time: 16ms
      - logger.log: "My Log: RAW"

This is what i get in the logs for the respective codes:

Pronto
[19:20:06][D][button:010]: ‘Pronto’ Pressed.
[19:20:06][D][remote.pronto:101]: Send Pronto: frequency=38kHz
[19:20:06][D][remote.pronto:106]: Send Pronto: intros=32
[19:20:06][D][remote.pronto:107]: Send Pronto: repeats=0
[19:20:06][D][main:459]: My Log: Pronto

RAW
[19:20:15][D][button:010]: ‘RAW’ Pressed.
[19:20:15][D][main:561]: My Log: RAW

Samsung
[19:20:16][D][button:010]: ‘Samsung’ Pressed.
[19:20:16][D][main:424]: My Log: Samsung

Toshiba AC
[19:20:17][D][button:010]: ‘Toshiba AC’ Pressed.
[19:20:17][D][main:389]: My Log: Toshiba AC

If i try my code on a different board from another manufacturer i get the same results…

But if i use NEC it for some reason seam to work.

button:
  - platform: template
    name: "NEC"
    id: nec_id
    on_press:
      - remote_transmitter.transmit_nec:
          address: 0x1234
          command: 0x78AB
          command_repeats: 1
      - logger.log: "My Log: Nec"

[20:02:11][D][button:010]: ‘NEC’ Pressed.
[20:02:11][D][remote.nec:017]: Sending NEC: address=0x1234, command=0x78AB command_repeats=1
[20:02:11][D][main:576]: My Log: Nec

Can someone point me in the right direction of what I’m doing wrong or what the problem could be?

What is working when you use NEC? Its being transmitted and you can verify it from the logs? Or is it actually transmitting a command to the device?. Are you transmitting and receiving from the same esp32? Do you have them both set up and configured at the same time?

I was recently capturing IR codes for a fan i have recently. I noticed it would show in the logs that it received JVC one time and the next time maybe Panasonic or RC and this is all for a single button, it wouldnt be the same code and manufacturer/code type consistently.

I just had to go through and try each one untill I found out which was correct and which ones were wrong. The other thing I noticed atleast on mine is once you push the button on remote, I had to do it very fast(push/release) and doing that I would have better chances of it decoding/reading the correct code wheras with a normal(0.5s) button push the remote keeps transmitting the code repeatedly, very fast and that seemed to be what was causing the IR receiver to detect the wrong codes/manufacturer in the logs.

Do 1 button on your remote at a time. Push it once then copy/paste the code from the log into a text file. Repeat that another 4 times and see if 1 code is coming through consistently. If it is, try transmitting that code. If it doesnt work then try one of the other codes that came up in your 5 tests. Mine for example. I would get JVC codes a lot and figured that was the right one and it wasnt. Mine was RC_Switch and sometimes id have to push the button/transmit and it would take 6-8 try’s before the log would show me that it received the correct RC_Switch code instead of JVC or RAW.

It just takes patience and knowing the first decoded signal in the logs may not be the right one.

Hi @Fallingaway24,

What is working when you use NEC? Its being transmitted and you can verify it from the logs?

Yes, working (should have used another word for it) in the sense that remote.nec is being called and shows up in the logs.

As you see in my post Raw, Samsung and Toshiba gives nothing.

But i guess the real problem is that something like this is not showing up at all in the logs for my ESP32

[D][remote_transmitter:075]: Sending remote code…

Remembered that I hade a Tuya IR Remote Control blaster lying around, so i flashed it with ESPHome and it is working (in the real sense). I can send commands and my air heat pump reacts as it should to the codes.

[19:07:35][D][remote_transmitter:075]: Sending remote code…

The difference is that its a

esp8266:
  board: esp01_1m

Ya, those IR receivers are finicky, like i said some buttons it took 7-8 tries before the right RC_Switch code was decoded but it was still telling me it received JVC and other codes which were errors actually.

An esp01 is fine for doing IR functions.

The issues is not with receiving and decoding the ir codes on the ESP32, it is when i try to transmitt them from the ESP32.

Thank you for the the post and the sharing this. I have a Atomberg Fan with an IR Remote and this forum was able to get me to get to a working solution.

Pending:
a. Integrating with BME280, BH1750, mmwave to create an all in one solution to control presence, measure humidity, temperature, pressure and lux in the room.

Parts:
Wemos D1 Mini
KY005 - IR Transmitter (L-R, GND-Vin-Signal) - Vin is 5V…3.3V was erratic may be it will work for you.
Atomberg Remote - Used for capturing Code. nec.transmitter worked for me. Both raw and nec.transmitter worked. No Feedback loop from Fan is received highlighting current status.

Diagram:

Configuration:

substitutions:
  device_name: kidsroomIR
  friendly_name: KidsRoom

##remote_transmitter_pin -D6 or GPIO12
  remote_transmitter_pin: GPIO12

esphome:
  name: ${device_name}
  friendly_name: ${friendly_name}

esp8266:
  board: d1_mini
# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: " enter your own"

ota:
  - platform: esphome
    password: " put your own"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "W1M1 Fallback Hotspot"
    password: "your own"

captive_portal:

remote_transmitter:
  pin: ${remote_transmitter_pin}
  carrier_duty_percent: 50%

switch:

  - platform: template
    name: "Fan On/Off"
    id: Fan_ON_OFF
    turn_on_action:
      - remote_transmitter.transmit_nec:
          address: 0xF300
          command: 0x6E91
          command_repeats: 1

  - platform: template
    name: "Speed 1"
    id: Fan_Speed_1
    turn_on_action:
      - remote_transmitter.transmit_nec:
          address: 0xF300
          command: 0x748B
          command_repeats: 1

  - platform: template
    name: "Speed 2"
    id: Fan_Speed_2
    turn_on_action:
      - remote_transmitter.transmit_nec:
          address: 0xF300
          command: 0x6F90
          command_repeats: 1

  - platform: template
    name: "Speed 3"
    id: Fan_Speed_3
    turn_on_action:
      - remote_transmitter.transmit_nec:
          address: 0xF300
          command: 0x758A
          command_repeats: 1

  - platform: template
    name: "Speed 4"
    id: Fan_Speed_4
    turn_on_action:
      - remote_transmitter.transmit_nec:
          address: 0xF300
          command: 0x6C93
          command_repeats: 1

  - platform: template
    name: Speed 5"
    id: Fan_Speed_5
    turn_on_action:
      - remote_transmitter.transmit_nec:
          address: 0xF300
          command: 0x7788
          command_repeats: 1

How you experimented that??
There is no Vin on that module, the pin is not connected to anything.

which module the ir transmitter. The middle pin is VIN…My setup works

You can disconnect it and it works equally