Guide: How to learn broadlink RF codes

OMG, I was trying all day long with this topic. I was ready to close everything but decided to try your method too, because you wrote that Home Assistant reboot is important. And I succeeded using your steps. thank you!

2 Likes

remember reboot each time you need to learn a command.

So, Ive finally learned the RF codes I need for my windows. It took a ton of playing around. I used the same steps as you would above with the e-control app but with IHC. And it worked. I got codes to open, close and stop my shades. Here is my new problem, Home Assistant wont do anything with them once I have added them to a script or a switch.

switch:
  - platform: broadlink
    host: 192.168.86.35
    mac: '780F77634D7D'
    timeout: 15
    retry: 5
    switches:
       tv_2br_power:
         friendly_name: "Second Bedroom TV Power"
         command_on: 'JgBYAAABKJURFBITEjgVERMSFBESExIUEjgSOBQREzcSOBI4EzcWNRITEhMWDxM3FRESExITEhMSOBI4EjkSExI4ETkRORI4EwAFEAABKEsTAAxPAAEoSxMADQU='
         command_off: 'JgBYAAABKJURFBITEjgVERMSFBESExIUEjgSOBQREzcSOBI4EzcWNRITEhMWDxM3FRESExITEhMSOBI4EjkSExI4ETkRORI4EwAFEAABKEsTAAxPAAEoSxMADQU='
       tv_2br_input:
         friendly_name: "Second Bedroom TV Input"
         command_on: JgBQAAABKJUUERQSFDYTEhITExMSExMSFTUTNxMTEjgUNhM3EzcVNRQ2EzcSOBQ3ExITNxMSExMVEBITExIUERM3FBIUNhM3FAAFDwABKkkTAA0FAAAAAAAAAAA=
         command_off: JgBQAAABKJUUERQSFDYTEhITExMSExMSFTUTNxMTEjgUNhM3EzcVNRQ2EzcSOBQ3ExITNxMSExMVEBITExIUERM3FBIUNhM3FAAFDwABKkkTAA0FAAAAAAAAAAA=
       tv_2br_exit:
         friendly_name: "Second Bedroom TV Exit"
         command_on: JgBQANAHT5gOGQwZDToQFhAVDxcOFw8XDjsROQ8XDjwOPA49DjwOPBA5DxYPGA47DxcOFg87EBUPFw88DjkRFxA6DjsQFw47EAAFEwABJk4PAA0FAAAAAAAAAAA=
         command_off: JgBQANAHT5gOGQwZDToQFhAVDxcOFw8XDjsROQ8XDjwOPA49DjwOPBA5DxYPGA47DxcOFg87EBUPFw88DjkRFxA6DjsQFw47EAAFEwABJk4PAA0FAAAAAAAAAAA=
       diffuser_diffuser:
         friendly_name: "Defuse"
         command_on: 'JgDYAAABKpMUNhQ2FREUERQSFBEUERU2FBEUERU2FBEUNhQ2FTYUNhQSFBEUERURFBEUERU2FBEUNhU2FDYUNhQ3FDYUERQ2FQAFDAABK5MUNhQ2FBIUERQRFREUERQ2FREUERQ2FREUNhQ2FTYUNhQSFBEUERQSFBEUERU2FBEUNhU2FDYUNhQ3FDYUERQ2FQAFDQABKpMUNhQ2FBIUERQRFREUERQ2FREUERQ2FREUNhQ2FDcUNhQRFBIUERQRFREUERQ2FREUNhQ2FDcUNhQ2FDYVERQ2FAANBQ=='
         command_off: 'JgDYAAABKpMUNhQ2FREUERQSFBEUERU2FBEUERU2FBEUNhQ2FTYUNhQSFBEUERURFBEUERU2FBEUNhU2FDYUNhQ3FDYUERQ2FQAFDAABK5MUNhQ2FBIUERQRFREUERQ2FREUERQ2FREUNhQ2FTYUNhQSFBEUERQSFBEUERU2FBEUNhU2FDYUNhQ3FDYUERQ2FQAFDQABKpMUNhQ2FBIUERQRFREUERQ2FREUERQ2FREUNhQ2FDcUNhQRFBIUERQRFREUERQ2FREUNhQ2FDcUNhQ2FDYVERQ2FAANBQ=='
       diffuser_light:
         friendly_name: "Toggle Diffuser Light"
         command_on: JgDYAAABKpMUNhU1FREUERURFBEUERU2FBEUERU2FBEVNRU1FTYUNhQRFREUERURFBEUERU1FTYUNhQ2FTYUNhQ2FDYVERQRFAAFDQABKpIVNhQ2FBIUERQRFREUERQ2FREUERQ2FREUNhQ2FDYVNhQRFBEVERQRFBEVERQ2FDYVNRU2FDUVNhU1FTYUERQRFQAFCwABK5IVNhQ2FBEVERQRFBEVERQ2FBEVERQ2FBEUNhU2FDYUNhURFBEUERURFBEUERU1FTYUNhQ2FTYUNhQ2FTUVERQRFAANBQ==
         command_off: JgDYAAABKpMUNhU1FREUERURFBEUERU2FBEUERU2FBEVNRU1FTYUNhQRFREUERURFBEUERU1FTYUNhQ2FTYUNhQ2FDYVERQRFAAFDQABKpIVNhQ2FBIUERQRFREUERQ2FREUERQ2FREUNhQ2FDYVNhQRFBEVERQRFBEVERQ2FDYVNRU2FDUVNhU1FTYUERQRFQAFCwABK5IVNhQ2FBEVERQRFBEVERQ2FBEVERQ2FBEUNhU2FDYUNhURFBEUERURFBEUERU1FTYUNhQ2FTYUNhQ2FTUVERQRFAANBQ==
       diffuser_light_dim:
         friendly_name: "Dim Diffuser Light"
         command_on: JgDQAgABKpMUNhU1FREUERQRFREUERU1ExMUERQ2FBIUNhM3FDYUNxEUFBETExQRFBEUEhQREzcTNxQ3FDYUNhM3FDcUNhQRFAAFDAABKpMUNhQ2FRETEhQRFBIUERQ2ExMUERQ2FBEUNxQ2FDYUNhQSExIUERMTExITEhMTFDYRORM3EzgTNxQ2EzcTNxQSFAAFCwABK5IUNhQ2FBIWDxQRFBIUERQ2FBITEhQ2FBEVNhM3EzcUNhQSExITEhQSFBEUERQSFDYTNxQ2FDcUNhU1FDYUNxQRFAAFDAABKpIVNhQ2FBEUEhQRFBEUERU2FRATEhY1FBEUNhQ2FTYUNhQRFBITEhUQFBIUERQRFDYVNhQ2FDYUNhQ2FTYUNhQREwAFDQABKpMUNhQ2FRAXDxQRFBEVERQ2FBETExQ2FBEUNhU2FDYUNhQSFBEUERURExIUERQSFDYUNhU1FDYVNhU1FTUUNhURFAAFCwABK5IUNhU2FBETEhYQFBEUERQ2FREUERU1FBIUNhQ2FjQVNhQRFBEUEhMSFRAVERQRFDYUNhU2FDYUNhQ2FTUVNhQRFAAFDAABKpIXNBQ2FBEUERcPFBEUERU2FBEUERM4ExIUNhQ2FDYVNhQRFBEUEhQRGA0UEhQRFDYUNhQ3FDYUNhQ2FjUUNhQRFAAFDAABKpMUNhQ2FBEUEhQRFRAXDxQ2FBEUEhQ2FBEUNhQ2FTYVNRQRFBIUERQRFBIUERcOFDYVNhQ2FDYUNhU2FDYVNRQRFAAFDAABKpMVNRQ2FREUERMTEhMUERM3FBITEhQ2FBIWNBQ2EzcVNhQRFBEUEhMSFBETExQREzcUNhQ3EzcTNxM3EzcUNxMSEwAFDQABKZQTNxQ3ExITEhMTExITEhgzFBETEhM4ExITNxM3EzgUNhUQExMTEhMSExMTEhMTFzMUNhM3FDYVNhM3EzcWNBQSEwANBQAAAAAAAAAA==
         command_off: JgDQAgABKpMUNhU1FREUERQRFREUERU1ExMUERQ2FBIUNhM3FDYUNxEUFBETExQRFBEUEhQREzcTNxQ3FDYUNhM3FDcUNhQRFAAFDAABKpMUNhQ2FRETEhQRFBIUERQ2ExMUERQ2FBEUNxQ2FDYUNhQSExIUERMTExITEhMTFDYRORM3EzgTNxQ2EzcTNxQSFAAFCwABK5IUNhQ2FBIWDxQRFBIUERQ2FBITEhQ2FBEVNhM3EzcUNhQSExITEhQSFBEUERQSFDYTNxQ2FDcUNhU1FDYUNxQRFAAFDAABKpIVNhQ2FBEUEhQRFBEUERU2FRATEhY1FBEUNhQ2FTYUNhQRFBITEhUQFBIUERQRFDYVNhQ2FDYUNhQ2FTYUNhQREwAFDQABKpMUNhQ2FRAXDxQRFBEVERQ2FBETExQ2FBEUNhU2FDYUNhQSFBEUERURExIUERQSFDYUNhU1FDYVNhU1FTUUNhURFAAFCwABK5IUNhU2FBETEhYQFBEUERQ2FREUERU1FBIUNhQ2FjQVNhQRFBEUEhMSFRAVERQRFDYUNhU2FDYUNhQ2FTUVNhQRFAAFDAABKpIXNBQ2FBEUERcPFBEUERU2FBEUERM4ExIUNhQ2FDYVNhQRFBEUEhQRGA0UEhQRFDYUNhQ3FDYUNhQ2FjUUNhQRFAAFDAABKpMUNhQ2FBEUEhQRFRAXDxQ2FBEUEhQ2FBEUNhQ2FTYVNRQRFBIUERQRFBIUERcOFDYVNhQ2FDYUNhU2FDYVNRQRFAAFDAABKpMVNRQ2FREUERMTEhMUERM3FBITEhQ2FBIWNBQ2EzcVNhQRFBEUEhMSFBETExQREzcUNhQ3EzcTNxM3EzcUNxMSEwAFDQABKZQTNxQ3ExITEhMTExITEhgzFBETEhM4ExITNxM3EzgUNhUQExMTEhMSExMTEhMTFzMUNhM3FDYVNhM3EzcWNBQSEwANBQAAAAAAAAAA==
       fan_power:
         friendly_name: "Power"
         command_on: JgCSACsNKg0PKSkPKg0NKw8pDykPKg8pDykq7SsNKg0PKSoOKg0PKQ8pDykPKQ8qDykq7CwNKg0PKSoNKw0PKQ8pDykPKRAoECkp7SsOKg0PKSoNKg4OKg8pDykPKQ8pDykr7CsNKg4PKSoNKg0PKQ8qDykQKA8pDykq7SsNKg0PKioNKg0PKQ8pDyoOKg8pDykqAA0FAAAAAAAA=
         command_off: JgCSACsNKg0PKSkPKg0NKw8pDykPKg8pDykq7SsNKg0PKSoOKg0PKQ8pDykPKQ8qDykq7CwNKg0PKSoNKw0PKQ8pDykPKRAoECkp7SsOKg0PKSoNKg4OKg8pDykPKQ8pDykr7CsNKg4PKSoNKg0PKQ8qDykQKA8pDykq7SsNKg0PKioNKg0PKQ8pDyoOKg8pDykqAA0FAAAAAAAA=
       fan_speed:
         friendly_name: "Fan Speed"
         command_on: 'JgBOACsNKg0PKSsNKg0NKw8pDykQKQ4qKA8NAAELKw0qDQ0rKQ8qDQ8pDykPKQ8pDykpDw8AAQgrDioNDSsoDyoODioPKRAoDykNKykPDwANBQAAAAAAAAAAAAA='
         command_off: 'JgBOACsNKg0PKSsNKg0NKw8pDykQKQ4qKA8NAAELKw0qDQ0rKQ8qDQ8pDykPKQ8pDykpDw8AAQgrDioNDSsoDyoODioPKRAoDykNKykPDwANBQAAAAAAAAAAAAA='
       fan_oscillate:
         friendly_name: "Oscillate"
         command_on: JgBOACwNKg0PKSoNKw0PKQ8pKg0PKRApDykQAAEHLA0qDQ8pKg0qDg4qDykoDw8pECgQKQ8AAQgrDSsNDykqDSoNDSsQKSoNDykPKQ8pDwANBQAAAAAAAAAAAAA=
         command_off: JgBOACwNKg0PKSoNKw0PKQ8pKg0PKRApDykQAAEHLA0qDQ8pKg0qDg4qDykoDw8pECgQKQ8AAQgrDSsNDykqDSoNDSsQKSoNDykPKQ8pDwANBQAAAAAAAAAAAAA=
       fan_ionizer:
         friendly_name: "Ionizer"
         command_on: JgBOACsNKg0PKioNKg0NKykPDioPKQ8pDykPAAEJKw0qDQ0rKQ8qDQ0rKA8PKQ8qDykQKA8AAQkpDyoNDykpDyoNDykoDw0rDykPKg8pDwANBQAAAAAAAAAAAAA=
         command_off: JgBOACsNKg0PKioNKg0NKykPDioPKQ8pDykPAAEJKw0qDQ0rKQ8qDQ0rKA8PKQ8qDykQKA8AAQkpDyoNDykpDyoNDykoDw0rDykPKg8pDwANBQAAAAAAAAAAAAA=
       2br_window_open:
         friendly_name: "Window Open"
         command_on: sgACATYKDBULFRYLCxUMFQsWCxUWCxYKDBUWCwsVCxYLFgoWCxYVCwsWCxULFgsWCxUWCxYKFgsLFQsWDBULFQwVCxUMFQwVFQsWCwsVFgsWCwsVFgoWBKFRNgsLFQwVFgsLFgsVCxYLFRYLFgoMFRYLCxULFgsWCxULFhULCxYLFQwVCxYLFRYLFQsWCwsVCxYMFQsVCxYLFQsWCxUWCxYLCxUWCxYKDBUWCxUEoVE2CwsWCxUWCwsVDBULFgsVFgsWCgwVFgsLFQsWCxUMFQsVFgsMFQsVDBULFgsVFgsWChYLCxYLFQsWCxULFgsVDBULFhULFgsLFhULFQsLFhYLFQAF3AAAAAAAAA==
         command_off: sgCsADYLCxUMFRUMCxULFgsVDBUVDBULCxYWCgwVCxUMFQwVCxUWCwsWCxULFRYLCxYWCgwVFgsLFQsWCxYLFQsVCxYLFgsVFgsWCgwVCxYVCwsWCxUWBKFRNgsLFQsWFgoMFQsVDBULFhYLFQsLFhULDBULFQsWCxYLFRYLCxUMFQsWFgoLFhYLChYWCgsWCxYLFQwVCxYLFQsWCxUWCxYKDBULFhULCxYLFRYABdwAAAAAAAAAAAAAAAA=
       2br_window_close:
         friendly_name: "Window Close"
         command_on: sgBbAn1RNgsLFgsVFgsLFQwVCxYLFRYLFQsMFRYKDBULFgsVDBULFRYLCxYLFQsWFgsLFQwVCxUWCwsWCxULFgsVCxYLFgsVCxUWCxYLCxUMFRYKFgsMFRUEoVE2CwsVDBUWCwsVCxYLFgsVFgsVCwwVFgoMFQsWCxUMFQsWFQsLFQwVDBUWCgwVCxYLFRYLCxULFgsVDBULFgsVCxYLFhULFgsLFQwVFgoWCwsVFgShUTcKDBULFRYLCxUMFQsWCxUWCxYKDBUWCwsVDBULFQwVCxYVCwsWCxUMFRYKDBULFgsVFgsLFQwVDBULFQwVCxULFgsVFwoWCwsVDBUWChYLCxUWo1I2CgwVCxUWCwsWCxULFgsVFgsVCwwVFgsLFQsWCxYLFQsVFwoMFQsVCxYWCgwVDBULFRYLCxYLFQwVCxULFgsWCxULFhULFgsLFQwVFgoWCwsWFQShUjULDBULFRYLCxYLFQsWCxUWCxYLChYWCwsVCxYLFQwVCxUXCgsWCxUMFRYKDBULFgsVFgsLFQwVDBULFQsWCxUMFQsWFgoWCwsWCxUWCxULCxYVBKFSNgoLFQwVFgsLFQwVDBULFRYLFgoMFRYLCxULFgsVDBULFRcKDBULFQwVFgoMFQwVCxUWCwsVDBULFgsVDBULFQwVCxYVCxYLCxUMFRYLFQsLFRYEoVI2CgsWCxUWCwsWCxULFgsVFgsWCwsVFgsLFQwVCxUMFQsVFwoMFQsWCxUWCwsVDBULFhULCxYLFQwVCxUMFQsWCxULFhYKFgsLFgsVFgsVCwwVFQAF3AAAAAAAAAAAAAAAAAA=
         command_off: sgCsADYLCxUMFRUMCxULFgsVDBUVDBULCxYWCgwVCxUMFQwVCxUWCwsWCxULFRYLCxYWCgwVFgsLFQsWCxYLFQsVCxYLFgsVFgsWCgwVCxYVCwsWCxUWBKFRNgsLFQsWFgoMFQsVDBULFhYLFQsLFhULDBULFQsWCxYLFRYLCxUMFQsWFgoLFhYLChYWCgsWCxYLFQwVCxYLFQsWCxUWCxYKDBULFhULCxYLFRYABdwAAAAAAAAAAAAAAAA=

