Home Assistant integration to learn, store and replay remote control signals through the
built-in infrared
integration.
- Output signals become
buttonentities and send learned codes. - Input signals become pulsing
binary_sensorentities when a matching code is received. - Both creates a button and a binary sensor for the same signal — useful when you want to send and detect the same key.
- Flipper-IRDB import lets you search a bundled remote database and import supported signals during device setup.
Every signal (learned manually or imported from IRDB) has a direction:
| Direction | Entities created |
|---|---|
output |
Send button |
input |
Binary sensor (pulses on match) |
both |
Send button and binary sensor |
- Home Assistant 2025.2 or newer
- An ESPHome device (or other hardware) that exposes infrared receiver and emitter entities in Home Assistant
- Home Assistant's built-in Infrared integration — SHYS Remote builds on top of it and does not talk to GPIO hardware directly
IR hardware (LED + TSOP receiver)
↓
ESPHome: remote_receiver / remote_transmitter
↓
ESPHome: infrared (ir_rf_proxy) → HA entities (receiver + emitter)
↓
SHYS Remote → learn, send and match signals per logical device
When you add a device in SHYS Remote, you pick one infrared receiver and one
infrared emitter from Home Assistant. Those entities must exist before setup — usually
from an ESPHome node that uses the
ir_rf_proxy platform.
Below is a minimal excerpt of a working ESP32-S3 configuration (pins and names are examples — adjust them for your board and wiring).
Wiring (example):
| Function | ESPHome component | Example pin |
|---|---|---|
| IR receive | remote_receiver |
GPIO4 (often inverted: true for TSOP modules) |
| IR send | remote_transmitter |
GPIO6 |
Relevant YAML:
# Receive raw IR timings from a demodulating receiver (e.g. 38 kHz)
remote_receiver:
id: ir_rx
pin:
number: GPIO4
inverted: true
dump: raw
# Drive an IR LED (carrier generated in software)
remote_transmitter:
id: ir_tx
pin: GPIO6
carrier_duty_percent: 50%
non_blocking: true
# Expose hardware to Home Assistant as infrared entities (one instance each)
infrared:
- platform: ir_rf_proxy
name: IR Proxy Receiver
receiver_frequency: 38kHz
remote_receiver_id: ir_rx
- platform: ir_rf_proxy
name: IR Proxy Transmitter
remote_transmitter_id: ir_txAfter flashing, add the ESPHome device to Home Assistant (Settings → Devices & services → ESPHome). You should then see infrared receiver/emitter entities (for example under the ESPHome device). Use those when configuring SHYS Remote.
The api action send_raw_ir in a full firmware is optional — useful for manual
tests from ESPHome/API. SHYS Remote sends signals through Home Assistant's
Infrared integration, not through that action.
Documentation:
- ESPHome
remote_receiver - ESPHome
remote_transmitter - ESPHome Infrared /
ir_rf_proxy - Home Assistant Infrared
You also need the usual ESPHome building blocks (esphome:, esp32:, api:, wifi:,
ota:, …) — see the ESPHome getting started guide.
- Add this repository as a custom HACS repository.
- Install SHYS Remote.
- Restart Home Assistant.
Copy custom_components/shys_remote into your Home Assistant
config/custom_components/ directory and restart Home Assistant.
- Open Settings → Devices & services → Add integration.
- Search for SHYS Remote and complete the setup wizard.
- Open the integration card and choose Add device.
- Enter a device name, select your
infraredreceiver and transmitter, and pick how to populate signals (manual or IR database).
Each logical device appears as its own device in Home Assistant. Depending on the chosen direction, signals become buttons, binary sensors, or both.
Choose Import from IR database when adding the device. Search by brand, model or device type and optionally filter by category.
Pick a matching remote from the results. On the next step, choose the signal
direction (output, input or both) and confirm the import.
By default, IRDB imports use output (send buttons). Choose both if you also want binary sensors for automations when the same keys are received.
Leave the signal source on manual, then open Manage device on the integration card and choose Learn signal.
Select output, input or both, submit the form, then press the button on the physical remote within the timeout.
Under Configure on the integration card you can tune matching and input behaviour for all devices:
| Option | Description |
|---|---|
| Input pulse duration | How long input binary sensors stay on after a match |
| Signal match tolerance | Allowed timing deviation when matching received patterns |
| Input debounce | Minimum time between two triggers of the same input signal |
| Service | Description |
|---|---|
shys_remote.learn |
Learn a new signal on a device |
shys_remote.send |
Send a learned output signal |
shys_remote.delete |
Delete a learned signal and its entity |
The device parameter is the device slug shown in the subentry settings
(for example soundbar_buro).
The direction parameter for learn accepts output, input or both.
Example — learn an output signal:
service: shys_remote.learn
data:
device: soundbar_buro
name: power
direction: output
timeout: 15Example — learn a signal for sending and receiving:
service: shys_remote.learn
data:
device: soundbar_buro
name: power
direction: both
timeout: 15The search index is shipped locally in data/irdb_index.json. Individual .ir
files are downloaded from GitHub only when you import a remote.
- Source: Flipper-IRDB
- License: CC0 1.0
- Details: see
data/IRDB_NOTICE.md
- Delete the SHYS Remote integration under Settings → Devices & services.
- Remove
custom_components/shys_remotefrom your configuration directory. - Restart Home Assistant.
Optional: delete .storage/shys_remote if you no longer need learned signals.
Integration code: MIT
Flipper-IRDB data: CC0 1.0
Home-Assistant-Integration zum Anlernen, Speichern und Senden von
Fernbedienungssignalen über die eingebaute infrared-Integration.
- Output: Buttons zum Senden
- Input: Binärsensoren bei erkanntem Signal
- Beides: Button und Binärsensor für dasselbe Signal
- Flipper-IRDB: Lokale Suche und Import beim Gerät anlegen
| Richtung | Angelegte Entitäten |
|---|---|
output |
Sende-Button |
input |
Binärsensor (kurzer Impuls bei Treffer) |
both |
Sende-Button und Binärsensor |
SHYS Remote spricht nicht direkt mit GPIO — es nutzt die Home-Assistant-Integration Infrared. Dafür brauchst du ein Gerät (typisch ESPHome), das Empfänger und Sender als infrared-Entitäten bereitstellt.
Kurz: remote_receiver + remote_transmitter in ESPHome, darüber je eine Instanz
infrared / ir_rf_proxy — dann das
ESPHome-Gerät in HA einbinden. Beim Anlegen eines SHYS-Remote-Geräts wählst du
diese Receiver- und Transmitter-Entitäten aus.
Ausführliches Beispiel mit YAML und Links: Abschnitt ESPHome reference setup oben.
- Integration SHYS Remote hinzufügen
- Unter der Integration Gerät hinzufügen — Name, Receiver, Transmitter und Signalquelle wählen (siehe Screenshot oben)
- Flipper-IRDB: Datenbank durchsuchen, Fernbedienung wählen, im
Bestätigungsschritt die Richtung festlegen (
output,inputoderboth) → Signale werden importiert - Manuell: Unter Gerät verwalten → Signal anlernen Richtung wählen (Senden, Empfangen oder Beides), Formular absenden und Taste auf der Fernbedienung drücken
Screenshots und Ablauf: Abschnitt Quick start oben (Oberfläche auf Deutsch).
Dokumentation in Home Assistant: Integrationskarte → Dokumentation (Link
aus manifest.json).







