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

Perhaps someone can point me in the right direction... I got the Broadlink driver working and I have it learning and sending IR codes when I use the "Send Saved Code" button on the device. Now with that working I am a little stuck on what to do next. I added the device to the Alexa app and tried to tell it to turn on but Alexa says that isnt a supported command (I saved an IR code called On). I know I am missing something but just dont know what direction to take this next. My goals are as follows:

Get Alexa to respond to On/Off/Up/Down fan speed requests
Get a button on the Dashboard to do the same.

Thanks for any help you can be.

Can't help with interfacing Alexa

I use a personal MiniSplit app, an HE Virtual thermostat device, and an HE dashboard thermostat device to control my mini-splits for on, off, cooling, heating, fan, and more using the Broadlink app and Rm3s. It requires learning multiple codes for each degree C and the mode, along with On Off etc.
It's documented in the app
https://raw.githubusercontent.com/arnbme/hubitat/master/MiniSplit.groovy

1 Like

On the dashboard, you can use saved code name as the button "number" with a normal button tile.

For something like Alexa, you would typically create a virtual device, like a named switch that Alexa can actually interact with. Then you would write a Rule Machine rule behind that to execute the desired commands to send saved codes when the switch state is changed.

Thanks - The dashboard worked great .

Don't know why I expected Alexa to be able to interact directly with that device - guess I over/under thought that one. I will give that a shot.

Thanks for pointing me in the right direction

1 Like

No problem!

For the dashboard, if you're a node-red user, you can set things up pretty easily like I did here: (edit: removed large screenshots)

Thanks - I don't use Node Red (but maybe I should)...

Any chance I can get an example of a rule that uses a virtual switch to send a single IR command ? I cannot seem to figure out how in Rule Machine to make it send one of the saved codes.

Thanks again - I apricate it

Here's how I would do it. Create a virtual switch and give it a name that makes sense. Then share it with the Alexa skill in HE.

Then make a rule like this:

Here's the custom action, in case you haven't used that before:

1 Like

@tomw Your the best!!!

Thanks a ton - that will get me started - I didnt think to use actuator as the capability

1 Like

Hi, I tried to download the app from Package Manager and received an error "An error occurred while installing the package: Failed to install app https://raw.githubusercontent.com/tomwpublic/hubitat_broadlink/main/broadlinkSystemManagerApp. Please notify the package developer." Are folks aware of this error?

This error is typically due to the HPM version being one that does not yet support bundles.

Will you check your HPM version and make sure it is at least 1.8.5?

Please check the HPM code in Apps Code to see which version the source code claims to be, because HPM itself has experienced some upgrade issues.

1 Like

Installed Manually was getting a send failed error on new RM3 Mini, removed lines 120 and 121 from drive code and everything seems to work now.

I cant post entire log here because forum thinks is a link but heres the important snippet"
java.lang.IllegalArgumentException: Command 'deleteCurrentState' is not supported by device 208. on line 120 (method initialize)

That's odd - it still works for me.

Which model of hub are you using? Which version of the Hubitat software are you running?

c7, I was out of date though. It works now with the latest version

1 Like

Just updated to the C8. I used the cloud migration. I am now getting "Hub load is severe."

image
When I go to logs I see the following messages that tell me this may have something to do with my custom "push" command for the Broadlink System Manager.

