Mira alrededor de tu living y cuenta los aparatos que solo obedecen a su propio control remoto: el ventilador del verano, el amplificador que compraste el 2011, el aire acondicionado del dormitorio, el televisor de la pieza de atrás. Ninguno tiene WiFi, ninguno aparece en una app, y reemplazarlos por versiones "smart" cuesta más que todo el resto de tu domótica junta.

La buena noticia es que no hace falta reemplazarlos. Un emisor de infrarrojo conectado a Home Assistant aprende los códigos de esos controles y los repite cuando tú se lo pidas. desde el dashboard, desde una automatización, o cuando un sensor de temperatura cruce un umbral. Todo local: sin cuenta de fabricante, sin nube, sin una app intermediaria entre tú y el ventilador.

Este artículo recorre el camino completo, incluyendo el punto exacto donde la mayoría abandona: el momento en que el dispositivo aparece correctamente vinculado en Home Assistant y, aun así, no tiene ninguna función de infrarrojo. Ese problema tiene solución y son doce líneas de código.

Lo primero: el infrarrojo es una calle de una sola vía

Antes de comprar nada, hay un concepto que explica todas las decisiones que vienen después.

El infrarrojo no tiene canal de retorno. El emisor lanza un pulso de luz al ambiente y después de lanzarlo sabe exactamente lo mismo que antes: nada. No sabe si el ventilador lo recibió, no sabe si el televisor quedó encendido, no sabe si había algo bloqueando el camino.

Cada sistema maneja esa ignorancia a su manera. Las apps de fabricante llevan la cuenta internamente y te muestran un estado que en realidad están suponiendo: si mandaste "encender", asumen que está encendido. Home Assistant es más honesto y deja el hueco a la vista. Al principio es incómodo, pero evita algo peor: un dashboard que afirma con total seguridad algo que es falso.

Esto tiene tres consecuencias prácticas que vale la pena tener claras desde ya:

  1. Línea de vista obligatoria. El infrarrojo no dobla esquinas ni atraviesa la puerta de un mueble. Cuando un equipo no responde, en la mayoría de los casos el problema no es el código sino dónde pusiste el emisor.
  2. Los comandos de "toggle" son peligrosos en automatizaciones. Muchos controles usan un solo botón que alterna encendido/apagado. Si tu automatización lo dispara sin saber el estado real, tiene un 50% de probabilidad de hacer lo contrario de lo que querías. Cuando el control tenga botones separados de encendido y apagado, aprende esos y no el de alternar.
  3. Si necesitas saber de verdad si el equipo quedó andando, necesitas otra cosa. La solución práctica es un enchufe inteligente con medición de consumo delante del aparato: si consume más de unos pocos watts, está funcionando. Eso te devuelve el estado real que el infrarrojo nunca te va a dar.

Elegir el camino: tres opciones y cuál te conviene

No hay una sola forma de meter infrarrojo en Home Assistant. Hay tres, y elegir mal cuesta plata y tiempo. Este es el árbol de decisión:

Camino 1. La integración nativa (desde Home Assistant 2026.4). Desde abril de 2026 Home Assistant trae soporte de infrarrojo de fábrica. La integración infrared es una pieza de base que otras integraciones usan; no se agrega directamente. Conecta dos cosas: un adaptador IR como hardware (por ejemplo vía ESPHome o un SMLIGHT SLZB) y una integración específica del equipo de destino, como LG Infrared o Samsung Infrared. Los emisores y receptores quedan visibles en Ajustes → Infrarrojo.

Es la opción más elegante: obtienes entidades reales en vez de botones armados a mano, y tu televisor aparece como un dispositivo y no como una colección de códigos. El problema es la cobertura: la lista de integraciones de equipos es corta, y para un amplificador del 2011 o un ventilador sin marca no va a existir. Revisa primero si tu equipo está en la lista. Si está, toma este camino y salta el resto del artículo.