The relevant switches are the last two. The ones above it are IR and work well - I included them for context.

Here are the broadlink send scripts:

data:
  host: 192.168.xx.xx
  packet: >-
    sgACATYKDBULFRYLCxUMFQsWCxUWCxYKDBUWCwsVCxYLFgoWCxYVCwsWCxULFgsWCxUWCxYKFgsLFQsWDBULFQwVCxUMFQwVFQsWCwsVFgsWCwsVFgoWBKFRNgsLFQwVFgsLFgsVCxYLFRYLFgoMFRYLCxULFgsWCxULFhULCxYLFQwVCxYLFRYLFQsWCwsVCxYMFQsVCxYLFQsWCxUWCxYLCxUWCxYKDBUWCxUEoVE2CwsWCxUWCwsVDBULFgsVFgsWCgwVFgsLFQsWCxUMFQsVFgsMFQsVDBULFgsVFgsWChYLCxYLFQsWCxULFgsVDBULFhULFgsLFhULFQsLFhYLFQAF3AAAAAAAAA==
service: broadlink.send

Above is to open the window. The close script is the same, but with the learned code for closing the windows. I have also tried the below:

data:
  command: >-
    sgACATYKDBULFRYLCxUMFQsWCxUWCxYKDBUWCwsVCxYLFgoWCxYVCwsWCxULFgsWCxUWCxYKFgsLFQsWDBULFQwVCxUMFQwVFQsWCwsVFgsWCwsVFgoWBKFRNgsLFQwVFgsLFgsVCxYLFRYLFgoMFRYLCxULFgsWCxULFhULCxYLFQwVCxYLFRYLFQsWCwsVCxYMFQsVCxYLFQsWCxUWCxYLCxUWCxYKDBUWCxUEoVE2CwsWCxUWCwsVDBULFgsVFgsWCgwVFgsLFQsWCxUMFQsVFgsMFQsVDBULFgsVFgsWChYLCxYLFQsWCxULFgsVDBULFhULFgsLFhULFQsLFhYLFQAF3AAAAAAAAA==
  device: secondwindow
