What's right to put on bk7231n based IR blaster to make it usable in HA?

I don’t think I’ve changed a much, other than adding a couple of small bits. Here’s my latest:

substitutions:
  friendly_name: IRBlaster
  host_name: irblaster

esphome:
  name: $host_name
  friendly_name: $friendly_name

bk72xx:
  board: cb3s                           # https://docs.libretiny.eu/boards/cb3s/
# bk72xx:
#   board: generic-bk7231n-qfn32-tuya

logger:                                 # Enable logging. https://esphome.io/components/logger.html
  level: DEBUG                          # NONE, ERROR, WARN, INFO, DEBUG (Default), VERBOSE, VERY_VERBOSE
  baud_rate: 0                          # Stops logging over onboard UART

api:                                    # Enable Home Assistant API.
  encryption:
    key: !secret api_encryption_key

ota:
  password: !secret ota_password
  safe_mode: True
  
wifi:                                   # WiFi connection details. Without domain:, defaults to .local. https://esphome.io/components/wifi.html
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  # power_save_mode: LIGHT                # NONE, LIGHT, HIGH
  fast_connect: true

  ap:                                   # Enable fallback hotspot (captive portal) in case wifi connection fails
    ssid: "${friendly_name} Fallback"
    password: !secret fallback_password
captive_portal:

sensor:
  - platform: wifi_signal # Reports the WiFi signal strength in dB. https://esphome.io/components/sensor/wifi_signal.html
    name: "WiFi Signal dB"              # Uncomment to show signal DB in HA
    id: wifi_signal_db
    update_interval: 60s                # Report signal every minute
    entity_category: "diagnostic"
    device_class: "signal_strength"
    disabled_by_default: true           # Shows entity in HA, but disabled by default
    internal: true
  - platform: copy                      # Reports the WiFi signal strength %
    source_id: wifi_signal_db
    name: "WiFi Signal"
    filters:
      - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
    unit_of_measurement: "%"
    entity_category: "diagnostic"
    device_class: "signal_strength"
    disabled_by_default: true           # Shows entity in HA, but disabled by default
  - platform: uptime
    id: uptime_seconds
    # update_interval: 10s
    # internal: true                    # Uncomment to leave internal and not send to HA
    name: "Uptime"
    entity_category: "diagnostic"
    disabled_by_default: true           # Shows entity in HA, but disabled by default

text_sensor:
  # Expose WiFi information as sensors.
  - platform: wifi_info
    ip_address:
      name: Wi-Fi IP
      icon: mdi:wifi
    mac_address:
      name: Wi-Fi MAC
      icon: mdi:wifi
#    ssid:
#      name: Wi-fi SSID
#      icon: mdi:wifi
#    bssid:
#      name: Router MAC
#      icon: mdi:wifi
  - platform: version
    name: "ESPHome Version"
    icon: mdi:wrench-outline
    disabled_by_default: true
 
switch:                                 # Switches
  - platform: factory_reset
    name: Restart with Factory Default Settings
    disabled_by_default: true
    entity_category: diagnostic
    
light:
  - platform: status_led                # Used as a status LED during boot/errors, and status_light when running/OK. https://esphome.io/components/light/status_led
    pin: P8
    id: status_light
    # name: Status LED                  # Uncomment to show in HA
    icon: mdi:led-on
    disabled_by_default: true           # Shows entity in HA, but disabled by default

binary_sensor:
    # Status
  - platform: status
    name: "API Status"                  # Button, https://esphome.io/components/binary_sensor/gpio
  - platform: gpio
    pin:
      number: P6
      inverted: true
      mode:
        input: true
        pullup: true                    # Holds it high/off, otherwise it flutters on/off
    name: "Button"
    icon: "mdi:button-pointer"
    # internal: true                    # Hides button from HA
    # disabled_by_default: true         # Shows entity in HA, but disabled by default
    on_press:                           # Switch LED on/off as a test
      - light.turn_on: status_light
    on_release:
      - light.turn_off: status_light
    # on_double_click:
    #   then:
    #   - light.toggle: status_light

# Sync time with Home Assistant
time:
  - platform: homeassistant
    id: ha_time

