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

Hi @tomw, it´s me again!

Is it possible to import codes from external sources, by example, IR hex codes contained in a sheet, perhaps copying and pasting somewhere? I have a Denon receiver and would like to use some discrete commands contained in an Excel sheet I downloaded from Denon site.

One thing I noticed (as someone that does not REALLY use HPM) is that the importURL for the driver/apps is not populated.

EDIT:
Nevermind about the version mention... driver is at 0.9.1 but the APP is at 0.9.2...

It may be possible depending on the format. Share a link to the download site and I will take a look.

I never use this personally, but I'll add it when I next update them.

2 Likes

Thanks. Different styles. Like I mentioned I almost never use HPM and mostly just to add my driver stuff IN because some users ask for them to be that way. Oh well.

Couple points of APP feedback:

  1. Is there any way to make the triggers for performing a command (like Rename selected code) be buttons and not radio buttons? Maybe this is a limitation of apps (I do not write them)... but it seems very odd to have radio buttons that basically perform a quick action.
  2. Is the Import hex codes field supposed to remain populated with whatever was last imported? Mine has not cleared out yet... but obviously I no longer care now that they ARE imported. I would be looking (if I needed to) to import the next batch of codes, not looking at this one.

Few points of driver feedback:

  1. Could the device's MAC address be provided as a state/event? This way it could be used by other apps/rules to check on the device. Maybe using something like an hourly network client check. :slight_smile:
  2. What does the "count" state variable mean in the driver?
  3. Does any of the data returned provide the device type so we could have that shown somewhere to make life a touch easier (even as a state variable)? Help identify the RM 3 Mini vs the RM 4 Mini, etc...

Plus, not something you have control over... wouldn't it be nice to have dynamic commands in the drivers so if someone enables the RF in preferences then the RF commands would show (but not before)...

Here is the link:

http://assets.denon.com/DocumentMaster/us/Denon%20Master%20IR%20Hex%20Commands%202014.xls

Lots of feedback. My thoughts:

The Hubitat app UI framework is really limited. I'll spare you the details, but "normal" app buttons weren't able to give me the user experience I was hoping for -- with the workflow being able to interact with and navigate between pages of the app quickly to move codes in multiple directions for multiple devices.

Radio buttons were the best way to achieve what I wanted, and they work well even if they look a little bit weird. You can spend a lot of time and code making the app UI only a little bit better, so this is where I ended up. I'll take another look now that the core functional features are there in the app.

  1. Is the Import hex codes field supposed to remain populated with whatever was last imported?

Not specifically, but I left it there because I didn't want to be over-aggressive in clearing it, just in case the input was still useful even though it might be gone from the clipboard. I think a good medium would be to clear it when Done is pushed (on installed/updated), but to leave it during an active app session. I'll make that change in the next version.

  1. Could the device's MAC address be provided as a state/event?

Are you looking for a visual check or something you can interact with in your code? If it's visual, the MAC is in State Variables (it's a member of devDetails)

  1. What does the "count" state variable mean in the driver?

Nothing useful. It's just an increasing count that gets applied to the device API messages. It's a count of every packet sent since the last Initialize on the virtual device.

  1. Does any of the data returned provide the device type

The device has an ID, which is stored in devDetails in State Variables. But otherwise the names aren't identifiable from the device itself.

They frequently release new versions of the same products but with changed IDs, and trying to provide a lookup of other info based on ID is part of what caused the old integration to rot quickly. So, I chose not to try to display a name, since it doesn't really make a functional difference anyway.


EDIT: forgot one:

Plus, not something you have control over... wouldn't it be nice to have dynamic commands in the drivers

I'll let you fight that battle. :wink:

Those claim to be Pronto hex codes. I support importing Pronto codes in the app (on the "Manage saved codes and import new codes" page).

I was able to import the "Main Zone ON" code in the .xls you linked. Try importing some to see if they work.

You import them into my app, then use the app to sync them to one of your Broadlink virtual devices.

1 Like

Yes, I tried it but the imported code didn't work. I'll try again with another one and post a feedback.

Is your AVR specifically called out as supported by that document? Note that it is from 2014, so it's possible that they may not directly apply and you may have to try multiple ones until you find one that works. It's a little bit like programming an old-school universal remote. :wink:

If your AVR is claimed as supported by that document, and if none of the codes work, I have some other ideas to try. Hit me up by PM and we can try to figure it out.