entity_id: remote.broadlink
service: remote.send_command

Does anyone know what is going on here?

EDIT: I forgot to include the log:

Log Details (ERROR)

Logger: homeassistant.components.broadlink.remote
Source: components/broadlink/remote.py:205
Integration: broadlink (documentation, issues)
First occurred: 7:46:47 AM (5 occurrences)
Last logged: 8:13:16 AM

  • Failed to send ‘sgACATYKDBULFRYLCxUMFQsWCxUWCxYKDBUWCwsVCxYLFgoWCxYVCwsWCxULFgsWCxUWCxYKFgsLFQsWDBULFQwVCxUMFQwVFQsWCwsVFgsWCwsVFgoWBKFRNgsLFQwVFgsLFgsVCxYLFRYLFgoMFRYLCxULFgsWCxULFhULCxYLFQwVCxYLFRYLFQsWCwsVCxYMFQsVCxYLFQsWCxUWCxYLCxUWCxYKDBUWCxUEoVE2CwsWCxUWCwsVDBULFgsVFgsWCgwVFgsLFQsWCxUMFQsVFgsMFQsVDBULFgsVFgsWChYLCxYLFQsWCxULFgsVDBULFhULFgsLFhULFQsLFhYLFQAF3AAAAAAAAA==/second_bedroom_window’: command not found
  • Failed to send ‘sgBbAn1RNgsLFgsVFgsLFQwVCxYLFRYLFQsMFRYKDBULFgsVDBULFRYLCxYLFQsWFgsLFQwVCxUWCwsWCxULFgsVCxYLFgsVCxUWCxYLCxUMFRYKFgsMFRUEoVE2CwsVDBUWCwsVCxYLFgsVFgsVCwwVFgoMFQsWCxUMFQsWFQsLFQwVDBUWCgwVCxYLFRYLCxULFgsVDBULFgsVCxYLFhULFgsLFQwVFgoWCwsVFgShUTcKDBULFRYLCxUMFQsWCxUWCxYKDBUWCwsVDBULFQwVCxYVCwsWCxUMFRYKDBULFgsVFgsLFQwVDBULFQwVCxULFgsVFwoWCwsVDBUWChYLCxUWo1I2CgwVCxUWCwsWCxULFgsVFgsVCwwVFgsLFQsWCxYLFQsVFwoMFQsVCxYWCgwVDBULFRYLCxYLFQwVCxULFgsWCxULFhULFgsLFQwVFgoWCwsWFQShUjULDBULFRYLCxYLFQsWCxUWCxYLChYWCwsVCxYLFQwVCxUXCgsWCxUMFRYKDBULFgsVFgsLFQwVDBULFQsWCxUMFQsWFgoWCwsWCxUWCxULCxYVBKFSNgoLFQwVFgsLFQwVDBULFRYLFgoMFRYLCxULFgsVDBULFRcKDBULFQwVFgoMFQwVCxUWCwsVDBULFgsVDBULFQwVCxYVCxYLCxUMFRYLFQsLFRYEoVI2CgsWCxUWCwsWCxULFgsVFgsWCwsVFgsLFQwVCxUMFQsVFwoMFQsWCxUWCwsVDBULFhULCxYLFQwVCxUMFQsWCxULFhYKFgsLFgsVFgsVCwwVFQAF3AAAAAAAAAAAAAAAAAA=/second_bedroom_window’: command not found
  • Failed to send ‘sgACATYKDBULFRYLCxUMFQsWCxUWCxYKDBUWCwsVCxYLFgoWCxYVCwsWCxULFgsWCxUWCxYKFgsLFQsWDBULFQwVCxUMFQwVFQsWCwsVFgsWCwsVFgoWBKFRNgsLFQwVFgsLFgsVCxYLFRYLFgoMFRYLCxULFgsWCxULFhULCxYLFQwVCxYLFRYLFQsWCwsVCxYMFQsVCxYLFQsWCxUWCxYLCxUWCxYKDBUWCxUEoVE2CwsWCxUWCwsVDBULFgsVFgsWCgwVFgsLFQsWCxUMFQsVFgsMFQsVDBULFgsVFgsWChYLCxYLFQsWCxULFgsVDBULFhULFgsLFhULFQsLFhYLFQAF3AAAAAAAAA==/secondwindow’: command not found

