Broadlink RM4C Mini "not supported"?

Which installation method do you use?

Well, finding the correct __init__.py belonging to the Broadlink integration is obviously mandatory since 0x520D has to be added into that very file. Be careful which file you edit because there might be several files with the same name on the system.

Access your HA through SSH and find that file to edit it accordingly or simply wait for an update to the integration itself.

I will keep searching. thank you!

I am assuming that the reason that I can not find the init.py file so I can add the 0x520D is simply due to the fact that the Integration refuses to do the initial install due to the fact that the IP address/device that I am trying to point it to is a device that it barks “Not Supported”. Since this is the first Broadlink that I am trying to install and the Integration refuses to install then this places me in a catch 22 situation unless there is a way to fake it out to install the integration.

It is __init__.py but not init.py (mind the two prepending and the two appending underscores).

Understood on the file name. Ignore my Typo in the previous statement. I am assuming right now that the file does not yet exist because I have not had success in installing a Broadlink prior to this. I also assume that if I had previously installed an RM4 Pro then the integration would exist and therefore the __init__.py would exist to insert the 0x520D into the file. Feel free to correct me if you feel that my speculation is not viable. Again, Thank you Tamsy for your attempts to assist.

Although not yet installed (activated) Broadlink’s __init__.py should be avaiable on a standart HA Supervised installation. The problem when searching is just those many __init__.py's all over the place.

Do from cli:

sudo locate broadlink | less

and check the results line by line until you come across the directory “broadlink” like:
/var/lib/docker/overlay2/<looooong string>/diff/usr/local/lib/python3.10/site-packages/broadlink/
and:
/var/lib/docker/overlay2/<looooong string>/merged/usr/local/lib/python3.10/site-packages/broadlink/__init__.py

Inside those you will find the file __init__.py to edit.

