NEW: Improved Apple TV support for HDMI-CEC and Bluetooth remotes

In the latest TestFlight build (v2020.07.29.44) v4.0.1 release on the App Store, we've added support for extra buttons available on some HDMI-CEC and Bluetooth remotes.

In the app settings, under General > Remote Shortcuts you will now find programmable navigation options:


HDMI-CEC

Most new TVs support CEC over HDMI, and buttons pressed on the official TV remote will be sent as commands to the Apple TV. In our testing, this has been confirmed working on atleast LG, Samsung and Sony TVs. (Roku TVs don't support CEC for device control.)

If your TV remote has Red/Green/Blue/Yellow keys, they will now map to the shortcuts shown in the settings above. So if you click the Blue button on your remote while inside Channels app, it will launch the live TV player.

In addition, the following keys may work depending on your TVs CEC support:

  • In the Player
    • Channel Up
    • Channel Down
    • Record
    • Last Channel
  • On the Guide
    • Channel Up
    • Channel Down

Each TV manufacturer calls CEC by a different name, and you may need to enable the corresponding setting on your TV before the remote buttons are passed through to your Apple TV. From kodi's wiki page on CEC:

  • AOC - E-link
  • Hitachi - HDMI-CEC
  • LG - SimpLink
  • Loewe - Digital Link or Digital Link Plus
  • Mitsubishi - NetCommand for HDMI
  • Onkyo - RIHD (Remote Interactive over HDMI)
  • Panasonic - VIERA Link or HDAVI Control or EZ-Sync
  • Philips - EasyLink
  • Pioneer - Kuro Link
  • Runco International - RuncoLink
  • Samsung - Anynet+
  • Sharp - Aquos Link
  • Sony - BRAVIA Link or BRAVIA Sync (You may need to use a port labeled HDMI-MHL if the regular HDMI port does not work.)
  • Toshiba - Regza Link or CE-Link

For example on Sony TVs, you may need to change the Device Control Keys option on the TV before certain key commands are allowed through.


Bluetooth

The Sofabaton and Harmony Hub are the only programmable bluetooth remotes I've been able to find. If anyone comes across another one, please let us know!

Logitech Harmony (with Hub)

If you have a Harmony Hub, you can also configure it to take advantage of the new features above. To do so, you will need to:

  1. Ensure that the Harmony Hub is connected to your Apple TV over Bluetooth
    • In the tvOS settings under Remotes > Bluetooth it should say "Harmony Remote")
    • If not, click Add Device > Entertainment in the Harmony app and search for "Harmony Pro / BT Apple TV 4"
  2. Add a dummy "Windows Computer" device to your Hub
    • Click Add Device > Computer > Windows
  3. Optional: Add a dummy "Mac Computer" device to your Hub for HDMI-ARC volume control
    • Click Add Device > Computer > Mac
  4. Create a new activity that includes all the new devices: "BT Apple TV 4", "Windows Computer" and "Mac Computer"
  5. Edit the activity, click Customize and then assign keys to use commands from the Windows computer profile:
    • ChannelUp = PageUp
    • ChannelDown = PageDown
    • 0-9 = 0-9
    • Blue = F1
    • Red = F2
    • Green = F3
    • Yellow = F4
    • Record = Record
    • FastForward/Rewind = SkipForward/SkipBack (optional for chapter/commercial skip)
  6. Customize and assign these keys to use commands from the Mac computer profile:
    • VolumeUp/VolumeDown = VolumeUp/VolumeDown (optional for volume control over HDMI-ARC)

Note that you can also map the dedicated Guide or DVR button on your Harmony to F1/F2, and then adjust the settings in the app accordingly.

Sofabaton

