Inconsistent broadlink IR remote codes

I recently purchased a Broadlink RM4 mini to control my ‘dumb’ Daikin reverse cycle aircon. It learns codes alright and works for a few mins, but then the Daikin stops responding. Using the physical remote to turn the machine off/on seems to reset the behaviour and allow the codes to work again, but they shortly fail again. At certain times of the day the codes will work again, then not.

I’m assuming the difference in the codes listed in the broadlink codes under /homeassistant/.storage/broadlink_remote_a043b007d778_codes is due to the broadlink AES-CBC ciphertext, which changes every time because of the IV. So I set out to try and get the raw payload out of the logbook/developer‐tools output, then run the raw output, something like

commands:
      heater_toggle:
        raw: [2300,550,600,550, ]

I can’t for the life of me figure out how to extract this data though, even with DEBUG set on my broadlink device in config.yaml:

logger:
  default: info
  logs:
    homeassistant.components.broadlink: debug

I only get very basic log info when learning the commands:

2025-06-13 10:18:58.370 DEBUG (MainThread) [homeassistant.components.broadlink.updater] Finished fetching IR Broadlink (RM4 mini at 10.0.0.14) data in 0.025 seconds (success: True)

Here’s a sample of the codes stored in broadlink_remote_a043b007d778_codes sampling me mashing the on/off button on the remote.

      "1": "JgCKAg0ODRAODg8ODQ4PAAM4cjgQKQ8NDw4ODg4rDw4NDw4ODw4NLA8MECoOKw0PECkPKg0sDioQKQ8ODg4PKg4ODg8NDw8ODQ8ODg8ODg4ODw4PDg4OKg8ODg4PDg0PDg4PDg0PDw4OKg8ODisODg8qDg4PKg8ODioPKg8ODioPKg8ODg4QDQ4PDQ4OEA0ODw8MDw4PDg4ODw0PDw0PDg0QDQ4PKg8PDA8ODw4PDQ8NDw4OEA0QDA8ODg4NDw8ODg4PDg4ODQ8RDQwQDQ8ODg4ODw4ODg8qDw0OEA0ODw4ODg8ODg4PDQ8ODg4PDg4ODw4ODg4PDQ8NEA4ODSsPDwwPEA0ODg4ODw4NDw8PDBANDg8PDA8PDg4ODw4ODg4ODg8NDw4PDQ8PEgkPDg4PDg4ODw4ODw0ODw8NDg8ODQ8ODw4PDA8ODw4ODyoODg8qDyoQKRUABIZyOQ8pDw4ODg4PDioPDg4ODg8ODg8qDg4PKg8qDw0QKQ8qDyoPKg4rDg4PDg4qDw4NDw8ODg4PDQ8ODg8NDw4ODw4NDw8ODQ8ODw4ODg8NDg8ODSwODg4PDioPDg4PDSsPDQ4PDg4PKhApDQ8PKg8ODQ8ODg8PDQ4OEAwPDw0ODw4ODw4ODg8ODg4PDg4qDg8OKg8qDyoQKRApDg4PDg0PDw4ODg4ODg8ODg8ODg4ODw0PDg4PKg8qDw4NDw4ODg8NDw4PDQ8NDw4PDg4OKw8qDg8ODg4ODw4ODg0QDg4ODg4PDQ8ODg4QDA8PDg4ODg4PDg0sDg8NKw4ODg8NEA0rDyoODg8qDw0ODw4ODw4ODg8NDw4NDw4PDSwNEA0ODw4ODg4rDyoODg8qDw4OKg8qDw4OAA0F",
      "2": "JgCIAg4ODw4NDw8ODQADOXI4DyoPDg0PDw0PKg8ODQ8PDg0PDisODg8qECkODg8qDyoNLA4qDyoPDg4ODyoPDg4ODg4ODw4ODw4NEA0PDRANDg8ODSsPDg8ODQ8ODg8ODQ8OKw4ODyoQDA4rDw4OKhANDisODw0rDyoODg8qDyoOKw4PDg4NDw8NDw4ODw4ODQ8ODw4ODw0PDg4ODw8NDg4PDQ8NLA0PDw4ODg8NDg8ODg8ODg4ODg4QDA8PDg4ODw4ODw0ODw4NDw8ODg4ODw0PDQ8PKg8ODQ8NDw4PDg4PDg4ODg4PDg4PDg4ODg4ODw4NDw8ODQ8ODw0rDw4ODg8ODg4PDQ4PDg4ODw4ODw0OEA0ODw4ODg4PDg4PDQ4PDg4ODw4ODw4NEA0ODw4ODg8ODg4ODg4PDQ8PDg4ODg8NDw4ODisPDg0rDw4NLA0rDw4PAASMcjkOKg4PDg4ODw0rDw4PDQ8ODQ8PKg4ODisOKw4PDioPKg8qDyoNLA4ODg8OKg8ODg4PDg0QDg0PDg0PDg8ODg8NDg8ODg8ODg4PDg4ODw0PDg4PDg8NDg8qDg4PDg4rDg4ODg4PDSwOKg8ODisPDQ4PDQ8ODg8ODg4PDg4ODg4PDg4PDg4ODg8ODg4OKw4ODyoPKg4rDioPKg4PDg4ODw4PDQ8ODg4PDg4ODg4PDg4ODg4PDSwOKg8ODQ8PDg0PDw4ODg4ODg8ODw0PDSsPKg4PDQ8PDQ8ODg4ODw4ODw4ODw0ODw4NEA0PDRAODQ4PDQ8PKg8ODioODw4PDg4PKQ4rDw8NKw0PDw0ODw4ODhANDg8NDw4NDw8qDw4ODg4ODw4ODg8qDw4OKg8ODSwOKg8ODgANBQ==",
      "3": "JgCKAg0ODQ8ODg8ODg8NAAM4cjkPKg4ODw4ODg8qDQ8PDg4ODg8NKw4PDSwOKg8ODSwOKw4qDisPKg4ODg8NLA4ODg8ODg4ODw8NDw0PDg8NDg4QDQ4PKg8NDw4NDw8ODg4ODw4qDw4OKw4ODyoODg8qDw4NKw8PDCwOKg8ODisOKw8NDg4PDg4ODhAMEAwPDw8MDw8ODg4PDg4ODQ8PDg0PDg8OKg4PDw0ODw4ODw0ODw4ODg8NDw4PDg4PDgwQDg4PDg0QDQ8ODw0ODw4NDw4PDg4ODg8qDw4NDw8NEA4NDg4QDA8PDg0PDg4PDwwQDQ8ODg4ODw4PDQ8ODisODg8NDw8NDg8ODQ8ODg4PDg4ODw4ODw0ODw4PDg4ODg4PDQ8ODg8ODg4ODw4ODw4NDw4PDg4ODg4PDg4PDQ4QDBAODwwPDyoODg8PDCwODg8qDisOKg8ABI1yOA4rDg4ODw8NDyoODw4ODg8ODw0rDQ8OKw4rDg4OKw8qDisPKQ8qDw8MDw4rDg4PDg4ODw4ODw0ODw4ODg8ODQ8PDQ8ODg4PDg4PDQ8ODg4PDSsODw4ODisPDg4ODisPDg0ODhAMLA4qDw4PKg4ODw4ODg4ODw4NDw8ODg8ODQ8ODw4NDw4ODw4ODg4rDg4PKg8qDyoPKg4qDw8MDw4PDg4PDg4ODRANDw4ODg8NDw4ODw8MLA4qDw4ODg4QDA8PDg4ODg4ODw4ODw4OKg8qDw8MEA4NDw4ODg8ODg8NDw4ODg4ODw4ODg8NDw4ODw8NDg8qDw4OKg8ODg4ODw4qDyoPDg4qDw4ODg8ODQ8PDg0PDg4PDw0ODyoQDQ4ODw0PDg4rDioPDg4rDg4PKg8qDQ8PAA0F",
      "4": "JgCKAg0NDg8NDw8ODg4OAAM4cToOKw4ODw4ODg4rDQ8PDg4ODw4NKw8ODioPKg8ODisOKhApECkPKg8NDw8NKw4ODg4ODw0PDg8ODg8NDw4ODg8ODg4OKw8ODQ8ODw4ODg4ODg4rDw4OKg8PDCwNDw4rDw4NKw8ODSwOKg8ODisOKg4rDw4ODg8ODRANDg8ODg4PDg0QDQ8NDw4ODhANDg4ODw4ODw0rDw4ODg4ODw8NDw4ODg4PDg0PDg4PDg4ODg8NDw4ODw4NDw4QDQ4ODg4PDRAODg4rDg8NDg8ODg4ODw4ODw4ODw0ODw4ODw4ODg4ODw0PDg4OEA0ODyoODg4PDg4PDg8NDw0ODw4ODg8NDw8ODQ8NEA0PDg4ODw4ODg4ODw4ODw4ODg4OEA4NDhEMDg4QDQ4ODw0ODw4ODw4PDQ8NDw4NLA0PDyoPDg4qDyoODg8ABI1yOA8qDg8NDw4PDioPDg0PDg8NDw4qDw8NKw4rFwQRKg8qDioPKg8qDw4PDg0rDg4ODw4ODw4NDw4PDRAMDw8ODg4PDg4ODg4PDg0PDw4PDQ4ODhAMEA4ODioPDg4ODyoPDg4ODg4PKg8qDw0PKg8ODg4PDg4ODQ8PDg0PDg8NDw8NDw4NDw4PDg4PDg4qDg8NLA0rDyoOKw4rDg8ODg0PDw4NDw4PDg4ODg4QDQ4ODw0QDQ4OKw8qDg4ODw4ODw4ODg8NDw8MDw4PDg8NKw8qDQ8ODw4ODw0PDwwPDw4ODg8NDw4ODw0PDg4PDg0PDg4PDg4rDg4PKg4ODg8ODw0rDisODg8qDw0ODw0PDg8NEA0PDg4ODg8ODisODg4ODg8ODw0PDisNDw8qDQ8OKw8qDg4PAA0F",
      "5": "JgCKAg0ODg8NDw4ODg8NAAM5cjkOKg8ODw0PDg4rDg4ODg8ODg4PKg8NDyoPKg8ODioPKg8qDyoPKg0PDw4NKw8ODg4PDg4ODw0PDg4ODw4ODg8NDw4PKg4ODw4ODg8NDw4ODg8ODioPDg8qDisODg8qDg4PKg8ODioPKg8ODioPKg8ODg4PDQ8ODQ8ODw4ODg8NDw4ODg8NDw4PDQ8ODw0PDQ8OKw4PDQ8ODg4PDQ8ODw0PDg4ODw0PDg8NDw4PDQ8ODg4PDQ8ODw0PDg8NDw0PDg8NDw4rDg4ODw0PDg8NDw4ODg8NDw4PDQ8ODw0PDg4ODw0PDg8NDw4ODisODw0PDg8NDw4ODg8NDw4PDQ8ODg4PDQ8ODw0PDg8NDw4ODg8NDw4PDQ8ODg4PDQ8ODw0PDg8NDw4ODg8NDw4PDQ8ODg4PDQ8OKw4rDisNDw4rDisNLA0ABI5zNxApEA0PDRAMECkQDQ8NEA0PDRApEAwQKRApEAwQKREoECkQKRAoEQwQDBApEQsQDQ8NEQwPDRANDw0QDBEMEAwQDRAMEAwQDRAMEQwPDREMECgRDBAMECkRCxANECkQDBANDw0QKRApEAwQKQ8NEA0PDRANDw0QDBANDw0QDQ8NEAwQDQ8NEA0PDRApDw0QKRApESgPKg8qDw0PDRANDw0QDQ8NEAwQDQ8NEA0PDRANDw0PKg8qDw0PDRANDw0QDQ8NEAwQDQ8NEA0PKg8pEA0PDRANDw0QDQ8NDw0QDQ8NEA0PDQ8NEA0PDRANDw0PDRApEA0PKg8NDw0QDQ8qDykQDQ8qDw0QDQ8NDw0QDQ8NEA0PDQ8NECkQDQ8NEA0PDQ8qDyoPDQ8qDw0QKRApDw0QAA0F",
      "6": "JgCKAg0NDw4NDw8ODg4OAAM5cTkOKw4ODxIKDg4rDg4PDg4ODg4OKw8ODioPKg8ODisOKg8qDyoPKg4ODw4OKw4ODg4PDg4ODw4ODg8NDw4ODg8ODg4OKw4ODw4ODg8ODg4PDQ8ODisODg8qDisPDQ8rDg4OKg8ODisOKg8ODisOKg8ODg4PDg4ODw4ODg4ODw4ODg8ODg4PDQ8ODg4PDg4ODw4OKg8ODg4PDg4ODg4PDg4ODw4ODg8ODg4ODg8ODg4PDg4ODw0PDg4ODw4NDw8ODg4ODg8qDxAMDg4ODw4ODg8ODg4PDQ8ODg4PDg4ODw4ODg4ODw4ODg8ODisODg4ODw4ODg8ODg4ODg8ODg4PDg4ODw0PDg4ODw4ODg8ODg4ODg8ODg4PDg4ODw0PDg4ODw4ODg8ODg4ODg8ODg4PDg4ODw4OKg8qDyoODg8qDyoPKg4ABI1yOQ4qDw4ODg8ODisODg4ODw4ODg8qDw0PKg8qDw4OKg8qDyoPKg4rDg4PDg4qDw4ODg8ODg4PDQ8ODg4PDg4ODw4ODg4ODw4ODg8ODg4PDQ8ODisODg8ODioPDg4ODyoPDQ8ODg4OKw8qDg4PKg8ODg4PDQ8ODg4PDg4ODw4ODg4ODw4ODg8ODg4PDQ8qDw4OKw4qDyoPKg4rDg4PDg4ODw4ODg4ODw4ODg8ODg4ODg4PDg4PKg8qDg4PDg4ODw4ODg4ODw4ODg8ODg4PKg4rDg4PDg4ODg4PDg4ODw4ODg8NDw4ODg8ODg4PDg4ODg4PDg4rDg4PKg4ODw4ODg8qDisODg8qDw0PDg4ODw4ODg8ODg4ODg8ODisODg8NDw4ODg8qDyoODg8qDw4OKg8qDw4OAA0F"
    }