# # Home Assistant sensor to store received remote command data
# text_sensor:
#   - platform: template
#     name: Learned Command
#     icon: mdi:remote
#     id: learned_command

remote_receiver:
  pin:
    number: P7
    inverted: true
    mode:
      input: true
      pullup: true
  tolerance: 25
  dump: all
  # dump: pronto
  # dump: raw
  # dump: samsung

  # on_samsung:
  #     - if: # If Samsung code is received
  #         condition:
  #           lambda: 'return id(remote_learn_switch).state;'
  #         then:
  #           - lambda: |-
  #               id(remote_learn_switch).publish_state(false);
  #               std::string log_output = "Samsung: Data = 0x" + esphome::format_hex((uint32_t)x.data) + ", nbits = " + esphome::to_string(x.nbits);
  #               id(learned_command).publish_state(log_output.c_str());
  #           - delay: 80ms
  #           - light.turn_on: status_light
  #           - delay: 500ms
  #           - light.turn_off: status_light
  # on_sony: # If Sony code is received
  #   - if:
  #       condition:
  #         lambda: 'return id(remote_learn_switch).state;'
  #       then:
  #         - lambda: |-
  #             id(remote_learn_switch).publish_state(false);
  #             std::string log_output = "Sony: Data = 0x" + esphome::format_hex(x.data) + ", nbits = " + esphome::to_string(x.nbits);
  #             id(learned_command).publish_state(log_output.c_str());
  #         - delay: 80ms
  #         - light.turn_on: status_light
  #         - delay: 500ms
  #         - light.turn_off: status_light

# switch:
# Home Assistant controlled switch - to enable "learning mode"
#  - platform: template
#    name: Learn Command
#    id: remote_learn_switch
#    icon: mdi:remote
#    optimistic: true

remote_transmitter:                     # https://esphome.io/components/remote_transmitter.html
  pin: P26
  carrier_duty_percent: 50%

button:
  - platform: restart
    id: "restart_device"
    name: "Restart"
    entity_category: "diagnostic"
  - platform: safe_mode
    id: "restart_device_safe_mode"
    name: "Restart (Safe Mode)"
    entity_category: "diagnostic"
    disabled_by_default: true
# IR codes to send from HA:
# FAN, Raw
  - platform: template
    name: Fan On/Speed
    icon: mdi:fan
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_raw:
          carrier_frequency: 38kHz
          code: [1155, -438, 1250, -403, 437, -1250, 1291, -396, 1282, -406, 437, -1260, 428, -1250, 437, -1264, 434, -1240, 437, -1250, 1295, -393, 469, -7947, 1303, -406, 1291, -397, 468, -1219, 1281, -413, 1275, -406, 437, -1250, 441, -1250, 434, -1251, 437, -1263, 425, -1250, 1281, -410, 468, -7948, 1299, -406, 1282, -406, 447, -1240, 1250, -438, 1263, -424, 438, -1278, 409, -1254, 437, -1266, 418, -1250, 444, -1247, 1247, -438, 437, -7979, 1281, -428, 1250, -437, 438, -1263, 1237, -437, 1250, -438, 419, -1268, 407, -1281, 406, -1294, 425, -1250, 406, -1294, 1237, -438, 406]
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: Fan Off
    icon: mdi:fan-off
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_raw:
          carrier_frequency: 38kHz
          code: [1164, -389, 1288, -399, 469, -1266, 1232, -414, 1275, -409, 441, -1274, 444, -1243, 437, -1267, 420, -1253, 434, -1267, 420, -1253, 1247, -7185, 1250, -441, 1246, -379, 472, -1274, 1266, -390, 1284, -403, 469, -1266, 421, -1253, 434, -1253, 437, -1246, 441, -1247, 439, -1264, 1240, -7165, 1271, -399, 1298, -390, 468, -1253, 1252, -417, 1265, -412, 462, -1250, 442, -1248, 435, -1253, 434, -1266, 421, -1256, 431, -1254, 1249, -7167, 1265, -444, 1243, -410, 481, -1233, 1287, -400, 1297,  -390, 437, -1254, 434, -1266, 421, -1253, 434, -1249, 446, -1255, 440, -1240, 447]
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: Fan Osc
    icon: mdi:fan-chevron-up
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_raw:
          carrier_frequency: 38kHz
          code: [1188, -403, 1298, -389, 437, -1250, 1291, -396, 1283, -403, 438, -1259, 428, -1249, 1281, -406, 437, -1256, 431, -1249, 438, -1259, 427, -8011, 1267, -406, 1284, -406, 434, -1250, 1280, -407, 1294, -392, 438, -1249, 437, -1288, 1243, -437, 406, -1291, 396, -1281, 406, -1281, 409, -8006, 1268, -437, 1249, -438, 406, -1290, 1240, -437, 1253, -434, 406, -1280, 406, -1281, 1259, -428, 406, -1280, 406, -1291, 409, -1268, 406, -8016, 1288, -410, 1249, -438, 406, -1293, 1237, -437, 1250, -437, 406, -1291, 396, -1280, 1263, -424, 406, -1281, 437, -1250, 416, -1270, 438, -7994, 1252, -437, 1259, -428, 406, -1280, 1260, -427, 1250, -437, 437, -1260, 427, -1249, 406, -1281, 404, -1293, 427, -1250, 437, -1263, 393, -8010, 1267, -437, 1255, -438, 431, -1250, 1249, -534, 1166, -424, 406, -1281, 406, -1294, 424, -1249, 438, -1259, 396, -1281, 437, -1250, 409, -8007, 1267, -437, 1250, -437, 406, -1291, 1239, -438, 1252, -437, 406, -1278, 406, -1295, 399, -1283, 396, -1281, 406, -1291, 396, -1281, 409, -8105, 1176, -462, 1218, -469, 375, -1286, 1246, -470, 1217, -438, 406, -1292, 396, -1282, 406, -1295, 393, -1281, 406, -1282, 416, -1272, 406]
      - delay: 60ms
      - light.turn_off: status_light