( :point_up_2:t3: since I have have not done this before I don’t know which of the above __init__.py's you have to edit. Just try 1by1, it should work).

You can also do the following to find Broadlink’s __init__.py:

cd /var/lib/docker/overlay2
sudo find . -type f -exec grep -l "rm4mini" {} +

Good luck and please let us know whether you have finally succeeded.

Getting closer Thanks to your hints and guidance. I found the __init__.py file . It was located in the /usr/lib/python3.10/site-packages/broadlink directory.

The bad news is that the 0x520D entry is in the file. Now the next thing that I will need to validate is that the version of my IR Unit is indeed the 0x520D. My unit that was actually sent from AliExpress is the BestCon RM4C mini. I speculate that the unit is possibly not identifying as this BroadLink RM4C mini. Now off to address the next piece of this mystery in why the integration is reporting that the unit is “Not supported” Thanks again, Tamsy. I appreciate the time that you have spent with me on this issue.

UPDATE: The system Logs are reporting “Unsupported device: 0x520d” So, it appears it identifies the Unit as a 0x520D.

1 Like

I’m in the same boat with a 0x520d:

Logger: homeassistant.components.broadlink.config_flow
Source: components/broadlink/config_flow.py:114
Integration: broadlink (documentation, issues)
First occurred: November 28, 2022 at 21:54:58 (3 occurrences)
Last logged: 08:59:43

Unsupported device: 0x520d. If it worked before, please open an issue at https://github.com/home-assistant/core/issues

I’ve got a BroadLink version on its way to determine if that is Soli the issue with the BestCon version. It’s worth investigating my speculation at this point until I can find a way to enter the BestCon version into the .py file. I will report back my findings when I get the BroadLink version in this week.

Forgot to mention I got the BestCon version. Let me know if I can be of any help @johnehowe !

Just received the Broadlink (Not knockoff BestCon) and it integrated flawlessly. More to come later… I am not giving up on the BestCon; just simply not admit defeat :slight_smile: However, I am glad that I have a solution moving forward while I continue to beat my head against the BestCon knockoff.

1 Like

Just when I thought I was out of the woods over this. Now, I am getting the following errors in Home Assistant. I know the Broadlink device is working natively, because I was able to teach it a new remote and command in the Broadlink app. (Testing purposes only). Yes, I do have it unlocked in the Broadlink app.

Logger: homeassistant.components.broadlink.remote
Source: components/broadlink/remote.py:301
Integration: Broadlink (documentation, issues)
First occurred: 4:22:13 PM (2 occurrences)
Last logged: 5:40:12 PM

Failed to learn ‘power’: No infrared code received within 30.0 seconds

Don’t register the remote to the Broadlink cloud. Just do the initial setup through the Broadlink app on your phone to connect the remote to your WiFi. When you see the remote is within your LAN stop using the official Broadlink app on your phone and continue the setup through HA.

Also learning IR/RF commands through HA is somehow not very reliable and often produces incorrect codes. I use Broadlink Manager for learning commands. More about the latter here.

Thank you Tamsy, Valued input especially on the code learning process. In this case, the issue turned out to be that the Unit itself only worked for a hot minute (fair 5 minutes) until failing. I validated this by eventually factory resetting and going raw on the Broadlink App and it still refuses to learn any codes even within the Broadlink app which it did originally when I first tested it. When I first place it into learn mode, the light turns on but nothing. It sees no IR signals coming into the unit. I have Amazon replacing it for a new unit. When I get this in, then hopefully I will inch forward a little more.

Has this been fixed with the new release?
I won’t be able to test it for a few days…

Looking at the code inside __init__.py it looks like the devs have added device-id 0x520D to the broadlink integration with Home Assistant 2022.12.0:

<snip>

    rm4mini: {
        0x51DA: ("RM4 mini", "Broadlink"),
        0x5209: ("RM4 TV mate", "Broadlink"),
        0x520C: ("RM4 mini", "Broadlink"),
        0x520D: ("RM4C mini", "Broadlink"),
        0x5211: ("RM4C mate", "Broadlink"),
        0x5212: ("RM4 TV mate", "Broadlink"),
        0x5216: ("RM4 mini", "Broadlink"),
        0x521C: ("RM4 mini", "Broadlink"),
        0x6070: ("RM4C mini", "Broadlink"),
        0x610E: ("RM4 mini", "Broadlink"),
        0x610F: ("RM4C mini", "Broadlink"),
        0x62BC: ("RM4 mini", "Broadlink"),
        0x62BE: ("RM4C mini", "Broadlink"),
        0x6364: ("RM4S", "Broadlink"),
        0x648D: ("RM4 mini", "Broadlink"),
        0x6539: ("RM4C mini", "Broadlink"),
        0x653A: ("RM4 mini", "Broadlink"),
    },

<snip>

:+1:t3: :clap:t3: :+1:t3:

Overall supported devices as per Home Assistant 2022.12.0:

SUPPORTED_TYPES = {
    sp1: {
        0x0000: ("SP1", "Broadlink"),
    },
    sp2: {
        0x2717: ("NEO", "Ankuoo"),
        0x2719: ("SP2-compatible", "Honeywell"),
        0x271A: ("SP2-compatible", "Honeywell"),
        0x2720: ("SP mini", "Broadlink"),
        0x2728: ("SP2-compatible", "URANT"),
        0x273E: ("SP mini", "Broadlink"),
        0x7530: ("SP2", "Broadlink (OEM)"),
        0x7539: ("SP2-IL", "Broadlink (OEM)"),
        0x753E: ("SP mini 3", "Broadlink"),
        0x7540: ("MP2", "Broadlink"),
        0x7544: ("SP2-CL", "Broadlink"),
        0x7546: ("SP2-UK/BR/IN", "Broadlink (OEM)"),
        0x7547: ("SC1", "Broadlink"),
        0x7918: ("SP2", "Broadlink (OEM)"),
        0x7919: ("SP2-compatible", "Honeywell"),
        0x791A: ("SP2-compatible", "Honeywell"),
        0x7D0D: ("SP mini 3", "Broadlink (OEM)"),
    },
    sp2s: {
        0x2711: ("SP2", "Broadlink"),
        0x2716: ("NEO PRO", "Ankuoo"),
        0x271D: ("Ego", "Efergy"),
        0x2736: ("SP mini+", "Broadlink"),
    },
    sp3: {
        0x2733: ("SP3", "Broadlink"),
        0x7D00: ("SP3-EU", "Broadlink (OEM)"),
    },
    sp3s: {
        0x9479: ("SP3S-US", "Broadlink"),
        0x947A: ("SP3S-EU", "Broadlink"),
    },
    sp4: {
        0x7568: ("SP4L-CN", "Broadlink"),
        0x756C: ("SP4M", "Broadlink"),
        0x756F: ("MCB1", "Broadlink"),
        0x7579: ("SP4L-EU", "Broadlink"),
        0x757B: ("SP4L-AU", "Broadlink"),
        0x7583: ("SP mini 3", "Broadlink"),
        0x7587: ("SP4L-UK", "Broadlink"),
        0x7D11: ("SP mini 3", "Broadlink"),
        0xA569: ("SP4L-UK", "Broadlink"),
        0xA56A: ("MCB1", "Broadlink"),
        0xA56B: ("SCB1E", "Broadlink"),
        0xA56C: ("SP4L-EU", "Broadlink"),
        0xA589: ("SP4L-UK", "Broadlink"),
        0xA5D3: ("SP4L-EU", "Broadlink"),
    },
    sp4b: {
        0x5115: ("SCB1E", "Broadlink"),
        0x51E2: ("AHC/U-01", "BG Electrical"),
        0x6111: ("MCB1", "Broadlink"),
        0x6113: ("SCB1E", "Broadlink"),
        0x618B: ("SP4L-EU", "Broadlink"),
        0x6489: ("SP4L-AU", "Broadlink"),
        0x648B: ("SP4M-US", "Broadlink"),
        0x648C: ("SP4L-US", "Broadlink"),
        0x6494: ("SCB2", "Broadlink"),
    },
    rmmini: {
        0x2737: ("RM mini 3", "Broadlink"),
        0x278F: ("RM mini", "Broadlink"),
        0x27C2: ("RM mini 3", "Broadlink"),
        0x27C7: ("RM mini 3", "Broadlink"),
        0x27CC: ("RM mini 3", "Broadlink"),
        0x27CD: ("RM mini 3", "Broadlink"),
        0x27D0: ("RM mini 3", "Broadlink"),
        0x27D1: ("RM mini 3", "Broadlink"),
        0x27D3: ("RM mini 3", "Broadlink"),
        0x27DC: ("RM mini 3", "Broadlink"),
        0x27DE: ("RM mini 3", "Broadlink"),
    },
    rmpro: {
        0x2712: ("RM pro/pro+", "Broadlink"),
        0x272A: ("RM pro", "Broadlink"),
        0x273D: ("RM pro", "Broadlink"),
        0x277C: ("RM home", "Broadlink"),
        0x2783: ("RM home", "Broadlink"),
        0x2787: ("RM pro", "Broadlink"),
        0x278B: ("RM plus", "Broadlink"),
        0x2797: ("RM pro+", "Broadlink"),
        0x279D: ("RM pro+", "Broadlink"),
        0x27A1: ("RM plus", "Broadlink"),
        0x27A6: ("RM plus", "Broadlink"),
        0x27A9: ("RM pro+", "Broadlink"),
        0x27C3: ("RM pro+", "Broadlink"),
    },
    rmminib: {
        0x5F36: ("RM mini 3", "Broadlink"),
        0x6507: ("RM mini 3", "Broadlink"),
        0x6508: ("RM mini 3", "Broadlink"),
    },
    rm4mini: {
        0x51DA: ("RM4 mini", "Broadlink"),
        0x5209: ("RM4 TV mate", "Broadlink"),
        0x520C: ("RM4 mini", "Broadlink"),
        0x520D: ("RM4C mini", "Broadlink"),
        0x5211: ("RM4C mate", "Broadlink"),
        0x5212: ("RM4 TV mate", "Broadlink"),
        0x5216: ("RM4 mini", "Broadlink"),
        0x521C: ("RM4 mini", "Broadlink"),
        0x6070: ("RM4C mini", "Broadlink"),
        0x610E: ("RM4 mini", "Broadlink"),
        0x610F: ("RM4C mini", "Broadlink"),
        0x62BC: ("RM4 mini", "Broadlink"),
        0x62BE: ("RM4C mini", "Broadlink"),
        0x6364: ("RM4S", "Broadlink"),
        0x648D: ("RM4 mini", "Broadlink"),
        0x6539: ("RM4C mini", "Broadlink"),
        0x653A: ("RM4 mini", "Broadlink"),
    },
    rm4pro: {
        0x520B: ("RM4 pro", "Broadlink"),
        0x5213: ("RM4 pro", "Broadlink"),
        0x5218: ("RM4C pro", "Broadlink"),
        0x6026: ("RM4 pro", "Broadlink"),
        0x6184: ("RM4C pro", "Broadlink"),
        0x61A2: ("RM4 pro", "Broadlink"),
        0x649B: ("RM4 pro", "Broadlink"),
        0x653C: ("RM4 pro", "Broadlink"),
    },
    a1: {
        0x2714: ("e-Sensor", "Broadlink"),
    },
    mp1: {
        0x4EB5: ("MP1-1K4S", "Broadlink"),
        0x4EF7: ("MP1-1K4S", "Broadlink (OEM)"),
        0x4F1B: ("MP1-1K3S2U", "Broadlink (OEM)"),
        0x4F65: ("MP1-1K3S2U", "Broadlink"),
    },
    lb1: {
        0x5043: ("SB800TD", "Broadlink (OEM)"),
        0x504E: ("LB1", "Broadlink"),
        0x606E: ("SB500TD", "Broadlink (OEM)"),
        0x60C7: ("LB1", "Broadlink"),
        0x60C8: ("LB1", "Broadlink"),
        0x6112: ("LB1", "Broadlink"),
        0x644B: ("LB1", "Broadlink"),
        0x644C: ("LB27 R1", "Broadlink"),        
        0x644E: ("LB26 R1", "Broadlink"),
    },
    lb2: {
        0xA4F4: ("LB27 R1", "Broadlink"),
        0xA5F7: ("LB27 R1", "Broadlink"),
    },
    S1C: {
        0x2722: ("S2KIT", "Broadlink"),
    },
    s3:  {
        0xA59C:("S3", "Broadlink"),
        0xA64D:("S3", "Broadlink"),
    },
    hysen: {
        0x4EAD: ("HY02/HY03", "Hysen"),
    },
    dooya: {
        0x4E4D: ("DT360E-45/20", "Dooya"),
    },
    bg1: {
        0x51E3: ("BG800/BG900", "BG Electrical"),
    },
}

I confirmed resolution for me today. I received an actual working Broadlink RM4mini today and have validated full resolution. For my situation, it was a combination of lack of support for the knockoff BestCon and the fact that my first Broadlink only worked for a hot minute before failing. I have not gone back (yet) to test the BestCon. I am guessing no change with the BestCon knockoff but I will test after I install the 2022.12.0.

I tested 6 of bestcon broadlink and…
THEY WORK!!

I have now confirmed resolution with the BestCon knockoff after I installed HA 2022.12.1 version of Home Assistant. RESOLVED!!

1 Like

I have a BestCon RM4C mini but this device is not supported. That is what the integration gives as error. My logs give: Unsupported device: 0x507a. If it worked before, please open an issue at Issues · home-assistant/core · GitHub.
Can someone tell me what to do?