Camino 2. Un blaster IR Zigbee. Un emisor pequeño que entra a tu red Zigbee existente y al que le enseñas los códigos de tus controles antiguos. Sin WiFi, sin cuenta de fabricante, sin nube. Funciona con cualquier equipo infrarrojo, porque los códigos los aprendes directamente del control original. El precio a pagar es trabajo manual: no hay una base de datos donde eliges tu marca. Cada botón que necesites lo aprendes uno por uno. Para un ventilador son tres; para un amplificador, tal vez cinco. Recién con equipos de mucha operación se vuelve tedioso. Este es el camino que desarrolla este artículo.

Camino 3. El hub del fabricante. Un gateway propietario que configura los equipos en su app y después los pasa a Home Assistant por un puente Matter. La comodidad al configurar es real: estos sistemas tienen bases de datos con miles de marcas, eliges tu modelo y tienes el control listo. Pero hay tres limitaciones duras que conviene conocer antes de gastar:

  • Matter no tiene un tipo de dispositivo "equipo infrarrojo". Tus equipos IR llegan a Home Assistant como un encendido/apagado genérico y, en el mejor de los casos, se representan como enchufe, ampolleta o ventilador. El volumen, el cambio de canal y la selección de entrada se quedan en la app del fabricante. Es un límite de la especificación de Matter, no de un gateway en particular.
  • No puedes tener las dos cosas a la vez. Un dispositivo Zigbee vive en exactamente una red. Apenas vinculas el blaster al gateway del fabricante, desaparece de tu red Zigbee de Home Assistant, con entidades y todo. Para volver atrás tienes que resetearlo en el gateway y vincularlo de nuevo.
  • La integración oficial de Tuya en Home Assistant no soporta blasters IR. Quien lo intente sin Matter termina dando vueltas por escenas de la app disparadas desde automatizaciones.

En la prueba del autor original, además, el gateway (unos 70 euros) no logró configurarse por WiFi, funcionó de manera intermitente por cable y su app estaba mal traducida. No es un veredicto definitivo sobre esos productos, pero fue el punto donde el camino local ganó por goleada.

El hardware: qué comprar y qué evitar

Lo que necesitas es un blaster IR Zigbee. Cuestan entre 13 y 30 euros, se venden bajo nombres de marca que cambian todo el tiempo y casi todos usan el mismo chipset: se identifican como modelo TS1201 y usan dos canales Zigbee propietarios para el infrarrojo. El nombre en la caja da bastante lo mismo; la tecnología detrás es la misma.

Tres criterios de compra, en orden de importancia:

  1. Que diga TS1201. Es la identificación del modelo y es lo que garantiza que el resto de esta guía aplique.
  2. Que diga Zigbee y no WiFi. Son productos que se parecen mucho en las fotos y funcionan de forma completamente distinta.
  3. Con fuente o con batería, da lo mismo. La preocupación obvia con un dispositivo Zigbee a batería es que duerma y se pierda los comandos. En las mediciones del artículo original eso no ocurrió; los números están más abajo.

Además necesitas un coordinador Zigbee funcionando con ZHA o Zigbee2MQTT. Esta guía va por el camino de ZHA.

Blaster IR Zigbee junto a su caja sobre una mesa clara

Si tu red Zigbee no llega hasta donde está el equipo, existe la alternativa por WiFi (un Broadlink RM4 Mini hace lo mismo), pero necesita su propia integración y no es parte de esta guía. Más abajo verás una alternativa mejor y más barata basada en ESP32.

Vincular el blaster… y el problema que aparece justo después

Esta parte es la aburrida. Ve a Ajustes → Dispositivos y servicios → Zigbee Home Automation → Añadir dispositivo y pon el blaster en modo de vinculación, normalmente manteniendo apretado un botón pequeño unos segundos. A los pocos segundos aparece.

En el equipo de prueba quedó registrado como _TZ3290_qazgdsae TS1201 y trajo cinco entidades: un interruptor, el nivel de batería, la intensidad de señal, la calidad del enlace y una actualización de firmware.

De infrarrojo, nada.