Having the same issue.
But it has been working in the past, so I guess it’s something related to one of the recent versions.

Use
service: switch.turn_on
entity_id: switch.2br_window_close

I’m not able to even do the first step, where I need to learn a new RF code from the app e-control app.

I see the breadlink enters in “learn mode”, but after keeping the button pressed, nothing happens…

I read everything about it, and I see no solution…

Anyone?
Thanks

If you read the thread I think is renamed to IHC app. The instructions however should be essentially the same. Read the comments in the thread. You definitely have to get the RF codes working outside of home assistant before you try and integrate home assistant. Sometime I will update the instructions further with the new app however I have a baby and I’m not currently needing to control anything with RF.

I have the save problem - nothing happens when learning RF codes. Learning IR -no problem. No idea what is going on but I have tried lots of RF remots and not one of them will learn with the broad link.

It just doesn’t work, not from any of the 2 apps available. I can use “ihc for EU”, and e-Control perfectly, with no probles, to copy an IR code but it’s just not possible to do a RF code copy.

The question is, the device have problems copying RF codes, but does it have problems sending the codes? If somehow we manage to copy a RF code with another device, or find the code on some webpage database, will be able to send the code?

I tried the e-control app and it doesn’t work well with latest version of android it was lagging and crashed while learning codes.

