[WITHDRAWN - Use the new Broadlink integration by @tomw] NATIVE Broadlink RM/RM Pro/RM Mini/SP driver

Hello all,

I am using v0.50 with a just purchased off amazon BroadLink RM mini 3. I was able to get things working, except the learn function keeps erroring out almost immediately. I saw earlier in this thread that someone was having similar issues, but as best I can tell I don't know how he ended up resolving it. Any help is appreciated! See below for diagnostic info:

Hubitat C-7
Broadlink Device Manager (BETA) logs:

app:2572020-10-16 09:40:38.259 am debug(learnCodes) params [[learnDevice:C8F7424131D1, operation:learnIR]] learnStage [IDLE] learnResult [failed] newCodeName [null]

app:2572020-10-16 09:40:37.543 am warn(handle_learn_status) learnStage [IDLE] learnResult [failed]

app:2572020-10-16 09:40:37.538 am warn(handle_learn_status) received ir status [DEVICE] [IR_Status] [IDLE]

app:2572020-10-16 09:40:37.221 am debug(learnCodes) params [[learnDevice:C8F7424131D1, operation:learnIR]] learnStage [ERROR] learnResult [null] newCodeName [null]

app:2572020-10-16 09:40:36.232 am debug(learnCodes) params [[learnDevice:C8F7424131D1, operation:learnIR]] learnStage [ERROR] learnResult [null] newCodeName [null]

app:2572020-10-16 09:40:35.992 am warn(handle_learn_status) learnStage [ERROR] learnResult [null]

app:2572020-10-16 09:40:35.988 am warn(handle_learn_status) received ir status [DEVICE] [IR_Status] [ERROR]

app:2572020-10-16 09:40:35.270 am warn(handle_learn_status) learnStage [ Press button on IR Remote.] learnResult [null]

app:2572020-10-16 09:40:35.266 am warn(handle_learn_status) received ir status [DEVICE] [IR_Status] [Learning: Press button on IR Remote.]

app:2572020-10-16 09:40:35.094 am warn(learnCodes) Starting IR learn process with device [C8F7424131D1].

app:2572020-10-16 09:40:35.088 am debug(learnCodes) params [[learnDevice:C8F7424131D1, operation:learnIR]] learnStage [null] learnResult [null] newCodeName [null]

app:2572020-10-16 09:40:33.845 am info(listCodes) code [Dyson_Oscillate_ON]

app:2572020-10-16 09:40:33.842 am info(listCodes) code [Dyson_Oscillate_OFF]

app:2572020-10-16 09:40:33.839 am info(listCodes) code [Dyson_On]

app:2572020-10-16 09:40:33.836 am info(listCodes) code [Dyson_Off]

app:2572020-10-16 09:40:33.834 am info(listCodes) code [Dyson_LESS_AIR]

app:2572020-10-16 09:40:33.831 am info(listCodes)

app:2572020-10-16 09:40:33.806 am debug(importDeviceCodes)

app:2572020-10-16 09:40:33.794 am debug(CodesPage) params [null] editing [false] adding [false] newCodeName [null] AutomaticCodeImport [true]

app:2572020-10-16 09:40:29.385 am debug(MainPage) APP [v0.50 2020-05-10] debug [true] debugVerbose [true]

RM Mini 3 Log:

dev:15142020-10-16 09:40:37.469 am traceIR_Status: IDLE

dev:15142020-10-16 09:40:35.956 am traceIR_Status: ERROR

dev:15142020-10-16 09:40:35.953 am debugRM Mini 3 (V4) - parseDataIR) ERROR - Failed to retreive learn response data

dev:15142020-10-16 09:40:35.940 am debugRM Mini 3 (V4) - (parseDataIR) received description: index:00, mac:C8F7424131D1, ip:c0a801b3, port:50, type:LAN_TYPE_UDPCLIENT, payload:5AA5AA555AA5AA5500000000000000000000000000000000000000000000000079D4FBFF365FEE030900D1314142F7C801000000AFBE000090DD68CA45FFF2FAD00C25B14248C6C2