The Sofabaton U1 is an inexpensive alternative to the Harmony. It connects directly over bluetooth, without a hub required.

  1. Ensure that the Sofabaton is connected to your Apple TV over Bluetooth
    • In the tvOS settings under Remotes > Bluetooth it should say "SofabatonXXXX")
    • If not, click Add > Bluetooth Icon in the Sofabaton app, then click Apple TV
  2. Click the Apple TV device in the Sofabaton app, then click Remote Keys to customize the following keys:
    • ChannelUp = PageUp
    • ChannelDown = PageDown
    • Record = Record
    • 0-9 = 0-9
    • Blue = F1
    • Red = F2
    • Green = F3
    • Yellow = F4

Keyboard

You can also use a regular bluetooth keyboard paired to your Apple TV. The following keys are currently available:

  • F1-F4 = programmable in the app settings
  • PageUp/PageDown for channel surfing and guide paging
  • Backspace to switch to last channel in the player

DIY

Finally, it is also possible to build your own bluetooth controller with a raspberry pi or similar. See for example this or this. It should also be possible to combine a FLIRC with a RPI to translate IR remote commands into bluetooth commands.


Infrared

For IR remotes, unfortunately the number of codes supported by Apple TV is limited to the ones available via "Learn Remote" in the tvOS settings. That means none of the new features above are possible with an IR remote.

However, for users of the Salt or Function101 remotes, you can now use the page up/down buttons on the Guide.

Some IR remotes like the OneForAll Streamer can also operate in CEC mode and may be able to take advantage of some of the features above if your TV passes CEC commands through. See https://www.oneforall.us/universal-remotes/urc-7935-streamer-remote/support/digital-manuals/extra-features/cec-mode

5 Likes

Awesome work! In the player for live TV, all the buttons working good. The 2nd click issues reported earlier today seem to be all clean. In the player for a recording, the Jump/Last key works and takes you straight to the live player. All the color keys just back you out to the show dialog. Would be nice if they can work the same in both players.

Also, if you assign a shortcut to something you haven’t added to left navigation it misbehaves. Usually it does nothing, but in some cases it was switching to Guide.

I’m using the Sony remote.

You mentioned other Bluetooth keyboards. The best one I’ve used for Apple TV is the Caavo Control Center. It’s one of the few that correctly deals with the TV button.

This is a great productivity boost to have this remote integration.

Works great with my Yamaha receiver, nice!

A new build (v7.29.2141) is available with many improvements, including the ability to enter channel numbers on the guide and in the player using the HDMI-CEC/Bluetooth numberpad.

2 Likes

New build out:

  • NEW: Setting to choose which set of channels will be used for channels surfing - All, HD, Favorites
  • NEW: Added some new API endpoints - channel_up, channel_down, toggle_record, switch_section.
1 Like

Works great with my Harmony Hub remote! Thank you for adding this feature.

You have inspired me to bring back my Harmony Hub!

A couple observations:

  1. Using the number keys to change channels while watching live TV: it will switch to channels on a source I have deliberately disabled if there is a numbering conflict. Assume source A is enabled and source B is disabled, and both sources have a channel 101. When entering '101' it will tune on source B instead of source A. Or, say I enter channel '1'. Source A has no channel 1 but source B does; it will still tune to channel 1 even though source B is disabled. Adjusting source priority in the settings has no effect.

  2. This is related to the above: Can the delay be adjusted when entering channel numbers? If I'm too slow in entering '101', sometimes it will tune to channel 1 or channel 10.

  3. Does the mute button work? I've assigned volume up/down to Mac Computer and they work fine, but mute doesn't.

Previous Channel bug. After changing channels using channel up/down keys (channel surfing) previous channel feature fails. Progress bar pops up but remains on same channel rather than going to previous channel. Previous channel works correctly after changing channels by other methods like guide or direct number entry.

Enjoying new CEC and bluetooth remote functionality. Still exploring new features. Great work!

Thanks for this awesome feedback!

I just put another build out resolving some of these issues.

  • Improved: Changing channels with number input would let you change to channels on disabled sources.
  • Improved: Extended the time given to input channel numbers
  • Fixed: Jump To Last Channel would not work when channel surfing
1 Like