I just installed the IHC (Intelligent Home Center) app for android, and tried it now. I can confirm that it is working inside the app and the app can learn codes and the codes work inside the app. It took me 3 goes to learn a code that worked reliably.

It’s important to do the learn frequency first (press and hold) then when you learn the code do a very very brief tap on the remote, as brief as possible. Sometimes it takes a couple of goes to get it learn the correct code. If it doesn’t work cancel out then learn the frequency again (long hold) then learn the code (brief tap).

This is an alternative method (link below), however this method didn’t work for me personally.

I can also confirm that I can learn the RF code in home assistant using the IHC app, but it took me two goes to get it to work because the app crashed. I think if you have an old phone I’d go with the e-control app instead. It worked more reliably.

on the latest version of home assistant it has changed and now it looks like this

Can somebody guide on how to configure a blind shutter remote control in HA? I discovered my 3 codes (open, close, stop) already and have them in base64. BUT: what can I do with them now?

The only configuration in HA I have so far:

remote:
  - platform: broadlink
    host: IP_ADDRESS
    mac: MAC_ADDRESS

So how can I now manually add my codes here??

See examples

Try just with switches, but it is better to use scripts too because you can do a lot more with them. This is how I control my blinds:

This is my configuration.yalm:

switch:
  - platform: broadlink
    host: IP of the broadlink
    mac: 'XX:XX:XX:XX:XX:XX'
    timeout: 30
    type: rm
    switches:
      subir_persiana:
        friendly_name: "Subir las persianas"
        command_on: 'base 64 code for my blinds to come up (It is too long to put here)'
        command_off: 'same code'
      bajar_persiana:
        friendly_name: "Bajar las persianas"
        command_on: 'Code for going down'
        command_off: 'same code'
      parar_persiana:
        friendly_name: "Parar las persianas"
        command_on: 'code for stop'
        command_off: 'same code'
      