Página del dispositivo recién vinculado en Home Assistant, mostrando cinco entidades estándar

Ningún botón para aprender códigos, ningún campo donde pegarlos, ningún control remoto. Y el único interruptor que trajo el dispositivo simplemente no hace nada.

La conclusión intuitiva sería: "entonces sí necesita el hub del fabricante, tal como dice la página del producto". Esa conclusión es falsa, y se puede demostrar en dos minutos.

Diagnóstico: ¿están los canales de infrarrojo?

Todo dispositivo Zigbee declara al vincularse qué grupos de funciones maneja. en la jerga de Zigbee se llaman clusters. Esa lista se puede revisar.

Ve a la página del dispositivo, abre el menú de tres puntos arriba a la derecha y elige Descargar diagnóstico. En el archivo JSON busca input_clusters. En el caso de prueba decía:

JSON
"input_clusters": ["0x0000","0x0001","0x0003","0x0004","0x0005","0x0006","0xed00","0xe004"]

Los dos últimos son los que importan: 0xE004 y 0xED00 son los canales de infrarrojo. O sea que el dispositivo sí sabe hacer infrarrojo; Home Assistant simplemente no está usando esos canales.

Unas líneas más arriba, en el mismo archivo, está la causa:

JSON
"quirk_applied": false,
"quirk_class": "zigpy.device.Device"

Qué es un quirk y por qué falta el tuyo

Muchos dispositivos Zigbee no siguen el estándar al pie de la letra, o traen funciones que el estándar directamente no contempla. emitir infrarrojo, por ejemplo. Para esos casos existen los quirks: pequeños módulos de Python que le explican a Home Assistant cómo tratar a un dispositivo determinado. Viven en el proyecto ZHA Device Handlers y vienen incluidos en cada versión de Home Assistant.

Para este blaster el quirk ya existe. Lo que pasa es que el quirk enumera las identificaciones de fabricante de las que se hace cargo, y la del equipo de prueba no estaba en esa lista.

Esto ocurre todo el tiempo con variantes recién salidas al mercado: misma tecnología, identificación nueva, nadie la ha agregado todavía. El resultado es exactamente lo que se ve en pantalla: Home Assistant reconoce el dispositivo, crea las entidades estándar y abandona todo lo que no sabe clasificar. Lo peor es que no da ninguna señal de que eso esté pasando.

Cómo encontrar tu identificación: está en la página del dispositivo, justo debajo del nombre del modelo, con la forma _TZ3290_…. Anótala, la vas a necesitar en un minuto.

La solución: un quirk propio de doce líneas

Home Assistant puede cargar quirks propios además de los que trae incluidos. No hace falta copiar ni modificar el quirk existente: basta con heredarlo y agregarle tu identificación.

Crea, con el editor de archivos o por SSH, una carpeta custom_zha_quirks dentro de tu directorio de configuración, y adentro un archivo ir-blaster.py:

Python
"""Quirk propio para un blaster IR TS1201 con ID de fabricante aún desconocida."""

from zhaquirks.const import MODELS_INFO
from zhaquirks.tuya.ts1201 import ZosungIRBlaster


class MeinIRBlaster(ZosungIRBlaster):
    """Hereda todo del quirk existente, solo agrega la ID de fabricante."""

    signature = {
        **ZosungIRBlaster.signature,
        MODELS_INFO: [("_TZ3290_qazgdsae", "TS1201")],
    }

Editor de archivos de Home Assistant con el archivo del quirk personalizado abierto

Cambia _TZ3290_qazgdsae por tu propia identificación. Todo lo demás. los dos canales de infrarrojo, el aprendizaje, el envío. lo hereda la clase del quirk original.

Después hay que decirle a Home Assistant dónde buscar. En configuration.yaml:

YAML
zha:
  custom_quirks_path: /config/custom_zha_quirks/

Archivo configuration.yaml con la línea custom_quirks_path bajo zha