1 Like

For the MAC, I am actually thinking a separate attribute so it will be available directly to other things (with proper formatting also, since it appears they do not put the : in). I did see it in the devdetails, but it is not "usable" as is without further processing.

Gotcha for the rest of the stuff. Clearing the import field when done is fine (or on app load if that is easier).

Yeah, I am fighting for dynamic again... But it is getting zero responses or attention so I guess I am one of very few that care apparently. Maybe if more developers had to deal with tons of different child devices...

@tomw incredible work, thank you very much for reviving this integration.
I have 3 units and need another, does anyone know if the current crop of RM Mini 4's work with this or is broadlink up to their old tricks again?

Second, is there a database for IR codes for an older Denon AVR S700W? I used to get all my codes through an Android app called "Anymote" by color tiger, but app appears to be abandoned, likely due to removal of the IR emitter in 99% of all cellphones.
PS-got the AVR free from my recycle yard, it was DOA but a youtube video revealed these units commonly blow a fuse, and after fixing the fuse, it works great.

Quick clarification -- I didn't revive it. This is all new code from the ground up.

I expect all RM4 devices to work. Obviously things could always break in the future, but this is meant to support RM3 and RM4 devices and be future-proofed for new devices.

Second, is there a database for IR codes for an older Denon AVR S700W?

I don't know, but if you find a list of codes that are referred to as Pronto codes it may work. And I added support in my app to import Pronto codes in the hopes that someone would resurrect an old device just like you want to. :slight_smile:

So, let me know what you find and if I can help with making it work. FYI, @marcusvrsilva seems to be on a similar quest: Broadlink IR/RF remotes integration (RM3 Mini, RM Pro, RM4 Mini/Pro) - #19 by marcusvrsilva

EDIT: here's at least one code to try: RC: Denon S700W - bluetooth input

EDIT2: this might be the mother lode (if they work): http://assets.denon.com/DocumentMaster/us/Denon%20Master%20IR%20Hex.xls
from: https://www.denon.com/en-us/product/av-receivers/avr-s700w

2 Likes

Then an even "yoojer" thanks is in order !

3 Likes

I have 5 RM3s, controlling 5 Fujistu mini-splits and my TV/Cable/Audio system on this driver for four days with 100% reliability. I also tested this code while it was in Beta.

@tomw is a very competent, fast, and accurate coder. Thank you for doing this! I'm so pleased to have disabled the old code and devices that will be removed in a few more days.

4 Likes

I just posted v0.9.3, which updates the App UI to use buttons.

Thanks to @arnb for teaching me a good pattern for working with buttons in Apps and for his persistence in encouraging me to use them. :wink:

I also added the importUrl to library, driver and app. Only the driver import function works on my system for some reason, so I'd appreciate feedback on whether it works for others

Important Note: If you manually installed, this update requires you to update ALL of library, app and driver code (in that order). But HPM will handle the full update automatically.

2 Likes

So, @marcusvrsilva and @Rxich : did it work with your Pronto codes?

I just installed my first device, have 2 more to go. Went very smoothly. I used HPM to install, it only installed the driver and imported the app code(app not actually installed), but I'm thinking that's purposeful, as you advise to only install the app after setting up all devices.
It's working fantastic. As I said 2 more devices(mini4 & RmPro) to setup and my receiver is packed away for some home renovations, so it'll be a bit before I can test the Denon codes.

1 Like

You can totally install and use the App once you have your first virtual device configured. It just isn't required unless you want to back up your saved codes from the virtual device to the App.

But Pronto import is only supported in the app, so you'll need it when you are ready to start trying that out.

1 Like

Hi @tomw !

Yes, it worked fine! Before I had not attempted about the field difference between Hex and Pronto codes. Once I populated the Pronto code field it was normally imported. The codes I´m importing are for Denon devices produced from 2014 until now.

Now, a question and a suggestion.

The question: the app don´t "see" the virtual devices from previous discontinued app version, but I have access to the codes stored at the devices page. The problem is that I couldn´t simply copy and paste the codes, or I didn´t know how to make it work. Some tip?

The suggestion: is it possible to organize the codes by its names? It would be useful when using a simple actuator to control many devices, like in a home theater.

And thanks, thanks and thanks a lot for your app, it´s really a life savior! I´ll use it to preventively substitute my Harmony remote and control several mini-splits, as it is working like a charm!

1 Like