This goes on Scripts.yalm:

  subir_persiana:
    alias: Subir persiana 
    sequence:
      - service: homeassistant.turn_on
        entity_id: switch.subir_persiana
      - delay: 00:00:15
      - service: homeassistant.turn_off 
        entity_id: switch.subir_persiana

As you can see I used the same code in turn on and off, and then I directly removed the button in the script, if you don’t do this the switches remain in the last state, and you need to push them again to turn them off, I mean, you can put the stop command in the turn_off for each command, then when you press the button up it will go up, but you will need to press again the button in order to stop it or at least to leave it in the correct state if the blinds stop by themselves.

Then you need to add a button that uses the switch or the script, that’s all.

3 Likes

I have RM Pro +. I’m trying ladaowner steps, but with ihc application, till I have working solution, I couldn’t remove devices from ihc. Maybe e-control will not work. So trying to add new RF control button, when RF frequency is scanned, I try to learn from HA. This will learn always only IR remote. With RF nothing happens.
Learning RF codes from from Windows application wait in step 1/2. IR learning working.
Does anybody has working RF remote control center under Home Assistant solution? Thanks

I could never get IHC to work. Only e-control works using the built in HA commands

Follow these steps to the letter

  1. Reboot HA - very important
  2. In e-control app on icon add a new remote user-defined
  3. Click + icon
  4. Press save
  5. Long press new button
  6. Learn single
  7. Press “Sweap Frequency”
  8. Long press button on RF remote
  9. In HA goto dev tools/services
  10. Add server broadlink.learn and enter host: 192.168.0.242
  11. Press call service
  12. Short press button on RF remote