Acá tropieza mucha gente, así que va explícito: el editor de archivos muestra ese directorio como /homeassistant/, mientras que Home Assistant internamente lo conoce como /config/. Es la misma carpeta. O sea que el archivo queda guardado en /homeassistant/custom_zha_quirks/ir-blaster.py, pero en la configuración tienes que escribir /config/custom_zha_quirks/. Si pones una ruta que Home Assistant no encuentra, directamente no arranca.

Luego, reinicia Home Assistant por completo. Recargar la configuración no sirve: los quirks se cargan cuando arranca ZHA.

La verificación: una sola línea

Después del reinicio, vuelve a la página del dispositivo y despliega la sección Zigbee info, que viene cerrada por defecto. Si todo salió bien, aparece una línea que antes no estaba:

Código
Quirk: ir-blaster:MeinIRBlaster

Página del dispositivo en ZHA mostrando la línea que confirma el quirk activo

Dos cosas que confunden acá. La primera es que esta línea solo aparece cuando hay un quirk activo: antes no dice "sin quirk", no dice nada. Por eso la depuración es tan ingrata. lo que falta es invisible. La segunda es que en algunos idiomas de la interfaz la palabra "Quirk" viene traducida (en alemán aparece como "Eigenart"), así que si buscas el término literal puede que no lo encuentres.

Y ojo: las entidades siguen sin cambiar. No aparece ningún botón nuevo ni un control remoto. Eso es correcto: el quirk se apropia de los canales de infrarrojo, pero la interfaz de operación la vas a construir tú en la siguiente sección.

Y después: repórtalo

Si tu dispositivo es técnicamente idéntico y lo único que falta es la identificación, eso no es un parche personal: es un hueco en el proyecto, y se puede cerrar. Enviar esa identificación como pull request al proyecto ZHA Device Handlers hace que el dispositivo funcione para todo el mundo, sin ningún paso extra, desde la siguiente versión de Home Assistant. El esfuerzo es una línea de código más el archivo de diagnóstico que ya descargaste. Y si no te sientes cómodo con eso, en el proyecto también se puede abrir simplemente un ticket pidiendo el soporte del dispositivo.

Aprender los códigos y ponerlos en botones

Al final de esta sección vas a tener un botón en tu dashboard que enciende un aparato que jamás en su vida supo de la existencia de Home Assistant.

Antes de empezar: qué YAML va dónde

En esta parte aparecen tres bloques de YAML y van en tres editores distintos. Confundirlos produce mensajes de error que parecen problemas de sintaxis pero no lo son.

Si empieza con Va en Para qué
action: Herramientas para desarrolladores → Acciones (modo YAML) Cambiar el nivel de registro, activar el modo aprendizaje
alias: Editor de scripts (⋮ → Editar en YAML) El script de envío
type: button Dashboard → Añadir tarjeta → Manual El botón

El error típico es pegar el YAML del script en las herramientas de desarrollador. Esas esperan una llamada a una acción, empujan todas las claves desconocidas dentro de data y devuelven algo como Message malformed: extra keys not allowed @ data['icon']. Eso no significa "tu YAML está roto", significa "el YAML está en la ventana equivocada".

Un detalle más que ahorra tiempo: pon siempre el código aprendido entre comillas. Tiene varios cientos de caracteres e incluye símbolos como +, / y =; entre comillas eso no molesta, sin comillas puede fallar según el código.

Paso 1: Subir el nivel de registro (sin esto no ves nada)

Este es el paso menos intuitivo de toda la guía, y por eso va primero: el código aprendido no aparece en ninguna parte de la interfaz de Home Assistant. No hay campo, no hay entidad, no hay diálogo. El código existe únicamente en un mensaje del registro, y en nivel INFO. mientras que ZHA por defecto solo registra WARNING y peor.

Sin este paso vas a aprender un código correctamente y no lo vas a ver nunca, y todo se va a ver como si el aprendizaje hubiera fallado.

Ve a Herramientas para desarrolladores → Acciones, cambia arriba a la derecha al modo YAML y ejecuta esto:

