Broadlink Integration - add support for RM4 Mini

No. I use HASSIO and used ssh to access docker instance. But, for this works, i need to use community Web and Terminal addon and not the oficial ssh addon.

Thanks, will install those and give it a try!

Sorry, which addon? I only found ssh and terminal addon…

Thanks,
Paolo

SSH & Web Terminal, is avaliable in hacs, i think.

Thanks! Already installed!

Hmm…something fishy going on with 2020.12 updates… :tropical_fish:
I lost my RM4c mini 0x6539 after the update from 2020.12.0 to 2020.12.1…
Even restoring a snapshot did not bring it back.

Had to re-add the line once more to restore it (i did not have to re-install the integration or re-learn the IR codes)

I have a RM4C Mini with device type 0x6539 which was saying it was unsupported in homeassistant.
I spent hours reading many threads and putting together all the information which I learnt.

I found that device type 0x6539 was not in the current version of homeassistant (at the time of writing this post). I needed to update the file containing the supported device types to allow the Broadlink integration to work with the device.

I managed to find the file which is located in the homeassistant docker container on my installation.

You can either plug in a monitor and keyboard to your Pi or setup host SSH on port 22222 using the instructions here. Debugging the Home Assistant Operating System | Home Assistant Developer Docs

Once you have managed to get to the host and have a shell type:

login

. You should be on the hypervisor OS now. If you type:

docker ps

it will show you all the containers running on your host and you will see one called homeassistant.

If you now type:

docker exec -it homeassistant bash

you will end up in a bash shell inside the homeassistant docker container.

Now you can change to the following directory:

cd /usr/local/lib/python3.8/site-packages/broadlink

In this directory will be a file called "__init__.py "
I used vi to edit this file:

vi _init_.py

I added the following line under the SUPPORT_TYPES section

0x6539: (rm4, “RM4C mini”, “Broadlink”),

Now write and quit the file to commit your changes. You should now restart your homeassistant instance which will read in the new file and discovery should find your new Broadlink RM4C mini which has a device type of 0x6539.

After following this method I have found the new learning and sending functionality in the recent update for the Broadlink integration amazing. Thanks for the devs for all their hard work in the recent release.

I hope this post helps collate information I gathered from a number of different threads to help someone with the same issue.

5 Likes

@Jamezz98 An exact duplicate of what I said :wink:

Thanks @aceindy. I must somehow missed your post, apologies. :slight_smile:

I just noticed that it will NOT survive a core update (but the configuration does) until the pull request on the BroadLink source has been committed…

I have not tried the latest core update yet since i made the change just in case it removed it. But if i already have my device configured through the integration now, will it matter if the device type is no longer in the file?
Once configured will it keep working anyway?

Not here…my init.py was reset to default,
That resulted in my rm4c not able to load until I re-added the line again
(you can see it fails in logs)
However, once I re-added the line, everything worked again as before the upgrade :wink:

I have to say that after the reboot (several reboots) the lines I added in the init.py are still there.
I added the lines in the middle of the file…

Reboot seems to be ok…core update not…:wink:

Ja… It’s so uncomfortable to backup and restore the init.py at every update, like the today one!

Hmm…same same here with 2029.12.2

Thinking aloud, i think it is possible to:
-clone the official broadlink repository,
-add the missing line for RM4C mini
-add this repository (manually or using HACS) to custom_components

Will try this when i have time (and share the github url)

Hmm…sorry…can’t find the init.py file, so no go for now

1 Like

For those who cannot find the __init__.py file, especially on HassOS, I managed to solve the issue by following the advice found at https://github.com/home-assistant/core/issues/42983:

  1. Open Home Assistant and install the “SSH & Web Terminal” add-on (NOT the original SSH add-on).
  2. Disable Protection mode
  3. Open the Terminal web UI
  4. Enter: docker exec -it homeassistant /bin/bash
  5. Enter: pip3 install --upgrade git+https://github.com/mjg59/python-broadlink.git --no-deps
  6. Restart Home Assistant.

Your newer device should now be recognized by the Broadlink integration. It works for 0x6539.

9 Likes

Esto funciono perfecto para mi!

Muchas gracias Motik68

1 Like

Method of editing the init.py also worked for me with a RM4C thanks.

If Motik68’s solution doesn’t work for you after updating to the 2021.3.4 version, try the solution from here: https://github.com/home-assistant/core/pull/47779#issuecomment-798806047
It installs the broadlink library from another repo:

  1. Open Home Assistant and install “SSH & Web Terminal” add-on
  2. Disable Protection mode
  3. Click “Terminal” on the sidebar and install the patch.
docker exec -it homeassistant /bin/bash
pip3 install git+https://github.com/felipediel/python-broadlink.git --force-reinstall --no-deps
  1. Restart the server.
5 Likes