#  - platform: template
#    name: Fan Timer
#    icon: mdi:fan-clock
#    on_press:
#      - light.turn_on: status_light
#      - remote_transmitter.transmit_raw:
#          carrier_frequency: 38kHz
#          code: [1174, -378, 1312, -371, 476, -1212, 1315, -372, 1334, -353, 468, -1253, 434, -1226, 461, -1219, 1315, -372, 472, -1225, 458, -1222, 465, -7984, 1315, -355, 1315, -372, 468, -1242, 1289, -378, 1309, -375, 482, -1205, 469, -1221, 466, -1242, 1292, -371, 469, -1222, 465, -1245, 445, -8004, 1272, -378, 1312, -371, 472, -1215, 1331, -356, 1316, -371, 469, -1242, 445, -1222, 465, -1218, 1305, -383, 472, -1215, 468, -1242, 445, -7959, 1323, -372, 1301, -386, 437, -1253, 1309, -378, 1278, -406, 472, -1184, 468, -1241, 446, -1222, 465, -1239, 449, -1221, 465, -1219, 523]
#      - delay: 60ms
#      - light.turn_off: status_light
#  - platform: template
#    name: Fan Mode
#    icon: mdi:fan-auto
#    on_press:
#      - light.turn_on: status_light
#      - remote_transmitter.transmit_raw:
#          carrier_frequency: 38kHz
#          code: [1151, -441, 1246, -409, 438, -1277, 1253, -434, 1269, -419, 406, -1284, 403, -1304, 383, -1284, 403, -1280, 1273, -414, 422, -1272, 399, -8015, 1284, -417, 1256, -431, 406, -1305, 1226, -444, 1243, -440, 406, -1278, 409, -1278, 406, -1303, 384, -1284, 1253, -431, 406, -1284, 403, -8014, 1264, -458, 1229, -441, 403, -1282, 1304, -383, 1317, -371, 407, -1305, 414, -1253, 404, -1284, 403, -1285, 1313, -372, 437, -1271, 417, -7994, 1293, -403, 1305, -383, 438, -1253, 1281, -426, 1266, -403, 435, -1250, 444, -1244, 437, -1254, 434, -1274, 1261, -403, 438, -1254, 434, -7994, 1305, -366, 1306, -376, 475, -1212, 1317, -371, 1335, -354, 468, -1223, 465, -1243, 445, -1222, 466, -1219, 1305, -383, 449, -1246, 431, -7987, 1285, -418, 1253, -434, 407, -1274, 1265, -434, 1247, -441, 406, -1247, 441, -1247, 438, -1272, 416, -1253, 1283, -433, 407, -1254, 434, -8018, 1265, -462, 1226, -441, 403, -1250, 1308, -411, 1254, -434, 375, -1305, 383, -1285, 403, -1285, 406, -1279, 410, -1278, 406, -1276, 412, -8037, 1251, -403, 1308, -380, 437, -1254, 1295, -409, 1310, -362, 437, -1298, 392, -1245, 438, -1255, 528, -1180, 413, -1254, 434, -1260, 428]
#      - delay: 60ms
#      - light.turn_off: status_light
# Fish light, Raw
  - platform: template
    name: Fish light On/Off
    icon: mdi:wall-sconce-flat-outline
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_raw:
          carrier_frequency: 38kHz
          code: [9956, -4437, 680, -1594, 687, -538, 650, -531, 656, -531, 656, -532, 659, -528, 656, -1593, 688, -531, 688, -531, 656, -1593, 688, -1624, 688, -1597, 684, -1593, 688, -1611, 701, -500, 656, -1628, 684, -1593, 688, -531, 656, -531, 657, -1593, 691, -1590, 688, -531, 656, -535, 653, -531, 687, -500, 656, -1706, 607, -1593, 689, -533, 653, -531, 657, -1595, 689, -1591, 688, -1632, 681]
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: Fish light 12:00
    icon: mdi:update
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_raw:
          carrier_frequency: 38kHz
          code: [9777, -4469, 646, -1704, 577, -594, 594, -597, 628, -556, 625, -562, 625, -563, 635, -1681, 590, -594, 625, -575, 612, -1656, 625, -1708, 621, -1643, 622, -1711, 601, -1657, 676, -511, 625, -1688, 625, -585, 602, -563, 625, -1656, 647, -1665, 625, -1679, 603, -593, 625, -563, 594, -600, 660, -1646, 625, -1682, 600, -593, 594, -594, 656, -545, 643, -1682, 630, -1651, 599, -1688, 687]
      - delay: 60ms
      - light.turn_off: status_light
