Investigate Roku secret-menu sequence reliability over ECP #1
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Several Roku secret-menu sequences do not reliably open their menus when sent through
tvctl remote send, even though the same sequences work from the physical Roku remote on the same TV.Observed examples
home home home home home up right down left uphome home home home home up down up down uphome home home up up right left right left righthome home home up up left right left right leftThe bitrate override menu also did not work from the physical remote during testing, so that one may be a separate Roku-side issue.
Current implementation
tvctlcurrently sends Roku remote input through ECPkeypress/...requests only.Why this needs investigation
Roku's official ECP docs explicitly document
keypress,keydown, andkeyupcommands as supported inputs, and the docs include a keyup/keydown example. This suggests some secret-menu sequences may require more faithful button event delivery than repeatedkeypresscalls provide.Official docs: https://developer.roku.com/docs/developer-program/debugging/external-control-api.md
Relevant documented key names include
Home,Up,Down,Left,Right,Rev, andFwd, which match the keys already used bytvctl.Likely next steps
keydown/...+keyup/...per keykeypress/...deliveryRepro notes
remote send --delaychanges did not fix the affected secret-menu sequences10.10.0.136Follow-up test result:
Tried a prototype Roku
keydown/...+ short hold +keyup/...delivery path instead of plainkeypress/..., with a configurable press duration (75ms).Result: the tested secret-menu sequence still did not open the menu on the target TV.
Tested sequence:
home home home home home up right down left upEnvironment:
10.10.0.136remote.roku_key_mode = keydown_upremote.roku_press_duration_ms = 75200msConclusion so far:
keypressvskeydown/keyupdelivery alone did not fix it