Broadlink IR/RF remotes integration (RM3 Mini, RM Pro, RM4 Mini/Pro)

yes that's what I thought, been trying that all afternoon, but if there is a second code after a 5 seconds continuous press say it's hard to capture as the learn rf tends to get the first one, I've tried pressing learn rf just as it goes into raise/lower but no luck, I'm now looking through the logs to see if it captured a different codes. Also while pressing the original remote the display flashes as if its sending the same code very fast continuously. I've tried sending the code through hubitat by pressing send lots of times and I get warning I have lots of codes queued , but the blind just seeems to think I'm pressing to tilt...

You could play with the timing to try to catch the long press code. It sounds like your theory is that it sends a short press code and later a long press code?

Press and hold the button on the original remote before you press learnRF. Wait long enough for the short press code to have been sent. Then hit learnRF and see if you can catch the long press code when it is sent.

Where do you see this warning?

in the logs of the device..
here's one: Im guessing it from me constantly stabbing the send save code..

" 2023-01-18 04:18:12.361 PM[warn]/logs?tab=past&deviceId=17#)device 17 has 24 pending hub commands"

(I've removed the ip address the forum disallowed it.

That isn't a log print from my code. I guess it may be something the hub is sending directly, like some of the excessive events or hub load type of warnings.

1 Like

I can't just find any of this - "Use device type Actuator to select the device" - where and in what part of hubitat is this?
I can only see the broadlink commands in the device listing and I can only assess them in a dashboard using a button, but can't seem to find how to use them anywhere else (in the rule machine)
i.e.
"you have to use the custom action / custom command types in Rule Machine."
in rule machine I can't find this and the things I've tried just dont show and neither does the broadlink device
thanks - its probably obvious but I'm lost

In Rule Machine, you define the triggers and actions for the rule.

The custom action > custom command part is the action itself. So, go to actions and it will ask you which device capability to use. Select Actuator.

Then you'll see the different types of actions to choose from, which is where you can select the custom action option.

Quick question. Have managed to install everything and it's working so far as I can tell but is there a way to pull the stored codes from the Broadlink to the Hubitat?

Apologies if it's been posted before but health issues knocking me out at the moment.

Using an RM4PRO.

Do you mean codes you learned in the Broadlink mobile app before you integrated it with Hubitat?

Unfortunately, no, you'll have to re-learn them as there is no way to extract the saved codes.

OK, that's what I thought. I'll probably get around to it eventually, maybe.

What sort of components are you using? And are you primarily using IR or RF (or both)?

I have wondered whether it makes sense to find a way to share codes among users here. Many people may have captured their own codes that are useful to others as they can be imported by my integration.

And of course there are many online repositories of codes that can often be massaged to work with this integration.

1 Like

oh boy - not sure why I didn't find that.
Thanks. got my first rule installed and working :slight_smile:

1 Like

I have both RM4 Pro and RM4 mini. The RM4 mini reports both temperature and humidity in Hubitat. The RM4 Pro reports neither temperature nor humidity. The Broadlink App shows temperature and humidity for both devices. Any ideas?

Which variant of the RM4 Pro do you have? Mine is the one that has the "bulge" in the USB cable which contains the sensors. Maybe yours reports temperature and humidity differently somehow.

The way my code is written is that a value of exactly 0 for either reading will prevent it from being reported when you hit refresh() on the driver. This was the behavior I saw when I swapped out for a cable that didn't have the sensors included.

If you enable debug logging on the virtual device and then hit the Refresh button, what shows up in the log? I'm specifically looking for a debug print like this: "sensorResp =..."

I do have the special cable. Refresh did the trick. sensorresp showed in the log. Thank you.

1 Like

Good stuff. FYI, I didn't set the Refresh up to poll on a regular interval, because I didn't figure it would be a core function for most people.

So, you have to Refresh whenever you want to get an updated reading on the sensors. You could do this in a timed rule or automation (just Refresh periodically), or you could do it as the first step in some other automation if you need the current sensor readings as an input.

Just know that it won't stay up to date automatically on its own.

Hi,

I'm having a problem that I can't resolve.

I have everything installed correctly and setup Virtual Devices. IR code is learned and tests work fine. I then create a virtual button to trigger the device in rule machine using either push or sendSavedCode and nothing happens. Upon checking the Broadlink device I see this:

State Variables

  • devDetails : {devType=25741, authKey=B501ECB7CDBB5A1EF00CAB72C5D9A40A, isLocked=0, name=智能ι₯控, callback=senseResponse, id=1, mac=A043B05E8F2F}
  • count : 3

Should the name not be saved as the name I provided when setting the remote? Or, is the problem something else?

It'd make a good resource but there might be a lot of complications if manufacturers are using different codebases for areas. Like the same manufacturers stuff in US uses a different code structure to the "same" gear in Europe..

I guess it depends on the number of people percentage wise who are using the Broadlink system and are using stuff that isn't under the universal remote signal groups.

The only thing I can suggest is a poll on here, see what people's opinion is - it's also how hard it'd be to pull the codes out in relation to what they are controlling - you'd need the model info as an ident - not "so & sos bedroom stereo" for example..

My Broadlink components are mostly UK RF and I'm really keeping it because the Smartlife IR/RF I have doesn't like rolling codes. I might in the fullness of time find one that deals with 433mhz rolling codes but that kind of assumes I have the fullness of time..

As for IR it's TV etc and a mobile air conditioner that I want to fit up as a permanent installation through a fitted uptake and water drain..

You can ignore the name field in State Variables. I don't use it in my integration, but if you had changed it in the Broadlink mobile app you would see that here. The value you're seeing is the default value that the remote ships with, and it loosely translates to "Smart Remote" according to google translate. :slight_smile:

Please show your Rule Machine rule that is attempting to perform this operation. If you enable all logging options (in Rule Machine and the virtual device), what shows up in the logs when you trigger the rule?

Are you sure that your rule is executing based on its triggers? Try running an action on another unrelated device to see if that is the case (turn on a switch or send a mobile notification or something).

Yes, I'd envision something like a listing of relevant info -- manufacturer, model, type or category of device (i.e. "Air Conditioner" or "TV") -- along with the raw codes. Naming consistency and naming collisions for the codes themselves would definitely be a challenge. I'll give it some more thought and may mock some things up to get further feedback.

I had no idea this was a concern. Is it mostly true for RF devices (due to differences in available spectrum and different regulatory requirements, I'm guessing?), or have you seen the same on IR devices? Thanks for enlightening me on this as a potential challenge.

I have quite a few rules in rule machine that work fine based on various triggers.

When running the action in rule machine this shows as the log:
dev:5002023-01-20 04:55:31.314 PMerrorjava.lang.NullPointerException: Cannot invoke method get() on null object on line 1295 (method sendSavedCode).

Clearly I'm doing something wrong but have no idea what.