dev:15142020-10-16 09:40:35.795 am debugRM Mini 3 (V4) - (send_packet) completed

dev:15142020-10-16 09:40:35.791 am debugRM Mini 3 (V4) - (sendMessage) completed

dev:15142020-10-16 09:40:35.788 am debugRM Mini 3 (V4) - (sendMessage) sending packet to 192.168.1.179

dev:15142020-10-16 09:40:35.785 am debugRM Mini 3 (V4) - (sendMessage) Called sendMessage(192.168.1.179)

dev:15142020-10-16 09:40:35.753 am debugRM Mini 3 (V4) - (send_packet) Called send_packet( 192.168.1.179, 0x6A)

dev:15142020-10-16 09:40:35.745 am debugRM Mini 3 (V4) - (checkDataIR) Checking for IR code data

dev:15142020-10-16 09:40:35.230 am traceIR_Status: Learning: Press button on IR Remote.

dev:15142020-10-16 09:40:35.228 am debugRM Mini 3 (V4) - (parseDataIR) Entered LEARN Mode.

dev:15142020-10-16 09:40:35.219 am debugRM Mini 3 (V4) - (parseDataIR) received description: index:00, mac:C8F7424131D1, ip:c0a801b3, port:50, type:LAN_TYPE_UDPCLIENT, payload:5AA5AA555AA5AA550000000000000000000000000000000000000000000000008CD10000365FEE030800D1314142F7C801000000B6BE0000AC66BF176FE9A03DE2C90DADE4067CB2

dev:15142020-10-16 09:40:35.137 am debugRM Mini 3 (V4) - (send_packet) completed

dev:15142020-10-16 09:40:35.135 am debugRM Mini 3 (V4) - (sendMessage) completed

dev:15142020-10-16 09:40:35.132 am debugRM Mini 3 (V4) - (sendMessage) sending packet to 192.168.1.179

dev:15142020-10-16 09:40:35.129 am debugRM Mini 3 (V4) - (sendMessage) Called sendMessage(192.168.1.179)

dev:15142020-10-16 09:40:35.113 am debugRM Mini 3 (V4) - (send_packet) Called send_packet( 192.168.1.179, 0x6A)

dev:15142020-10-16 09:40:35.110 am debugRM Mini 3 (V4) - (learnIR) Attempting to enter IR learn mode...

dev:15142020-10-16 09:40:35.108 am trace(learnIR) Attempting to enter IR learn mode...

dev:15142020-10-16 09:40:33.826 am debugRM Mini 3 (V4) - (exportCodes) Exporting stored codes

"Current States" of RM Mini 3 Device:

  • IR_Status : IDLE
  • RF_Status : IDLE
  • deviceConfig : {"devType":24374,"hasAuth":true,"hasIR":true,"hasTemp":false,"IP":"192.168.1.179","MAC":"C8F7424131D1","Name":"[UNNAMED]","relayCount":0,"internalID":"01000000","isRM4":true,"cloudLocked":false,"devTypeName":"RM Mini 3 (V4)","isPro":false,"KEY":"328B9E244877C714B8526142B2A06A83","supported":true}
  • temperature : -100

Try This it worked for me when learning was not working for me with a new unit from amazon.

1 Like

That did the trick, thank you!!

1 Like

Just to confirm, does this work with rm4 (a way to not have it cloud locked) or should I just get an rm3?

@_RiC the plugin worked like a breezee however when I try to enter any of the RF codes manually into broadlink hubitat beta app it said format not recognized

Do the codes work from the e-control app and the plugin? Can you post some codes here? Maybe try the stable app not the béta app.
I don't have any rf devices to test out. So don't know how the codes look or if they have to be converted or maybe the problem is the rm pro or the broadlink hubitat app.