Silly question but is it at all possible to consider exposing an API interface for sending key commands if it's not already there? Would be interesting to be able to script commands for home automation use without having to use harmony as an intermediary. Doesn't channels expose itself as an http interface off the AppleTV?

KC

1 Like

I am really liking the new functions and now moved back to the Sony remote for my daily driver.

A couple of things:

  • When you use the channel up/down, and sometimes using quick guide, I'm getting some random errors popping up briefly like "Channel unavailable", etc. Its just for a split second and then the channel is fine.
  • When you use the channel up/down to change channels, and then try to use the "last" button to jump between two channels, its seems to have lost the last channel. I can get the same effect if I use the quick guide and change channels quickly skipping through several. But normally it does have the current and lat to flip back and forth between.

Looks like you already fixed the 2nd one there.

I have an issue I'll ask about here even though its not directly related to Channels. I have a Sony X900F and using the Sony remote when I turn off the TV, it never puts the Apple TV to sleep. Using my cheap universal remote it does. Is anyone else running into this? I'd like to leave Channels in Live TV when I turn off the TV, so that when things come back on the ATV will wake up and be still in Live TV. But odd that it won't sleep. CEC should cause that to happen I would think.

Is this on the latest beta that came out last night? If not, give the latest a try and see if it still happens. Work was done to prevent it.

I don't think CEC will sleep the device and i'm not sure how the universal one is doing it. Maybe instead the apple tv was just going to sleep on it's own after a while?

We really don't suggest doing this. You wouldn't keep Netflix running while not using the device, you shouldn't leave Channels running either.

These are such great updates and I am so impressed with the developer team. Thank you!

Here is my beloved Harmony 650 remote in one of my rooms, it’s IR based but lasts for many months on two AA batteries, and controls my setup very well. Easy and reliable. Now I‘ve added channel favorites that I can tune to with a button press, and they work with Channels DVR. Considering all of the ingredients involved and cooperating to make this work so elegantly, this brings me great joy. Again, thank you to the Channels developer team! Can’t wait to see what you’re cooking up next!

3 Likes

Well I'd only do it if the Apple TV goes to sleep, which is exactly what happens if I do it from the Siri remote. It sleeps the streaming app, powers of the TV. When I wake things up, its right where it left off. With CEC, if the controlling device is the TV, then it would need to signal the attached device to power off or sleep if the TV turns off. I thought that was the point.

1 Like

Can you provide a little more detail about how you got to a specific channel from a click on the remote? Does this work from if Channels is not the active app, or is that assumed. I haven't had luck with a channel number for anything but OTA channels. Are the ones you are showing TVE channels, or are you using a cable card HDHR?

1 Like

Ha, that is true. Like, that's the whole point of CEC. This isn't a remote thing. Very odd indeed.

He programmed a macro to enter the channel number. So when he taps the channel on the remote, it enters the channel number via the number inputs.

The MyHarmony app allows the creation of channel favorites for the default “Watch TV” activity. So I didn’t “create macros” as much as I entered the channels I wanted, uploaded channel logos into the app, and synced the remote. This is how I previously had it set up with TiVo, and figured the same sort of thing wouldn’t be possible in an app like Channels. This new feature brought it back for me.

The remote emits those numbers and now that Channels recognizes them, it changes the channel when I am watching live TV. I am using TVE but this would work with any channel from any source that you can now tune to with a compatible remote by pressing the number keys.

1 Like

My Samsung has this option, my Sony does not, as best as I can tell:

Not sure it would have helped you regardless but figured I’d mention it nonetheless. It’s interesting to see how very differently each company handles the CEC “standard.” Every recipe of various AV ingredients seems to have different results. When CEC works, it’s great (as this new feature attests.) It makes it easier to use easy remotes. But it can also be inconsistent across brands and TV models, and when it doesn’t work, it can be quite frustrating.

I’m really glad to see the Channels team forging ahead and making the best out of CEC, even though it works differently on different TV’s. That innovative and experimental spirit is what’ll keep me as a Channels customer for life.