Home Assistant add-on · v1.1.0-beta.1

Your infrared blaster,
as real Home Assistant entities.

Broadlink2MQTT turns an RM4 mini, RM4 pro or RM mini 3 into native infrared emitter and receiver entities over MQTT discovery — the ones the official integration cannot give you. No custom components. No base64 wrangling.

Requires HA 2026.8+ MQTT discovery aarch64 · amd64
RM4 MINI

From a remote in your hand to an entity in your dashboard

Five hops. The add-on owns the middle one — everything either side is stock Home Assistant.

Your remote

Presses a button, emits a 38 kHz burst

RM4 blaster

Captures it in learning mode, or transmits it

Broadlink2MQTT

Converts packets to raw timings, both directions

MQTT broker

Discovery messages create the entities

Home Assistant

Emitter, receiver, and a learning switch

Watch a code arrive

Learning mode arms the blaster and polls it once a second. Every capture is decoded to signed microsecond timings — positive is carrier on, negative is carrier off.

captured
edges duration carrier 38 kHz

Real NEC frames, encoded with the same 32.84 µs tick and 0x26 packet header the add-on uses. Source:

One device, a full set of entities

Created by MQTT discovery the moment the add-on starts. Nothing to add to YAML.

Emitter
infrared · 2 min ago
Receiver
infrared · 9 s ago
Learning mode
switch · on
Last captured code
sensor · JgBQAAAB…
Temperature
sensor · 21.4 °C
Humidity
sensor · 48 %

Supported blasters

Every Broadlink RM with an IR front end. Sensors appear automatically where the hardware has them.

RM4 mini

RM4MINI
IR Temp Humidity

RM4 pro

RM4PRO
IR Temp Humidity RF n/a

RM mini 3

RMMINI · RMMINIB
IR No sensors

RM pro

RMPRO
IR Temp RF n/a

RF (315/433 MHz) is out of scope — Home Assistant's infrared entities are IR only, and RF captures are rejected rather than reported as bogus IR.


Because the RM cannot listen passively

The hardware limit

To receive anything, an RM must be put into learning mode and polled — and that session dies the moment anything else touches the IR front end.

Why core said no

core#177767 proposed doing exactly that inside the integration, and was closed. A core receiver entity is expected to be listening constantly.

So it lives here

The objection was about where the state machine lives, not whether it works. In its own process, driven by a switch you control, the same approach is sound.

“The Infrared receiver entity is meant to be used by devices that can receive constantly […] I don't think it should be implemented for Broadlink until Broadlink provides a firmware that allows for constant receiving.”

— maintainer review on core#177767


Pairs with HAIR

These are standard infrared entities, so anything that consumes the platform can drive them. HAIR is a HACS integration that turns captured remotes into Home Assistant devices — and this add-on supplies the half it was missing.

Broadlink on its own

HAIR's compatibility table lists the official Broadlink integration as transmit-only. There is no receiver entity, so the Sniffer has nothing to listen with.

TXRX

With Broadlink2MQTT

The receiver arrives as a native InfraredReceiverEntity over MQTT. HAIR picks up any integration exposing one automatically — no configuration on either side.

TXRX

Sniff a whole remote in one sitting

  1. Turn on Learning mode

    The add-on arms the blaster. HAIR's Sniffer is a live listener, so it only hears while that capture window is open.

  2. Press every button on the remote

    Each source remote appears as its own card, with every signal shown as an S/L diamond fingerprint. Repeat frames from a held button are filtered out, and a neighbour's stray clicker can be dismissed.

  3. Adopt it

    One click turns the captured remote into a Home Assistant device with a button entity per signal — no YAML, no base64 copied by hand.

  4. Keep the codes

    HAIR's Closet is a portable code library of device profiles. It also imports SmartIR JSON, Flipper Zero .ir files, LIRC lircd.conf, and Girr exports, or takes a Pronto hex paste through the Clipper.

Raise capture_limit before a long session. The default closes the window after 60 seconds, which is tight for working through a 40-button air conditioner remote.
One blaster cannot send and listen at the same time. An RM has a single IR front end, and this add-on deliberately suppresses captures of its own transmissions — so HAIR's Mirror will report SENT but never SENT and HEARD from a single device. Add a second blaster if you want that confirmation.

Ready in about two minutes

Add the repository, install, start. If you run the Mosquitto add-on there is nothing to configure.