What you can do for the moment, buy a cheap android box or old phone or something that is always plugged in and running, run the rm plugin app on it, turn on run at startup, And use the hubitat http request to send the rf code. Untill you figure it out to run it directly from broadlink Hubitat app.

So I got the rm3 pro+ and have the device setup, but it takes me ~15-20 min to learn a single button for RF. 99% of the time I can complete the first learning step where you hold down the button, but it always fails at the second step where you repeatedly press the same button.

Is this similar for others or do i have a dud? I also have to hold the remote right next to the device.

Same here quite often. My rm3 (not the +) learns much better.

See above for alternative learning options if you have an Android device to use the rm plugin app. I use that app but not for learning for hubitat (yet) so can't be sure you can copy and paste the code it learns but I'd imagine it should work.

1 Like

To make this easier for those who need the update, I have added the code change in a new version that can be found here:

https://drive.google.com/file/d/1ePQ71UTXjypOo6Htwp21x_NhovtL1wmr/view?usp=sharing

https://drive.google.com/file/d/147L0Xr7slAy7FSIkhj4OCIsZb1JVeu_o/view?usp=sharing

4 Likes

Did anyone ever get a fix for RF codes that cannot be recognized ? I have the following that I could never import into the app

b201b0041f0d09220a220aa61f0c0a22200c0a220a221f0d09231f0d09220a220a220a22092309231f0d09220a220a230922200c09230923092309231f0d1e0d0a22092309a71f0c0a221f0d09230922200c0a22200c0a2209230923092309220a231f0c0a220a22092309231f0c0a220a220a220a221f0d1f0d09220a220aa61f0d09231f0c0a220a221f0d0a221f0d0923092309220a220a220a22200c0a220923092309231f0c0a220a220a220a221f0d1f0d09220a22075d080a082e070b072f070b072f070a082e080a082e080a082e080a072f080a072f072e080a082e080a082e080a082e070b082e070b070b072f070b072f072e070b080a082f070a082e082e070b070b072f072e080b072e080b070a082e082e070b080a082e070b072f072e080b072e080a080a082e080a082e080a082e080a072f0700016a085c080a072f070b072f070b072f070b072f070a082e080a082e080a082e070b072f072f070a082f070a082e080a082e070b082e070b070b072f070b072f072e080a080a082e080a082e082d080b070b072f072e080b072e080b070a082e082e070b070b082e070b072f072e080b072e080b070a082e080a082e080a072f070b072f0700016a085c080b072e080a072f070b072f070b072e080a082f070a082e080a082e080a082e082d080a082e080a082e080a082e080a082e080a080a072f080a072e082e080b070a082f070a082f072e070b080a082e082e070b072e080b070b072e082e080a080a082f060b082e072e080b072e080b070b072f070b072e080a082e080a072f0700016b07000134082d082d080a080b070b072e072e072e072e070b070b080a082d082d082d082d080a080b072e072e070b070b082d080a082d082d082d070b080b072e070b080a072e082d080a082e072e070a080b072e070b070b082d082d080a080a080b072d080b072e072e070b070b080a082d082d082d08000134072e072e070b070b070b082d082d082d082d080a080b070b072e072e072e082d080a080a082d082d080a080b072e070b082d082d072e070b080b072d080a080b072e072e070b072e082d070b080a082d080a080a082e072e070b070b070b082d080a082e072d080b070b070b082d072e082d08000134072e072e070b070b080a072e082d082d082d080a080b070b072e072e072e072e070b070b082d082d080a080a082e070b072e072d082d080b070c072d080a080b072d082d080b072e072e070b070b082d080a080a082d082d080b070b070b072e070b082e072d080a080a080b072e072e072e0c0001560c20200c0c200c200c20200c0c211f0c0c200c200c20200c0c200c200c20200d0b200c200d200b21200c200c0c20200c0c0001570c20200c0c200b210c1f210c0c20200c0c1f0d200c20200c0c200c200c20200c0c200c200c200c20200c210b0d20200c0c0001560c20200c0c200c200c20200c0c20200d0b200c200c20200c0c200c200c20200c0c200c200c200c21200c200c0c20200c0c0001570c20200c0c1f0d200c1f210c0c1f210c0c1f0d200c20200c0b200c210c1f210c0c200c200c200c20200c200c0c20210c0c0001560c20200c0c200c200c20200c0c20200c0c200c200c20200c0c200c200c20200c0c200c200c200c20210c200c0c20200c0c0005dc0000000000000000

