Broadlink binding for RMx, A1, SPx and MP. Any interest?

Great work!!! Applause! :slight_smile:
At the moment I can see only one bug after adding A1 and RM3 PRO.
When You change some settings in Configuration->Things->Broadlink RM or A1, for example, activate channel or change Thing location, status changes to Status: OFFLINE - COMMUNICATION_ERROR Could not control device IP.

The only way to get rid of this error is to add Thing again from the scratch.
I use OpenHab temporarly installation on Windows so maybe it has something to do only with my configuration - I really can’t tell.

Anyway this binding rocks!!!

ps. If You need any logs or need some more information to replicate this error just let me know.

1 Like


Thanks Bartosz.

I’ll see if I can re-produce it on my system tomorrow and let you know if logs would help.


1 Like

Very nice work! The only thing is i dont know how to obtain the keys to actually get it working. I don’t see why posting a link to another guide would get any trouble, since you’re not releasing the reverse engineered protocol, or releasing anything by yourself. I think what im saying is that its like looking for a needle in a haystack if you dont know what you’re looking for.

pm sent

request PM as well. Thanks

I was able to reproduce the bug reported. As you stated, the status changes to OFFLINE if changes are made to a thing. I’ll have a look at it later tonight and upload a new version soon.

While waiting for a fix, the workaround is as you mentioned to delete and add re-add the thing.


I’m not finding this via googling … can anyone help, please?

I use a RM3 Mini (from memory) with OH, and it was a pain to setup but works a treat now. I don’t use the python script, nor the binding (though I will if/when it comes out). I use the tcp/udp binding and careful map files for the commands to send to the Mini (it was a royal pain to prepare the signals for the OH map file)

1 Like

This is looking really good, can’t wait for my equipment to arrive so I can test :slight_smile:


I understand that some of you are having problems with getting the RM Bridge site to grab your IR codes for the RM3/mini. I believe it says somewhere on the site that only RM1/2 is supported. However, since RM3 uses the same protocol you can make the site work by adding your RM3 manually. This is what I did a few minutes ago to add my RM3.

Installed RM Bridge on my phone, and entered the IP address as shown on the mobile screen. Remember to click the circle once to make it start.
Clicked Load Devices on the site
Entered RM3 (name field), mac address (MAC field) and RM2 (type field)
Clicked Add Manually button, and it showed up in the device field under.

I had try a few times before it worked. I used Chrome on Windows 10.


1 Like

Thanks Cato, that just worked for me. :slight_smile:

(I guess it hadn’t worked before because I’d also put RM3 in the type field).

A couple of probably-dumb questions in trying to get this set-up…

I can get a number of different results when capturing the same button from my remote control, so can I just check should i be getting exactly the same code every time from the same button? Or is it variable (perhaps only variable for some buttons)?

In Cato’s instructions, in step 7 there’s the item and sitemap files examples, and step 6 just above there’s the ‘TV_POWER_ON =’ example for the map file. Can they be used exactly as they are (tho with the map file using the tv on code i’ve captured from my remote control)?

Thanks in advance for any replies.


Under you can find the latest build, beta2. Changes since previous version:


  • Devices went offline if changes were made to its configuration


  • Enabled support for the following smart sockets: sp1, sp2, sp3, mp1 and mp2
  • Added support for several OEM devices
  • Tweaks and minor fixes
  • Added some code to support the range of Broadlink Alarm devices. Not yet enabled.

As before the support for smart sockets is untested and such may not work.

Download link:



Everything seems to be working well. Thing doesn’t go offline like it did.

Great. Thanks for the update.

Please let me know if you find any bugs or have ideas for additional functionality.


I need help as well. Thanks.

Its may be too difficult but if you could integrate the learning code function into the jar so that it would be possible to manually search for a thing which would trigger the learning function on the broadlink. I have no problem with the current setup however to masses it would be beneficial to not require an intermediate step (ie rm bridge on phone). That would make this binding perfect. I must say that I am very happy with the product thus far as this simplifies my setup and doesn’t require my rm tasker plugin any longer. Thanks for the hard work.

Just got an A1. Another feature that would be nice is to have the binding report either Temperature in Celsius or Fahrenheit just like you can change with zwave devices. Obviously a rule can solve this but it would be nice.

rule "Convert Broadlink A1 Temp to F"
Item BL1TemperatureC changed
var Number temp
if (BL1TemperatureC.state instanceof DecimalType) temp = BL1TemperatureC.state as DecimalType
var Number temp2 = (temp * 1.8) + 32

Still seeing an issue upon rebooting openhab where is may or may not come back online. If I delete the key and IV then save it, and then re enter them it works again.

Hi @Cato_Sognen. Im having a few issues with the binding working and then crashing. Heres error message

2017-07-08 11:58:50.435 [ERROR] [org.openhab.binding.broadlink       ] - FrameworkEvent ERROR - org.openhab.binding.broadlink
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.broadlink [208]
  Another singleton bundle selected: osgi.identity; osgi.identity="org.openhab.binding.broadlink"; type="osgi.bundle"; version:Version=""; singleton:="true"

	at org.eclipse.osgi.container.Module.start([org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel([org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel([org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel([org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent([org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent([org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent([org.eclipse.osgi-3.10.101.v20150820-1432.jar:]
	at org.eclipse.osgi.framework.eventmgr.EventManager$[org.eclipse.osgi-3.10.101.v20150820-1432.jar:]