Use ECP or port 8080 to change channels on RokuTV

So I saw this thread in the general forum and it occurred to me that it would be awesome if you could send the Roku TV to a particular OTA channel using ECP or one of the port 8080 press commands. Then belltown could update his great What’s On channel to be an interactive program guide that one could browse and then go directly to the desired OTA channel with the press of a button. There’s press *t to go to the tuner, but it doesn’t look like you can specify a channel and I didn’t see anything in the ECP documentation that would help. Did I miss something?

-JT

“renojim” wrote:
So I saw this thread in the general forum and it occurred to me that it would be awesome if you could send the Roku TV to a particular OTA channel using ECP or one of the port 8080 press commands. Then belltown could update his great What’s On channel to be an interactive program guide that one could browse and then go directly to the desired OTA channel with the press of a button. There’s press *t to go to the tuner, but it doesn’t look like you can specify a channel and I didn’t see anything in the ECP documentation that would help. Did I miss something?

-JT
Definitely a possibility if there’s a way to ECP to a Roku TV channel, although you’d still need a way to map the channel identifiers that What’s On uses to the channel ids used by the Roku TV.

It was proposed earlier, yet to hear a comment https://forums.roku.com/viewtopic.php?f=34&t=93039
It would have to be “tvinput.dtv” being amenable to ECP /input

“renojim” wrote:
There’s press *t to go to the tuner, but it doesn’t look like you can specify a channel
Wait… “press *t” - where does that come from?

if you telnet to port 8080 and then enter press, you’ll see a list of available commands.

-JT

Just found roTuner. I really need to read those release notes more often. I haven’t played with it, but it seems like it would be trivial to create an EPG “channel”. It should probably be part of the Roku TV built-in apps.

I’m not having any luck at getting any program data out of it (roProgramData.GetNowNextPrograms() gives “member function not found”), but it looks promising.

-JT

“renojim” wrote:
if you telnet to port 8080 and then enter press, you’ll see a list of available commands.