I have by hacking the App groovy and commenting out the code verification checks :wink: May not be a great idea, but it works for me. Edit Broadlink_App_v0.50.groovy

  1. Comment out the whole if statement starting on line 134:

     	if ((addCode.take(4) == "2600") || (addCode.take(4) == "B200") || (addCode.take(4) == "D700")) {
     		log_info("(CodesPage) Code in correct Broadlink format")
     	} else {
     		log_info("(CodesPage) Code [${codeName}] not added - unrecognized code format")
     		addCode = null
     		errorPage = dynamicPage(name:"CodePage", title: oTitle, install: false, uninstall: false){
     			section("<h2>Code ERROR</h2>"){
     				paragraph ""
     				paragraph "<h2>Code not added.</h2>"
     				paragraph "Code format not recognized"
     			}
     		}
    
  2. Add a "return true" on line 945, i.e. after:

def validateCode(codeData) {

I hacked the code a little further I couldn't find the line but thanks to you I have.

I went with adding || (addCode.take(4) == "B201") to line 134 so:

if ((addCode.take(4) == "2600") || (addCode.take(4) == "B200") || (addCode.take(4) == "D700") || (addCode.take(4) == "B201")) {
2 Likes

hello, i have months lurking this threat while i didnt have a broadlink device, i set to buy one and now im lurking a lot more these weeks, first i know is withdrawn, and all good so far with my device but i want to add RF roller shutters, since learning RF on this app is hard, i went and got on a raspbian pi the broadlink manager app running as a service, now i got all my codes saved, and they all work when i send them, but i cannot store them on the remotes saying "code format not recognized" my code on hex starts with "b1c0" should i add to the code like the post above?

Sure! Here you have two codes from the list i'm intending to upload. If you succeed let me know which version of the app and driver you are using.

Here are the codes:

  1. b2191c000b0b17160b160b160b0b17160b0b17160b0b17160b0b17160c00018a000000000000000000000000

  2. e90a4200df090916160909161609160909160916091609161609160909160916160909161
    6090916160909161609160916091609160909161609091616091609160909161609

I'd say yes, just edit the code. It should work, I guess the original code was to prevent non compliant codes, but didn't factor for all compliant codes. See how you go

I tried adding another OR but did not allow me to save the code. Then replaced one of the codes (the last one) and allow me to save, however the app provide me the same response regarding code not valid blablablablabla

Do you need to change something else in the code besides if ((addCode.take(4) == "2600") || (addCode.take(4) == "B200") || (addCode.take(4) == "D700") || (addCode.take(4) == "B201")) { ????

In that code I can't see where you put your code. I think it should be

if ((addCode.take(4) == "2600") || (addCode.take(4) == "B200") || (addCode.take(4) == "D700") || (addCode.take(4) == "B1C0")) {
 		log_info("(CodesPage) Code in correct Broadlink format")

essentially what the code is saying (Ithink) is that if the RF code begins with 2600 or B200 or D700 or B1CO then allow the code to be entered else give error message. The reason I have B201 in there is that my RF code began with B201.

I did exactly that but seems to have another restriction elsewhere. I just copyed the code on your previous message as a reference. What I did was to change the B200 with b219. @_RiC did you have a chance to test the codes on your hub?

send me your RF code let me have a go

Try this two