[app:744](http://192.168.1.140/logs#)2023-03-28 18:47:32.181[warn](http://192.168.1.140/logs#)method allHandler of child app Living Room Lights ran for 135,679ms

[app:744](http://192.168.1.140/logs#)2023-03-28 18:47:19.509[warn](http://192.168.1.140/logs#)method allHandler of child app Living Room Lights ran for 125,689ms

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:42:11.752[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:42:10.833[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:42:09.968[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:42:08.992[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:42:07.193[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:42:03.577[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:42:01.492[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:41:54.220[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:41:49.512[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:41:49.447[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:41:45.490[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:41:41.706[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:41:00.817[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:40:59.602[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:40:52.432[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:40:47.420[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:40:43.785[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:40:37.710[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:40:33.845[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:40:27.976[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:40:22.998[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

[dev:1147](http://192.168.1.140/logs#)2023-03-28 18:40:20.131[error](http://192.168.1.140/logs#)com.hubitat.app.exception.LimitExceededException: App 744 generates excessive hub load on line 191 (method push)

Broadlink is my only custom apps code.

Here's the app; it's working fine and controlling the Broadlink RM4Pro which is controlling the lamps.

Actions for Living Room Lights			+		
clear
IF (Living Room Motion Sensor—Windows, Living Room Motion Sensor—Cabinets all motion inactive(T) [TRUE]) THEN
	IF (Time between Sunrise-60 minutes(06:16) and Sunset+120 minutes(21:38)(T) [TRUE]) THEN
		Set lnOffDelayInSeconds to gnTimeoutHighOccDayInSecs(1200)
	ELSE
		Set lnOffDelayInSeconds to gnTimeoutHighOccNightInSecs(600)
	END-IF
	Off: Living Room Lights—Main
 --> delayed: lnOffDelayInSeconds(0:20:04)(cancelable)
	push('Lamp 1 Off') on Living Room Broadlink
 --> delayed: lnOffDelayInSeconds(0:20:04)(cancelable)
	Add 1 to lnOffDelayInSeconds
	push('Lamp 2 Off') on Living Room Broadlink
 --> delayed: lnOffDelayInSeconds(0:20:04)(cancelable)
	Add 1 to lnOffDelayInSeconds
	push('Lamp 3 Off') on Living Room Broadlink
 --> delayed: lnOffDelayInSeconds(0:20:04)(cancelable)
	Add 1 to lnOffDelayInSeconds
	push('Lamp 4 Off') on Living Room Broadlink
 --> delayed: lnOffDelayInSeconds(0:20:04)(cancelable)
	Add 1 to lnOffDelayInSeconds
	push('Lamp 5 Off') on Living Room Broadlink
 --> delayed: lnOffDelayInSeconds(0:20:04)(cancelable)
ELSE
	Cancel Delayed Actions
	IF (Living Room Lights—Main(on) is off(F)  AND 
	Variable gbPicoLivingroomPressedRecently(false) = false(T) [FALSE]) THEN
		IF (Time between Sunrise(07:16) and Sunset(19:38)(T) [TRUE]) THEN
			push('Lamp 5 On') on Living Room Broadlink
			push('Lamp 4 On') on Living Room Broadlink
 --> delayed: 0:00:01
			push('Lamp 3 On') on Living Room Broadlink
 --> delayed: 0:00:02
			push('Lamp 2 On') on Living Room Broadlink
 --> delayed: 0:00:03
			push('Lamp 1 On') on Living Room Broadlink
 --> delayed: 0:00:04
			Dim: Living Room Lights—Main: 100
ELSE-IF (Time between Sunrise-60 minutes(06:16) and Sunset+60 minutes(20:38)(T) [TRUE]) THEN
			push('Lamp 5 On') on Living Room Broadlink
			push('Lamp 3 On') on Living Room Broadlink
 --> delayed: 0:00:00.5
			Dim: Living Room Lights—Main: 25
		ELSE
			Dim: Living Room Lights—Main: 10
		END-IF
	END-IF
END-IF

The broadlink devices shows:


#### Current States

* activity : **idle**
* humidity : **54.34**
* temperature : **72.74**

The device logs show:

Name Value Unit Description Source Type Produced by Triggered apps Date
|command-push|||Command called: push|DEVICE|command|[Living Room Lights](http://192.168.1.140/installedapp/configure/744)||2023-03-28 18:42:11.758 CDT|
|command-push|||Command called: push|DEVICE|command|[Living Room Lights](http://192.168.1.140/installedapp/configure/744)||2023-03-28 18:42:10.835 CDT|
|command-push|||Command called: push|DEVICE|command|[Living Room Lights](http://192.168.1.140/installedapp/configure/744)||2023-03-28 18:42:09.970 CDT|

Thoughts on what I should do to fix? Just let me know if there is anything else you'd like to see.

Which app is 744? If you reboot the hub, does this still occur?

App 744 is Living Room Lights that call the push commands. I did reboot and still got the warning. Will try some more debugging tomorrow (plan to comment out all calls to Broadlink and see if warning goes away).

Ok, I started changing things to see if I could isolate and I cannot reproduce the error this morning. Will keep an eye on the situation and see if it happens again. Might have just needed to update the rule on C8?

The excessive activity metrics are time based and can vary a lot as uptime increases.

It's possible that either my driver or the apps that use it just have a lot of activity during initialize, and it sticks out relative to the activity of everything else on the system.

Let me know if it comes back and we can try poking at it to isolate the cause.

Hi all,

I am looking into an RF remote integration into my C7. My main use case is for my ceiling fan in the master bedroom. I know the alternatives seem to be Bond or Broadlink but my ceiling fan remote has a feature that I don't know if or how it might be supported. I use this feature a lot so it might be a showstopper. The fan speeds are 3 simple buttons but the light has both an on and off button plus a "continuous" dimmer. In other words by pressing and holding the light cycles between brightest and dimmest in a continuous way. It is the same button to make it brighter or less bright depending on the "direction" that the light is going at that time.

Does anyone have any experience with this type of remote / dimmer?

I suppose another way might be to get a light sensor then build a more complex rule to set the dimmer discretely to a certain LUX point.

I don't totally understand how this works.

What is it that sets the "direction" in the first place, and what starts the dimmer 'moving' up or down after that? And then are you saying that you hold the button while it is 'moving' the dimmer, and it moves continuously in that direction until you release?

You'd have to experiment with this to see when it seems to send RF codes. For example, maybe it sends an RF code when you hold the button and then another RF code when you release. Or maybe it sends it multiple times while you have it held, which is essentially multiple discrete updates even though it seems continuous.

Either way, if you can capture the discrete codes, then you can likely play them back in the same sequence. But you may have to play with it to try to figure out what is going on.

What is the fan/remote model?