These are the steps used.

Thanks for this @kiwijunglist
@vpa, @ladaowner - I just got ihc on an iPhone 11 to work.
It took a bit of trying and I thought it wasn’t working. When I saw Mike’s post say he got it working but it took 3 tries I thought it might just be a bit tricky for some reason, so I persisted.
There’s no “long press” in the ihc app, but here’s what I did:

  • Install ihc and add Broadlink RM Pro+ device
  • Add an “RF remote” button (pick anything, TV play button for e.g.) then it automatically goes to learning the signal and asks you to hold down a button… here’s where it might be an issue… for me it sometimes said it had successfully learned the signal but I hadn’t pressed the button - so it must have been learning another signal (e.g. my energy monitor that uses RF). I cancelled and started again.
  • So next time, I held down my RF remote button and it said it had learned the frequency, so to tap the button to learn. Again, sometimes it said it had successfully learned before I pressed my button, so must have been learning something else… cancel and add button again in ihc.
  • When it didn’t automatically learn a non-button press, I called the broadlink.learn service from developer tools and pressed my RF button. One time, I got a nice flash on the Broadlink device so I knew it worked properly. Another time, it didn’t do this, but both times my code did show up in the HA UI.
  • I also had rtl_433 running with an SDR-RTL dongle, which was useful to see that my button presses worked and that my learned codes in the ihc app produced the same result as my actual RF device.
  • I then put these into the broadlink: switches in my config and all is working well. I can send the same commands as my physical device.

Hopefully this helps someone else trying this out.

What I now want is for the Broadlink to listen for RF button presses on my physical remote… but I think it can’t do this.

Quick point: the Broadlink device has to scan for frequency before learning a code on that frequency. I believe that’s why you have to run the “learn” service in HA in between these functions in the Broadlink app. Makes sense.

I’ve been trying the same, as I wrote, but when I call broadlink.learn service, learning process has been always changed, interrupted to IR command only.

I probably tried about 20 times, so maybe it just needs a little more persistence. If it doesn’t work and you don’t get a code, cancel and try again. Hopefully it works for you eventually.
(I didn’t need to do any restarting, except to get my switches working, not for learning.)