YAML
action: logger.set_level
data:
  zhaquirks.tuya.ts1201: debug

Paso 2: Activar el modo aprendizaje

Sigue en Herramientas para desarrolladores → Acciones, en modo YAML. La dirección IEEE de tu blaster está en su página de dispositivo, bajo "Zigbee":

YAML
action: zha.issue_zigbee_cluster_command
data:
  ieee: "EURE-IEEE-ADRESSE"
  endpoint_id: 1
  cluster_id: 57348
  cluster_type: in
  command: 1
  command_type: server
  params:
    on_off: true

Reemplaza EURE-IEEE-ADRESSE por la dirección IEEE de tu propio dispositivo.

Herramientas para desarrolladores de Home Assistant con el comando YAML para iniciar el modo aprendizaje

Para que los números no parezcan magia: 57348 es el cluster 0xE004 escrito en decimal, o sea el canal de control del blaster. command: 1 significa "aprende" y command: 2 significa "envía". Con ese vocabulario te alcanza para todo lo que viene.

Paso 3: Apretar el botón

Ahora tienes una ventana de tiempo. Apunta el control remoto antiguo de frente a la cara delantera del blaster, a unos 10 a 20 centímetros, y aprieta la tecla que quieres aprender una vez, durante alrededor de un segundo. En la mayoría de los blasters un LED confirma la recepción.

Paso 4: Pescar el código del registro

Ve a Ajustes → Sistema → Registros y pulsa "Cargar registro completo". Busca ts1201. Si el aprendizaje funcionó, vas a ver una secuencia como esta:

Código
Received IR frame 0x00
Received IR frame 0x03 … position: 0
Received IR frame 0x03 … position: 55
Received IR frame 0x03 … position: 110

IR message completely received
IR message really totally received: HQwL5QOGAdMACwdHAhARRwLlA2sDRw…
Stopping learning mode on device

Registro de Home Assistant mostrando el código infrarrojo aprendido

La penúltima línea es tu código: la cadena larga después de los dos puntos. Cópiala completa, son varios cientos de caracteres.

Y fíjate en la última línea: el modo aprendizaje se apaga solo después de una recepción exitosa. Para la tecla siguiente hay que volver a activarlo.

Si el registro queda mudo, no llegó ninguna señal. Prueba de nuevo con menos distancia y más de frente.

Paso 5: Poner el código detrás de un script

Acá la cadena de caracteres se convierte en algo operable. Crea un script nuevo en Ajustes → Automatizaciones y escenas → Scripts, cambia con el menú de tres puntos a "Editar en YAML" y pega esto. El script recibe el código como parámetro al ser llamado, así que lo necesitas una sola vez, sin importar cuántas teclas aprendas:

YAML
alias: IR-Code senden
icon: mdi:remote
mode: queued
max: 10
fields:
  code:
    name: IR-Code
    description: Der angelernte Code aus dem Protokoll
    required: true
    selector:
      text:
sequence:
  - action: zha.issue_zigbee_cluster_command
    data:
      ieee: "EURE-IEEE-ADRESSE"
      endpoint_id: 1
      cluster_id: 57348
      cluster_type: in
      command: 2
      command_type: server
      params:
        code: "{{ code }}"

El alias, el name y la description son texto libre: cámbialos al español si quieres (por ejemplo alias: Enviar codigo IR), pero recuerda que el nombre del script determina su entity_id, y ese es el que vas a usar en el paso siguiente.

mode: queued es importante acá. Un envío demora alrededor de un segundo y medio. Si aprietas dos botones seguidos, en el modo por defecto (single) la segunda llamada se descartaría sin decir nada. En cola, en cambio, se procesan ordenadamente una tras otra.

Paso 6: Al dashboard

Ve a tu dashboard, pulsa el lápiz de arriba a la derecha, luego Añadir tarjeta y, al final de la lista, Manual. El código va directo en la tarjeta, así cada tecla tiene su propio botón sin que tengas que crear más scripts:

YAML
type: button
name: Ventilator
icon: mdi:fan
show_state: false
tap_action:
  action: perform-action
  perform_action: script.ir_code_senden
  data:
    code: "EUER-ANGELERNTER-CODE"

Tarjeta de botón en el dashboard: a la izquierda el YAML, a la derecha la vista previa

Cambia name por el nombre que quieras, code por tu código aprendido, y ajusta perform_action al entity_id real de tu script. Varios botones de estos dentro de una tarjeta de pila horizontal y ya tienes un control remoto completo en el dashboard.

Paso 7: Volver a bajar el nivel de registro

No lo olvides, o tu registro se va a llenar de mensajes de depuración:

YAML
action: logger.set_level
data:
  zhaquirks.tuya.ts1201: warning

Lo que aprendimos midiendo (y no leyendo la caja)

Cinco observaciones prácticas del uso real que valen más que cualquier ficha técnica:

  • Cuenta con un segundo y medio de retardo. Entre que aprietas el botón y el pulso sale al aire pasa tiempo: 1,54 segundos medidos. Para un ventilador es imperceptible; para algo que debe sentirse como un interruptor de luz, sería demasiado lento.
  • El blaster a batería no se pierde nada. La duda razonable con un dispositivo Zigbee alimentado por batería es si responde bien saliendo del reposo. Medido tras 33 minutos sin ningún contacto: 1,54 segundos, exactamente el mismo valor que en operación continua. El modo reposo no cuesta nada.
  • No le creas ciegamente al indicador de batería. El equipo de prueba reportaba una tensión de celda de 1,4 V, cosa físicamente imposible en una batería de litio de 3,7 V. Ese valor no puede ser la tensión real del pack, y el porcentaje derivado de él es igual de dudoso. Tómalo como referencia gruesa, no como medición.
  • Home Assistant no sabe si funcionó. El botón envía y reporta éxito apenas el blaster confirma que emitió el pulso. Si el aparato del otro lado entendió o no, nadie lo sabe. Para saberlo de verdad, el enchufe con medición de consumo del que hablábamos al principio.
  • Con Zigbee2MQTT es más cómodo. Quien use Zigbee2MQTT en vez de ZHA obtiene, para el mismo dispositivo, controles listos para aprender y enviar, sin el rodeo por el registro. El resto de la guía. scripts y botones del dashboard. queda idéntico.

Variantes y mejoras

1. Un receptor IR para clonar controles sin depender del blaster. Un receptor VS1838B (tres pines, cuesta muy poco) conectado a un ESP32 o a un Arduino te permite decodificar cualquier control remoto y ver el protocolo y el código en el monitor serial: NEC, RC5, Sony SIRC, lo que sea. Es una herramienta de diagnóstico enormemente útil, porque cuando un equipo no responde te deja distinguir dos casos que desde afuera se ven igual: que el código esté mal aprendido, o que el emisor no le esté llegando. Además, una vez que conoces el protocolo y el valor exacto, puedes emitirlo desde cualquier microcontrolador sin necesidad de la cadena larga en base64 del blaster Zigbee.

2. Cierra el lazo con medición de consumo. Ya lo mencionamos como concepto; vale la pena verlo como proyecto. Pon un enchufe inteligente con medición delante del ventilador y crea en Home Assistant un sensor de plantilla que reporte "encendido" cuando el consumo supere, digamos, 5 W. Con eso ya tienes un estado real y puedes construir una automatización que verifique: manda el código, espera tres segundos, revisa el consumo, y si no cambió, reintenta una vez. Eso convierte un sistema que dispara a ciegas en uno que confirma.

3. Un mando físico en la pared. Con los códigos ya en scripts, cualquier botón Zigbee de cuatro teclas montado en la pared puede dispararlos. Es la mejor forma de que el resto de la casa use el sistema: nadie quiere sacar el teléfono, abrir una app y buscar un dashboard para prender el ventilador.

Personalización para Chile

