Vous avez une vieille télécommande de téléviseur, de climatiseur ou d'éclairage infrarouge qui traîne dans un tiroir ? Avec un ESP32, un récepteur IR à deux euros et ESPHome, vous pouvez en faire un déclencheur d'automation Home Assistant à part entière. Home Assistant 2026.6, sorti le 3 juin 2026, améliore significativement cette intégration : les pressions de bouton d'une télécommande physique sont désormais exposées comme entités event directement utilisables dans l'éditeur d'automatisations, sans contournement YAML complexe. Ce guide couvre le montage matériel, la configuration ESPHome, la capture des codes IR et la création des automations HA.
Ce que Home Assistant 2026.6 change pour la télécommande IR
ESPHome supporte la réception infrarouge depuis plusieurs années via le composant remote_receiver. Il était déjà possible de capturer les codes d'une télécommande et de déclencher des actions dans HA — mais le chemin était tortueux : les codes reçus devaient transiter par des sensors, des states templates ou des appels de service MQTT personnalisés pour devenir exploitables dans les automatisations. Plusieurs couches de configuration pour un résultat qui se comportait comme une entité native.
Home Assistant 2026.6 rationalise ce pipeline. Le composant remote_receiver d'ESPHome s'intègre maintenant plus directement à l'infrastructure d'événements HA : chaque appui sur un bouton reconnu peut être exposé comme déclencheur natif dans l'éditeur d'automatisations, sans passer par des templates intermédiaires. Le support bidirectionnel est aussi amélioré : si vous combinez récepteur et émetteur IR sur le même ESP32, HA peut à la fois détecter les commandes envoyées depuis votre télécommande physique et piloter lui-même l'appareil — synchronisation d'état comprise.
L'angle pratique de ce guide : transformer une télécommande existante — celle de votre TV, de votre clim, d'un ancien variateur — en déclencheur polyvalent pour vos scènes, minuteries ou automations, sans modifier l'appareil qu'elle commande.
Matériel nécessaire
Option 1 — ESP32 avec composants discrets
C'est le montage le plus flexible et le moins coûteux :
- ESP32 dev board (type WROOM-32 ou S3, 5-8€) — n'importe quelle carte ESP32 suffit
- Récepteur IR VS1838B (1-2€ en lot) — petit module 3 pattes, sensible à 38 kHz, la fréquence porteuse standard des télécommandes grand public
- LED IR 940nm + résistance 100Ω (1€) — uniquement si vous souhaitez aussi envoyer des commandes IR depuis HA
- Câbles Dupont ou breadboard pour le câblage
ESP32-C3 Super Mini
RISC-V 160 MHz · 22×18 mm · Wi-Fi 4 + BT 5.0 · USB-C · Compatible ESPHome
Câblage du VS1838B sur l'ESP32 :
- Broche VCC → 3.3V
- Broche GND → GND
- Broche OUT → GPIO34 (entrée seule sur ESP32, idéale pour un signal entrant)
Le VS1838B produit un niveau bas quand il reçoit une impulsion IR — c'est un signal inversé par rapport à la logique active-high standard. ESPHome gère ça avec le paramètre inverted: true sur la déclaration de la broche, comme vous le verrez dans le YAML ci-dessous.
Option 2 — cartes IR tout-en-un
Il existe des petites cartes IR tout-en-un pour ESP32 XIAO (notamment dans l'écosystème Seeed Studio ou sur les places de marché maker) qui intègrent récepteur et émetteur sur un seul PCB, compatibles avec l'add-on ESPHome. Ces modules simplifient le câblage mais restent niche — le montage VS1838B sur ESP32 standard reste le choix universel et le mieux documenté.
Pour la suite de ce guide, on utilise le montage ESP32 + VS1838B, qui est identique côté YAML.
Configurer le remote_receiver dans ESPHome
Voici la configuration YAML ESPHome de départ. Collez-la dans votre fichier de configuration, en adaptant le nom du device et les secrets WiFi.
esphome:
name: telecommande-ir
esp32:
board: esp32dev
framework:
type: arduino
logger:
api:
encryption:
key: !secret api_key
ota:
- platform: esphome
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
remote_receiver:
pin:
number: GPIO34
inverted: true
dump: all
tolerance: 25%
Deux paramètres importants à comprendre :
dump: all— pendant la phase de capture, ESPHome affiche dans les logs le protocole et les codes de chaque signal IR reçu, quel que soit son format. C'est ce qui permet d'identifier les codes de votre télécommande bouton par bouton.tolerance: 25%— absorbe les légères variations de timing entre deux appuis successifs sur le même bouton. Une valeur entre 20% et 30% convient à la très grande majorité des télécommandes grand public.
Flashez ce firmware via l'interface ESPHome dans HA (Paramètres → Modules complémentaires → ESPHome). Une fois le device en ligne, passez à la capture des codes.
Capturer les codes de votre télécommande
Dans l'interface ESPHome de HA, ouvrez les logs de votre device en temps réel. Pointez votre télécommande vers le récepteur VS1838B et appuyez sur un bouton. Vous verrez apparaître une ligne de ce type selon le protocole de votre appareil :
[21:14:32][D][remote.nec:255]: Received NEC: address=0x04FB, command=0x08F7
ou pour une télécommande Samsung :
[21:14:33][D][remote.samsung32:255]: Received Samsung32: data=0xE0E040BF
Notez le protocole (NEC, Samsung, Sony, LG, RC5, Pronto...) et les valeurs de chaque bouton que vous souhaitez utiliser. NEC est de loin le protocole le plus courant — il couvre la majorité des télécommandes TV et audio japonaises et coréennes.
Si le protocole n'est pas reconnu automatiquement, vous obtiendrez un dump RAW avec les durées d'impulsions :
[D][remote.raw:255]: Received Raw: 9024, -4512, 564, -1692, 564, -564, ...
Le format RAW est utilisable dans ESPHome — la capture est fidèle, mais moins lisible. Préférez un protocole nommé quand c'est possible.
Une fois vos codes capturés pour chaque bouton, désactivez dump: all en supprimant la ligne ou en la remplaçant par dump: [nec, samsung32] pour ne logger que les protocoles que vous utilisez réellement. En production, les logs doivent rester propres.
Créer les entités et les automations dans Home Assistant
Déclarer les boutons comme sensors binaires ESPHome
Ajoutez une section binary_sensor dans votre configuration ESPHome, un bloc par bouton à utiliser. Chaque bloc associe un nom à son code IR :
binary_sensor:
- platform: remote_receiver
name: "TV Power"
nec:
address: 0x04FB
command: 0x08F7
- platform: remote_receiver
name: "TV Volume Plus"
nec:
address: 0x04FB
command: 0x10EF
- platform: remote_receiver
name: "TV Volume Moins"
nec:
address: 0x04FB
command: 0xD02F
Chaque binary_sensor déclaré apparaît automatiquement dans HA comme une entité de type capteur binaire. Son état passe brièvement à on lors de la réception du code correspondant, puis revient à off — le comportement d'un bouton momentané. Avec HA 2026.6, ces entités sont directement disponibles comme déclencheurs dans l'éditeur d'automatisations sans configuration supplémentaire.
Automation HA sur appui de bouton
Dans HA (Paramètres → Automatisations → Créer une automatisation), configurez le déclencheur sur l'état de l'entité ESPHome :
alias: "Télécommande IR — scène cinéma"
trigger:
- platform: state
entity_id: binary_sensor.telecommande_ir_tv_power
to: "on"
action:
- service: scene.turn_on
target:
entity_id: scene.cinema
Le déclencheur peut activer n'importe quelle action HA : allumer ou éteindre une lumière, changer la température du thermostat, lancer un media player, envoyer une notification, déclencher un script. La télécommande infrarouge devient un déclencheur universel pour l'ensemble de votre installation.
Alternative — event HA pour plusieurs boutons
Si vous avez beaucoup de boutons à gérer, une approche plus économe en entités consiste à utiliser on_press dans ESPHome pour publier un event HA unique avec les données du bouton dans le payload :
binary_sensor:
- platform: remote_receiver
name: "TV Power"
nec:
address: 0x04FB
command: 0x08F7
on_press:
then:
- homeassistant.event:
event: esphome.ir_button_pressed
data:
button: tv_power
- platform: remote_receiver
name: "TV Volume Plus"
nec:
address: 0x04FB
command: 0x10EF
on_press:
then:
- homeassistant.event:
event: esphome.ir_button_pressed
data:
button: tv_volume_plus
Dans HA, une seule automation écoute l'event esphome.ir_button_pressed et teste le champ button pour choisir l'action :
trigger:
- platform: event
event_type: esphome.ir_button_pressed
event_data:
button: tv_power
action:
- service: scene.turn_on
target:
entity_id: scene.cinema
Cette architecture est préférable si vous gérez une télécommande avec de nombreuses touches — un seul point d'entrée dans HA, des conditions différentes selon la valeur de event_data.button.
Aller plus loin : envoyer des commandes avec remote_transmitter
La configuration décrite jusqu'ici permet de recevoir les codes IR d'une télécommande physique. L'étape complémentaire : envoyer des commandes IR depuis HA pour piloter vos appareils sans toucher à leur télécommande — téléviseur, climatiseur, éclairage indirect à variateur IR.
Ajoutez une LED IR 940nm sur un GPIO de sortie (GPIO16 par exemple, via une résistance de 100Ω) et déclarez l'émetteur dans ESPHome :
remote_transmitter:
pin: GPIO16
carrier_duty_percent: 50%
Créez ensuite des entités bouton pour envoyer des codes depuis HA :
button:
- platform: template
name: "Allumer TV"
on_press:
- remote_transmitter.transmit_nec:
address: 0x04FB
command: 0x08F7
- platform: template
name: "Éteindre TV"
on_press:
- remote_transmitter.transmit_nec:
address: 0x04FB
command: 0x08F7
Ces boutons apparaissent dans HA et peuvent être appelés depuis n'importe quelle automatisation : allumer la TV au réveil, éteindre tous les appareils IR au coucher, déclencher le mode nuit sur un éclairage à variateur IR. La combinaison récepteur + émetteur sur le même ESP32 réalise la bidirectionnalité complète : HA sait quand vous actionnez l'appareil depuis sa télécommande d'origine (via remote_receiver), et peut lui-même envoyer des commandes (via remote_transmitter).
Climatiseurs IR — composants dédiés
Les climatiseurs IR utilisent des protocoles plus complexes que NEC simple (trames longues encodant température, mode, ventilation simultanément). ESPHome propose un composant climate_ir avec des plates-formes dédiées pour les marques les plus répandues : Daikin, Mitsubishi, Panasonic, Fujitsu General, LG, Toshiba, Hitachi et une dizaine d'autres. Chaque plate-forme expose une entité climate complète dans HA — température, mode chaud/froid/auto, vitesse du ventilateur — entièrement pilotable depuis les automatisations ou le dashboard, sans serveur cloud.
Résumé — ce qu'on peut faire maintenant
Avec un ESP32, un récepteur VS1838B à deux euros et une heure de configuration ESPHome, vous transformez n'importe quelle télécommande infrarouge en déclencheur d'automation Home Assistant. Home Assistant 2026.6 simplifie l'intégration de ces événements IR dans l'éditeur d'automatisations natif : les boutons capturés apparaissent directement comme déclencheurs disponibles, sans template intermédiaire.
Les cas d'usage les plus courants :
- Télécommande TV → allumer une scène d'éclairage en même temps que la TV, couper les lumières à l'extinction
- Télécommande de climatiseur → synchroniser l'état dans HA + piloter depuis le dashboard ou les automations
- Ancienne télécommande de variateur → déclencher n'importe quelle automation HA (réveil, minuterie, mode absent)
- Télécommande universelle récupérée → centraliser le pilotage de tous vos appareils IR dans une seule interface HA
Pour approfondir la logique des automatisations HA, l'article sur les templates Jinja dans Home Assistant couvre les conditions et transformations utiles pour filtrer les événements IR selon leur contexte (heure, état d'autres entités, mode de la maison). Pour un autre use case ESPHome et HA 2026.6, l'article sur le commissioning Matter via proxy Bluetooth ESPHome présente comment utiliser un ESP32 comme passerelle Matter sans matériel supplémentaire.