# Samsung TV, Samsung
  - platform: template
    name: TV OK/Enter
#    icon: mdi:check
    icon: mdi:keyboard-return
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_samsung:
          data: 0xE0E016E9
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: TV On/Off
    icon: mdi:power
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_samsung:
          data: 0xE0E040BF
      - delay: 60ms
      - light.turn_off: status_light
#  - platform: template
#    name: TV Source
#    icon: mdi:television
#    on_press:
#      - light.turn_on: status_light
#      - remote_transmitter.transmit_samsung:
#          data: 0xE0E0807F
#      - delay: 60ms
#      - light.turn_off: status_light
  - platform: template
    name: TV Mute
    icon: mdi:volume-mute
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_samsung:
          data: 0xE0E0F00F
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: TV Menu
    icon: mdi:menu
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_samsung:
          data: 0xE0E058A7
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: TV Back
    icon: mdi:undo
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_samsung:
          data: 0xE0E01AE5
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: TV Up
    icon: mdi:arrow-up-bold-outline
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_samsung:
          data: 0xE0E006F9
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: TV Down
    icon: mdi:arrow-down-bold-outline
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_samsung:
          data: 0xE0E08679
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: TV Left
    icon: mdi:arrow-left-bold-outline
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_samsung:
          data: 0xE0E0A659
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: TV Right
    icon: mdi:arrow-right-bold-outline
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_samsung:
          data: 0xE0E046B9
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: TV Exit
    icon: mdi:exit-to-app
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_samsung:
          data: 0xE0E0B44B
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: TV Tools
    icon: mdi:tools
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_samsung:
          data: 0xE0E0D22D
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: TV Info
    icon: mdi:information-variant
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_samsung:
          data: 0xE0E0F807
      - delay: 60ms
      - light.turn_off: status_light
