Installation

Install as a Home Assistant add-on, or run the same image as a plain container.

Before you start

Remove your blaster from the official Broadlink integration first. Settings → Devices & Services → Broadlink → delete the device. Both compete for the same IR front end, and remote.learn_command will fail while a capture window is open.

Option 1 — Add-on

Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.

  1. Open the add-on store

    Go to Settings → Add-ons → Add-on Store.

  2. Add this repository

    Click the menu, top right → Repositories. Add:

    https://github.com/pranjal-joshi/Broadlink2MQTT

    then Add and Close. Refresh if the new section does not appear.

  3. Install

    Find Broadlink2MQTT in the new section and click Install. The prebuilt image is pulled from ghcr.io, so this takes seconds rather than minutes.

  4. Start

    Click Start. If you run the Mosquitto broker add-on, there is nothing to configure — the add-on asks the Supervisor for your broker.

  5. Confirm it found your blaster

    Open the Log tab. You want to see:

    Found RM4 pro (RM4PRO) at 192.168.1.50 [a1:b2:c3:d4:e5:f6]
    Connected to MQTT at core-mosquitto:1883
    Announced 6 entities for RM4 pro

    Your blaster now appears under Settings → Devices & Services → MQTT.

Turn on Start on boot and Watchdog from the add-on's Info tab so it comes back after a restart or a crash.

Option 2 — Plain Docker

The add-on image is an ordinary container. Host networking is required so the UDP discovery broadcast reaches your device.

docker run -d \
  --name broadlink2mqtt \
  --network host \
  --restart unless-stopped \
  -e MQTT_HOST=192.168.1.10 \
  -e MQTT_USERNAME=homeassistant \
  -e MQTT_PASSWORD=secret \
  -e LOG_LEVEL=info \
  ghcr.io/pranjal-joshi/broadlink2mqtt:1.1.0-beta.1

That tag is a multi-arch manifest, so Docker picks the right image for you. The per-arch images are amd64-broadlink2mqtt and aarch64-broadlink2mqtt if you would rather be explicit. Add -e DEVICES=192.168.1.50,192.168.1.51 to skip broadcast discovery and address devices directly.

Architecture support

python-broadlink depends on cryptography, which only publishes musl wheels for aarch64 and x86_64. Building it for 32-bit ARM would need a Rust toolchain in the image, so armv7, armhf and i386 are not supported.

This covers Raspberry Pi 4 and 5 on a 64-bit OS, every Intel/AMD install, and most NAS deployments. If you are on a 32-bit Pi OS image, switching to the 64-bit build is the fix.

Next

Head to Configuration if you need to point at an external broker or add a device by IP, or straight to Usage to capture your first code.