The questions that come up most, and what to do when something misbehaves.
Because there is nothing left for one to do. Home Assistant's MQTT integration already
creates infrared emitter and receiver entities from discovery messages, and the codec
arithmetic lives upstream in python-broadlink. A custom component would
reimplement both, and would have to run a long-lived polling state machine inside HA's event
loop — which is precisely what core rejected. An external bridge is the natural home for it.
No — remove the device from it. A Broadlink RM can transmit or be armed for learning, never both, and any use of the front end kills an armed session. Two processes fighting over it produces failures that look random. The add-on publishes the temperature and humidity sensors itself, so you lose nothing.
remote.send_command?It can, but it does not have to. The Last captured code sensor exposes the same base64 packet the official integration stores, so existing scripts keep working if you keep that integration for another device.
Broadlink hardware does not report the carrier frequency it captured, and the encoder's
32.84 µs tick assumes 38 kHz. Signals at other carriers still round-trip correctly
— the device replays what it recorded — but the reported modulation is a fixed
value, not a measurement. Treat it as a label, not data.
Out of scope. RM pro and RM4 pro can learn RF, but Home Assistant's infrared entities are IR only, and there is a separate radio frequency platform for that. The add-on rejects RF packets rather than reporting them as bogus IR signals.
devices instead.
Almost always aim or range. An RM mini's emitter is quite directional and much weaker than
the original remote. Move it closer, point it squarely, and try repeat_count: 1
— some air conditioners ignore a single frame.
The device rejected enter_learning. Nearly always because something else holds
the session — usually the official Broadlink integration, occasionally the Broadlink phone
app left open on a learning screen. Remove the device from the integration, close the app,
restart the add-on.
You want Announced 6 entities for …. If you see it, the add-on has done its job and the problem is downstream.
discovery_prefix must match the MQTT integration's setting — homeassistant unless you changed it.
The MQTT infrared schemas need 2026.8 or newer. On older versions the discovery messages are silently ignored.
Entities require both the bridge and the device to be online. Check
broadlink2mqtt/status for the bridge and
broadlink2mqtt/<mac>/availability for the device. A device goes
unavailable after a failed sensor poll or a failed transmission, and recovers on the next
success.
Expected. There is no "exit learning" command in the protocol — the firmware times out on its own within about 30 seconds.
You are probably on a 32-bit OS image. cryptography, which
python-broadlink depends on, has no musl wheels for 32-bit ARM. Reflash with the
64-bit Home Assistant OS image, or run the bridge on another machine and point it at your
broker.
Set log_level: debug, restart the add-on, reproduce the issue, and
open an issue
with the log, your device model, and your Home Assistant version.