#  - platform: template
#    name: TV Vol+
#    icon: mdi:volume-plus
#    on_press:
#      - light.turn_on: status_light
#      - remote_transmitter.transmit_samsung:
#          data: 0xE0E0E01F
#      - delay: 60ms
#      - light.turn_off: status_light
#  - platform: template
#    name: TV Vol-
#    icon: mdi:volume-minus
#    on_press:
#      - light.turn_on: status_light
#      - remote_transmitter.transmit_samsung:
#          data: 0xE0E0D02F
#      - delay: 60ms
#      - light.turn_off: status_light
#  - platform: template
#    name: TV Channel+
#    icon: mdi:chevron-up
#    on_press:
#      - light.turn_on: status_light
#      - remote_transmitter.transmit_samsung:
#          data: 0xE0E048B7
#      - delay: 60ms
#      - light.turn_off: status_light
#  - platform: template
#    name: TV Channel-
#    icon: mdi:chevron-down
#    on_press:
#      - light.turn_on: status_light
#      - remote_transmitter.transmit_samsung:
#          data: 0xE0E008F7
#      - delay: 60ms
#      - light.turn_off: status_light
#  - platform: template
#    name: TV Guide
#    icon: mdi:television-guide
#    on_press:
#      - light.turn_on: status_light
#      - remote_transmitter.transmit_samsung:
#          data: 0xE0E0F20D
#      - delay: 60ms
#      - light.turn_off: status_light
# PC, Pronto
  - platform: template
  # yellow
    name: Ambilight
    icon: mdi:television-ambient-light
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_pronto:
          data: "0000 0073 0000 0020 0060 0020 0010 0010 0010 0010 0010 0020 0010 0020 0030 0020 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0010 0010 0020 0020 0010 0010 0010 0010 0020 0020 0020 0010 0010 0010 0010 0020 0020 09DD"
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: Kodi Clean Library
    icon: mdi:kodi
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_raw:
          carrier_frequency: 38kHz
          code: [2516, -921, 406, -468, 438, -437, 406, -937, 406, -906, 1315, -903, 406, -500, 406, -468, 406, -469, 406, -500, 406, -469, 406, -500, 405, -469, 406, -467, 408, -468, 438, -468, 844, -468, 437, -469, 406, -469, 406, -923, 388, -500, 407, -468, 409, -466, 437, -469, 843, -937, 406, -469, 406, -468, 844, -937, 437, -454, 858, -906, 406, -468, 406, -500, 406]
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
  # Guide
    name: Kodi Refresh Library
    icon: mdi:refresh
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_pronto:
          data: "0000 0073 0000 0021 0060 0020 0010 0010 0010 0010 0010 0020 0010 0020 0030 0020 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0010 0010 0020 0020 0010 0010 0010 0010 0010 0010 0020 0020 0010 0010 0020 0010 0010 0020 0010 09CD"
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: Kodi Pause
    icon: mdi:pause
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_pronto:
          data: "0000 0073 0000 0022 0060 0020 0010 0010 0010 0010 0010 0020 0010 0020 0030 0020 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0020 0020 0010 0010 0010 0010 0010 0010 0010 0010 0020 0010 0010 0020 0010 0010 0010 0010 0010 09BD"
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: Kodi Back
    icon: mdi:undo
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_pronto:
          data: "0000 0073 0000 0021 0060 0020 0010 0010 0010 0010 0010 0020 0010 0020 0030 0020 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0020 0020 0010 0010 0010 0010 0010 0010 0020 0020 0010 0010 0010 0010 0020 0010 0010 09CF"
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: Kodi OK/Enter
#    icon: mdi:check
    icon: mdi:keyboard-return
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_pronto:
          data: "0000 0071 0000 0020 0061 0021 0010 0011 0010 0011 0010 0021 0010 0021 0030 0021 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0020 0011 0010 0011 0010 0011 0010 0021 0010 0011 0020 0011 0010 0021 0020 0021 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0020 0021 0020 0011 0010 09EE"
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: Kodi Play
    icon: mdi:play
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_pronto:
          data: "0000 0073 0000 0021 0060 0020 0010 0010 0010 0010 0010 0020 0010 0020 0030 0020 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0010 0010 0020 0020 0010 0010 0010 0010 0010 0010 0010 0010 0020 0020 0020 0010 0010 0020 0010 09BC"
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: Kodi Up
    icon: mdi:arrow-up-bold-outline
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_pronto:
          data: "0000 0072 0000 0021 0061 0021 0010 0011 0010 0011 0010 0021 0010 0021 0030 0021 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0020 0011 0010 0011 0010 0011 0010 0021 0010 0011 0020 0011 0010 0021 0020 0021 0010 0011 0010 0011 0010 0011 0010 0011 0020 0011 0010 0011 0010 0011 0010 0021 0010 09D2"
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: Kodi Down
    icon: mdi:arrow-down-bold-outline
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_pronto:
          data: "0000 0072 0000 0021 0061 0021 0010 0011 0010 0011 0010 0021 0010 0021 0030 0021 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0020 0011 0010 0011 0010 0011 0010 0021 0010 0011 0020 0011 0010 0021 0020 0021 0010 0011 0010 0011 0010 0011 0010 0011 0020 0011 0010 0011 0010 0011 0010 0011 0010 09DE"
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: Kodi Left
    icon: mdi:arrow-left-bold-outline
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_pronto:
          data: "0000 0072 0000 0021 0061 0021 0010 0011 0010 0011 0010 0021 0010 0021 0030 0021 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0020 0011 0010 0011 0010 0011 0010 0021 0010 0011 0020 0011 0010 0021 0020 0021 0010 0011 0010 0011 0010 0011 0020 0021 0010 0011 0010 0011 0010 0011 0010 0011 0010 09CD"
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: Kodi Right
    icon: mdi:arrow-right-bold-outline
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_pronto:
          data: "0000 0072 0000 0020 0061 0021 0010 0011 0010 0011 0010 0021 0010 0021 0030 0021 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0010 0011 0020 0011 0010 0011 0010 0011 0010 0011 0010 0021 0020 0011 0010 0021 0020 0021 0010 0011 0010 0011 0010 0011 0020 0021 0010 0011 0010 0011 0010 0011 0020 09E3"
      - delay: 60ms
      - light.turn_off: status_light
  - platform: template
    name: Kodi Now Playing
    icon: mdi:flip-to-back
    on_press:
      - light.turn_on: status_light
      - remote_transmitter.transmit_pronto:
          data: "0000 0073 0000 0021 0060 0020 0010 0010 0010 0010 0010 0020 0010 0020 0030 0020 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0020 0010 0010 0010 0010 0010 0010 0010 0010 0020 0020 0010 0010 0010 0010 0010 0010 0020 0010 0010 0020 0010 0010 0020 0010 0010 09DD"
      - delay: 60ms
      - light.turn_off: status_light
