Creating an Infrared (IR) device

This is a quick tutorial on how to create a new Infrared (IR) device for homey. Which unfortunately is not as simple as it should be due to bugs in the tools section of homey.

This tutorial is for people who are comfortable creating homey apps, or capable to follow the instructions provided by athom.


In most cases you should always attempt to find your IR device using the generic built in approach. (Add device → Homey → IR → Search for your device).

However if your device is not available, it is still possible to create an application with the IR codes you require.

Step 1 - Figure out the IR codes

You may be lucky and the codes you require are publicly available, however if they are not, you will require an IR receiver to capture the codes. Older Homey Pro devices have an IR receiver inbuilt into them. (HP16, HP18, HP19). The Homey Pro 2023 (HP23) does not have an IR receiver.

To capture the codes, I used a HP18.

  1. Turn of the spectrum LED on the device, old anecdotal evidence mentioned this can help.
  2. Goto the RF signals (not IR) tools section (Homey Developer Tools)
  3. Change the record method to Infrared, hit record - point single quick click the remote at the homey device.
  4. You will now have the IR code output of the button press.

Step 2 - Convert the signal.

Note that the Emulate IR code in the tools, doesn’t actually work meaning we have to jump through a bunch of additional hoops in order to test that we recorded the right signal.

The Prontohex testing option on the tools page does work, however in order to use it we have to convert the code we now have to the right format.

  1. Download IrScrutinizer (2.4.0) and installed it (IrScrutinizer – AppImages)
  2. Goto the export tab, and select Pronto Hex.
  3. Copy the IR code we created in Step 1 to your clipboard.
  4. With in IrScrutinizer on the Scrutinize tab, press the “Paste & Scr” button.
  5. Hit the export button.
  6. Open the file the code was exported to.

Step 3 - Test the signal.

  1. Goto the homey tools area, this time with in the IR page. (Homey Developer Tools)
  2. Paste the Hex codes you exported, and hit the Send key.
  3. Your device should now action the command as if it received it from the remote.

Step 4 - Create the app.

  1. Create the app as per the recommendations by Athom. (Getting Started - Homey Apps SDK)
  2. Add a new IR driver as per the recommendations by Athom (Infrared - Homey Apps SDK)
  3. Ignore the section titled “signal definition” and instead create a signal file which uses the protohex format defined on the page.
{
  "type": "prontohex",
  "cmds": {
    "POWER": "0000 0073 0000 000D 0020 0020 0040 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0040 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0CA4",
    "MIST": "0000 0073 0000 000C 0020 0020 0040 0020 0020 0020 0020 0020 0020 0020 0020 0020 0020 0040 0020 0020 0020 0020 0020 0020 0040 0040 0020 0CA4"
  }
}
  1. Match up the pronothex commands with your capabilities with in the device.js
class MyDevice extends RFDevice {
  static CAPABILITIES = {
    'button.power' : 'POWER',
    "button.mist": 'MIST',
  }
}

Step 5 - Publish the app

  1. Follow the requirements to create a working app, and publish Publishing - Homey Apps SDK
4 Likes

Thanks Jamie. Just FYI, I was always thinking, why the extended DB of Homey do not work for me after they have added quite significant number of devices. Now I’m suspicious, that there is something wrong with the IR implementation on HP2019 Pro (found more users with this experience and it’s not because of HW failure). Interesting is that after I migrated to HP2023, all IR codes works great.

Anyway - when you will follow this great HOW-TO from Jamie, try to find relevant device via ADD DEVICE → HOMEY → INFRARED and search (it’s tricky - you can’t search just by device type, eg. “TV”, it’s good to start with BRAND - eg. “LG”, “SONY” and then pickup some from the list and test it). As I said however, this never worked for me on my HP2019Pro but works great on HP2023.

Also when you will have no option to learn IR, as HP2023 don’t have IR receiver anymore, there might be option to find relevant prontohex code yourself, eg :
https://www.remotecentral.com/cgi-bin/codes/
https://irdb.globalcache.com/Home/Database

If you find DB/code in another format, this app can help you to convert it - https://globalcache.zendesk.com/hc/en-us/articles/360034968311-iConvert-Converting-IR-code-formats

…and then you can follow guide above.

1 Like

Try turning off the LED on the older homey pro devices, that may help it. But during the Keynotes Athom did mention that the new HP23 was meant to have a much stronger infra-red.

I forgot to mention there looks to be an error in the software of the Homey Pro 2023, where for custom devices using Infrared, the HP23 sends the command twice at least for pronto commands.

Finally, when searching for a device in the library, it can be a little finicky - you may have to finish writing the word you are searching for ie.
Samsu → 0 Results
Samsung → 21 Results

2 Likes

Yep, tried even without it ;-( I checked via phone camera (video recording) they send out something but simply it never worked for me. That’s why I’ve been using Broadlink last 2 years…luckily now with HP23 it’s again usable :wink:

Anyone still runing HP2019Pro, please, test and let us know how is your experience ! Either creating the app or using existing codes, would be great. I’ve been looking just recently on forum and IR is, kind of “silent”, no recent discussion anywhere, so great revival Jamie :wink:

1 Like