>press
h          Home
u          Up
d          Down
r          Right
l          Left
s          Select
f,>        Fwd
b,<        Rev
p          Play
y          InstantReplay
i          Info
k          Back
=          Backspace
o          PlayOnly
t          Stop
e          Enter
a          A
c          B
n          Closed Caption
?          Search
[          Volume Down
]          Volume Up
\          Volume Mute
~          Input Source
`          Input Source Prev
*123vt     Input HDMI1-3, AV, Tuner
x1-x9      Partner1 - Partner9
xA-xN      Partner10 - Partner23
!          Power
@          PowerOn
#          PowerOff
.ibmfwrec  change source type: i=IR,b=BT,m=MHL,f=FP,
                               w=WD(Wifi),r=IR_RF(T3),
                               e=ECP,c=CEC
                               The default is IR

Wow that is new! It was not there before.
Man, Roku is like treasure hunt - ostensibly more challenging than http://www.pythonchallenge.com/index.php

A tune-to-number command there won’t be of help though, 8080 is only active for developer mode’d devices. Nor will roTuner be of help. Instead, it’s the “tvinput.dtv” (pseudo)app that should be made receptive to ECP /keypress. Keypress and not /input because that way all remote apps with keyboard support (and http://remoku.tv ) “suddenly” could be used to dial RokuTV channel#. “'Tis a miracle”. Or maybe the Co has done that already and holding back?

Use of the debug server ‘press’ command is not a supported technique for production purposes.

Some relevant documentation has just been added regarding ECP support on Roku TV devices.

On Roku TV, you can launch the TV input UI using the ECP launch command. For example launch/tvinput.dtv, launch/tvinput.hdmi1, etc.
https://sdkdocs.roku.com/display/sdkdoc/External+Control+Guide#ExternalControlGuide-launch/appID

You can also use the ECP keypress command in some cases, e.g. keypress/InputTuner, keypress/InputHDMI1, etc.
https://sdkdocs.roku.com/display/sdkdoc/External+Control+Guide#ExternalControlGuide-KeypressKeyValues

To launch the TV input UI tuned to a particular TV channel, you can use launch/tvinput.dtv&ch=<CHANNEL_NUMBER>.
https://sdkdocs.roku.com/display/sdkdoc/External+Control+Guide#ExternalControlGuide-launch/tvinput.dtv

You can query the list of available TV channels using query/tv-channels.
https://sdkdocs.roku.com/display/sdkdoc/External+Control+Guide#ExternalControlGuide-query/tv-channels
https://sdkdocs.roku.com/display/sdkdoc/External+Control+Guide#ExternalControlGuide-query/tv-channelsExample

OTA channel info is interesting!
Which firmware do these ECP extensions for RokuTV apply to? 7.0, 7.1 …

Also, i don’t see the ability to change channel while inside tvinput.dtv by punching digits ?
The one thing people have been asking for?

“EnTerr” wrote:
OTA channel info is interesting!
Which firmware do these ECP extensions for RokuTV apply to? 7.0, 7.1 …

It applies to all Roku TV releases.

“EnTerr” wrote:

Also, i don’t see the ability to change channel while inside tvinput.dtv by punching digits ?
The one thing people have been asking for?

I’m not sure if you are talking about a proposed UI feature, or the ECP feature.
The ECP launch command can be used to change TV channel while inside tvinput.dtv.

(The ECP input command can be used as well).

“RokuKC” wrote:

“EnTerr” wrote:
Also, i don’t see the ability to change channel while inside tvinput.dtv by punching digits ?
The one thing people have been asking for?I’m not sure if you are talking about a proposed UI feature, or the ECP feature.
It doesn’t matter! :slightly_smiling_face:
Ok, so it matters a little, i’ll get into that - but the thing people were asking was to be able to “dial” into a channel by punching numbers. Regardless if on universal IR remote or/and on remote app - they’ll take it either way.

So yes, (A) best case scenario would be if there is a UI element to it, where digits input into RokuTV will show up - and a long pause (or Enter) the tvinput.dtv will switch to that channel. Just like regular TV or satellite/cable box reacts to IR remote. Notice i haven’t mentioned “ECP” in this paragraph - it should as well work with the IR digit codes of the respective manufacturers (i believe RokuTV listens for different IR codes for TCL vs Hisense - and i presume it’s from their customary “code page” - at least it’s not the same codes as Roku boxes use). So, in a perfect world any kind of input will do - both taking advantage of universal IR remote numpad, as well as ECP. Or HDMI CEC, if there were MHL stick with a tuner.

(B) The minimum use case is for tvinput.dtv to just do that for /keypress/Lit_[0-9.]|Enter , w/o any UI element. Easy-peasy. And the beauty of it - again - is that nobody will need to update their remote app for this to work! Let’s go with an example, a popular J/S remote: http://remoku.tv/ being able to “dial” channel# as-is, w/o any changes to the site.

Just like the beauty of the “apps” tvinput.dtv, tvinput.hdmi1, tvinput.hdmi2 that suddenly appeared in /query/apps and magically started to work in my remote app! I never extolled the elegance of this - but yes! - it is clever, works well and hurt nobody. Praises to whomever came with it! I was double happy - that my app did not crap out because of the new type of entry AND because it suddenly could control RokuTV inputs! “Magic!” :slightly_smiling_face: And so could ECP (and later IR) dial by channel# - sans need to explicitly document even.

The minimum case (B) might be a stepping stone towards the full, “best case” implementation (A). Or not. That’s why i said “it doesn’t matter”. It can be incremental thing (or not).

The ECP launch command can be used to change TV channel while inside tvinput.dtv.Ha! Well that’s new. The behavior of ECP i know is that /launch/FOO gets wholesale ignored if FOO is already running.

(The ECP input command can be used as well).This is news too. Undocumented but i’ll take it :sunglasses:

This is all good news! So RokuKC, any idea why GetNowNextPrograms() doesn’t seem to work? I can see a great opportunity for Roku: utilize the OTA EPG with a “guide” channel, RMP, and a USB drive and you’ve got a DVR. Tell me a smart TV with basically a free DVR wouldn’t be a hit among cord cutters.

-JT

“renojim” wrote:
any idea why GetNowNextPrograms() doesn’t seem to work?
Check out viewtopic.php?f=34&t=94391#p537420

I can see a great opportunity for Roku: utilize the OTA EPG with a “guide” channel, RMP, and a USB drive and you’ve got a DVR. Tell me a smart TV with basically a free DVR wouldn’t be a hit among cord cutters.
Seems like the stars are all aligned for that, doesn’t it?
Except there are couple of hindrances. First one’s initials are A.W. :face_with_tongue:
The other one is the amount of kiss up the Co. is doing to broadcasters - certainly not wanting to do something to upset them. Thought that can turn to be blessing in disguise: if cable operator contracts them to do the DVR - watch for a swift maneuver.

“EnTerr” wrote:

(B) The minimum use case is for tvinput.dtv to just do that for /keypress/Lit_[0-9.]|Enter , w/o any UI element. Easy-peasy. And the beauty of it - again - is that nobody will need to update their remote app for this to work! Let’s go with an example, a popular J/S remote: http://remoku.tv/ being able to “dial” channel# as-is, w/o any changes to the site.
Given that Roku remotes don’t have a numeric keypad, I don’t see worthwhile value in this.
Smart remotes can use the ECP services to provide an intelligent TV channel selection UI, which is a much better user experience than the class dumb / ‘trial and error’ TV channel number entry.

“RokuKC” wrote:

“EnTerr” wrote:
(B) The minimum use case is for tvinput.dtv to just do that for /keypress/Lit_[0-9.]|Enter , w/o any UI element. Easy-peasy. And the beauty of it - again - is that nobody will need to update their remote app for this to work! Let’s go with an example, a popular J/S remote: http://remoku.tv/ being able to “dial” channel# as-is, w/o any changes to the site.
Given that Roku remotes don’t have a numeric keypad, I don’t see worthwhile value in this.
Smart remotes can use the ECP services to provide an intelligent TV channel selection UI, which is a much better user experience than the class dumb / ‘trial and error’ TV channel number entry.
Phones, tablets and computers tend to have keyboards :slightly_smiling_face:

Certainly a better TV channel UI is better - but who will re-do all existing apps?
There is a flock of them - I had a quick look and there are over ~16 Roku remoting apps for iOS, ~24 for Android, ~12 for Windows phone - so altogether about 50 remote apps. Is it smart to 50x the amount of work? Will they bother, given that RokuTV is ballpark 8% of the Rokus in use?

Let’s say the Co’s attitude to such apps and users is “screw them” because there is “Roku by Roku Inc” app for these 3 top mobile platforms. How about exotics like Symbian, Blackberry, Maemo/MeeGo/Tizen then? Roku fans have written apps for these years ago.

“EnTerr” wrote:

Certainly a better TV channel UI is better - but who will re-do all existing apps?

I’m not following your concern. I.e. I’m not aware of anything that would make these existing apps not work or have any different functionality than what the Roku remote provides. If an app wants to provide an enhanced user experience using the ECP APIs, that’s up to them to do, or not, as the case might be.

“RokuKC” wrote:

“EnTerr” wrote:
Certainly a better TV channel UI is better - but who will re-do all existing apps?
I’m not following your concern. I.e. I’m not aware of anything that would make these existing apps not work or have any different functionality than what the Roku remote provides. If an app wants to provide an enhanced user experience using the ECP APIs, that’s up to them to do, or not, as the case might be.
It’s an opportunity to retroactively improve 4 dozen apps, why pass on it?
Backwards-compatible enhancements are not a novel idea to Roku / ECP - here is example, one sunny day this happened:
"http wrote:
The type=“tvin” (and type=“menu”) did not have to be listed under ECP /query/apps - instead telling the app makers to re-write their apps to /keypress/InputHDMI1|InputHDMI2|InputHDMI3|InputTuner . But they do show now and that is a Good Thing - all apps that show list of channels suddenly got “upgraded” to being able to switch TV inputs. Same logic applies to dial-channel-by-number.

But also, there is the case of the advanced IR/radio universal remotes. I look more holistically on dialing OTA channels, beyond ECP alone - as i mentioned in my (A) above. I have experience programming some fancy remotes like URC MX-980 (if i remember, the remote was $500+ from Magnolia + $500+ for professional installer config) and Logitech Harmony^. People that want such remotes for their home theatre also want shortcut buttons programmed for their favorite TV channels - and how will you do that for RokuTV OTA ? Seems like the Co has given consideration to different methods of remote control (cue debug srv), so if IR/RF were to get TV channel codes, why wouldn’t ECP?

While these are real use cases, I understand they might be weighed as neglectable (as in “We don’t care much about OTA with 3rd party remote apps” and “Remoting of OTA TV with fancy IR/RF home-theater remotes is unlikely because RokuTV targets low-end segment in smart TV”). E.g. yours truly :slightly_smiling_face: - does not watch OTA TV.

(^) having done both, i would like to state that the kludgy software of mx-980 was a royal pain and indeed worth paying pro installer - where Harmony wizards are much more appropriate (if annoying) for lay people.

To launch the TV input UI tuned to a particular TV channel, you can use launch/tvinput.dtv&ch=<CHANNEL_NUMBER>.
https://sdkdocs.roku.com/display/sdkdoc/External+Control+Guide#ExternalControlGuide-launch/tvinput.d…

Just in case others are interested in this: This launch requests works if you use “?” Instead of “&”, so tvinput.dtv?ch=xxx