1 Like

I’ve smoked a couple of ESP boards because I accidentally grabbed a 5V UART instead of a 3.3V UART. I’ve since hidden the 5V UARTs so that I don’t make that mistake again.

1 Like

Just in case anyone who might have copied/pasted my yaml from above has trouble getting it to compile after updating to todays version of ephome (2024.5.0), it just needs

tolerance: 25

either commenting out (it defaults to 25% anyway) or changing to

tolerance: 25%

I’ve also found that I had to remove a couple of the remote ‘buttons’ I had defined, to get it to reconnect to the API reliably after updating it.
I’m pretty sure I was right up against some sort of size/memory limitation before, and something about the update seems to mean that limitation’s a bit smaller afterwards.

Hello i’ve been reading all the post and i’ve seen that many of you succeed to flash a Tuya IR Blaster and work with a CB3S.
I’m just working on that and could manage to make it work as a receiver but i’m having serious troubles to make the irblaster work as a tramsmitter.

The thing is when I configure the “remote_transmitter”
remote_transmitter:

  pin:
    number: P26
    inverted: true
  carrier_duty_percent: 50%

That is enough to raise a lot the temperature of my board and also crash. I could send only one ir command sometimes but it is really unstable and I don’t know what is happening.

I alse inpected the code and I saw that here is the problem

void RemoteTransmitterComponent::setup() {
  this->pin_->setup();
  this->pin_->digital_write(false); // <<--- HERE
}

Could you please help me? Did anyone experienced something similar?

Does it definitely need to be inverted?
If that’s the wrong way round, I could imagine the IR LED(s) being on the majority of the time instead of for brief flashes.
You might be able to check this using the camera on a phone, they’ll usually ‘see’ IR OK.

If that doesn’t do you any good, which bit of the board’s getting hot & how are any IR LEDs connected?