The remote on/off toggles two different signals, if the remote isn’t pointing at the A/C it’ll still toggle, then sending an ON signal to the ON A/C will do nothing but cause it to beep. When sending an “old” code from the broadlink, the A/C doesn’t even beep.

Given how much time I’ve blown on this already, I probably should’ve just forked out for a Fakin modue, and probably still will, but I still want to know what’s going on with these IR codes. Does anyone have any experience with this?

Yeah, had the same problem with inverted on/off signal issue with my daikin. I just installed faikin and connect esp32 to it

Yeah I ordered the Fakin after writing this post, seems like a far better solution but after learning a bunch about IR, I want to know what’s going on.

Sounds like rolling codes.

That’s what I first thought, but none of the other Daikin units use rolling codes and besides, that’s a security feature which would be redundant on an aircon, especially just for one model. Check out the codes fo this other Daikin unit. Each temp and setting has it’s own code, so I was thinking that there may also be a time code in the IR code on this model, which would explain why the code works for a while then stops, then works again later on. I guess the way to test would be to record a code at a specific time, then repeat it the next day at the same time, or just change the time on the unit.

Maybe the code you recorded on your broadlink is the extreme or tainted.
Try to record it again.

I know Daikin IR protocols, they are pretty standard, no rolling etc.
My RM4 mini caused Daikin to “freeze” occasionally using just stock app (not HA related). Daikin just doesn’t like it. Codes sent from Esp (with IR-LED) work 100% reliably.