Acá viene la parte que cambia el proyecto: el blaster Zigbee TS1201 no es un producto fácil de conseguir en Chile, y si tienes que importarlo el ahorro frente a un equipo nuevo se achica bastante. La alternativa local es mejor, más barata y además te enseña más.

La ruta ESP32 + ESPHome

Un ESP32 con un módulo emisor infrarrojo y un receptor VS1838B hace exactamente lo mismo que el blaster Zigbee, se integra a Home Assistant de forma nativa vía ESPHome, y sale por una fracción del precio. Ventajas concretas sobre el camino Zigbee:

  • No necesitas quirks ni depurar clusters. ESPHome expone los botones directamente como entidades de Home Assistant. Todo el capítulo del quirk simplemente no existe en esta ruta.
  • El código no se esconde en el registro. El receptor IR imprime el protocolo y el valor decodificado en los registros de ESPHome, en formato legible (NEC con dirección y comando, por ejemplo), no como una cadena opaca de cientos de caracteres.
  • Aprendes el protocolo, no una cadena. Eso significa que puedes generar variantes del comando sin volver a aprenderlas.

Una configuración base de ESPHome para empezar:

YAML
esphome:
  name: blaster-ir

esp32:
  board: esp32dev

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

remote_transmitter:
  pin: GPIO4
  carrier_duty_percent: 50%

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

button:
  - platform: template
    name: "Ventilador encender"
    on_press:
      - remote_transmitter.transmit_nec:
          address: 0x00FF
          command: 0xE01F

El flujo de trabajo es: cargas esta configuración con dump: all activo, apuntas el control remoto al receptor, aprietas la tecla y lees en los registros de ESPHome el protocolo y los valores. Después reemplazas address y command por los tuyos y creas un bloque button por cada tecla. Si tu control no usa NEC, ESPHome tiene acciones equivalentes (transmit_sony, transmit_rc5, transmit_raw, entre otras). el registro te dice cuál te tocó.

Un detalle de montaje que hace la diferencia: el LED emisor infrarrojo tiene alcance corto si lo conectas directo a un pin del ESP32, porque un GPIO entrega poca corriente. Para cubrir una pieza entera, aliméntalo a través de un transistor (un 2N2222 o un BC547 sirven) con una resistencia de base de 1 kΩ, tomando la corriente desde los 5 V. Con eso pasas de un alcance de un metro a cubrir el living completo, incluso con rebote en las paredes.

Componentes en el catálogo de MechatronicStore

  • Placa ESP32 DevKit. el cerebro del emisor. Cualquier variante con WiFi sirve.
  • Módulo emisor infrarrojo (LED IR 940 nm). el que emite los pulsos. Si compras el LED suelto en vez del módulo, necesitas la resistencia limitadora.
  • Receptor infrarrojo VS1838B. el que decodifica los controles remotos. Es el que convierte esto en una herramienta de diagnóstico y no solo en un emisor a ciegas.
  • Transistor 2N2222 y resistencia 1 kΩ. para la etapa de potencia del LED emisor descrita arriba.
  • Protoboard 830 puntos y jumpers macho hembra 20 cm. para el prototipo.
  • Fuente 5V 2A. el ESP32 con WiFi activo tiene picos de consumo; alimentarlo desde un cargador de teléfono de mala calidad es la causa más común de reinicios aleatorios.
  • Raspberry Pi 5. si todavía no tienes un equipo corriendo Home Assistant, es la plataforma más común para hacerlo.

Dos componentes del artículo original no tienen equivalente en el catálogo local y los dejamos anotados con honestidad: el blaster IR Zigbee TS1201 y el coordinador Zigbee USB. Si ya tienes una red Zigbee andando, el camino del artículo aplica tal cual; si estás partiendo de cero, la ruta ESP32 te evita ambas compras.

Nota: los precios y la disponibilidad de cada componente se confirman en su ficha en la tienda, que es donde están siempre al día.

Recursos

Versión chilena, inspirada en el artículo de raspberry.tips, con una ruta alternativa basada en ESP32 y componentes en stock local en MechatronicStore.