The problem
As mentioned in #102024, the Roku Search feature does not work against the latest API change.
I have found a way to make this work through curl, but I'm unsure if my method breaks any backwards compatibility for older Roku models, hence the lack of a PR.
What version of Home Assistant Core has the issue?
core-2023.12.3
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
Roku
Link to integration documentation on our website
https://www.home-assistant.io/integrations/roku
Diagnostics information
No response
Example YAML snippet
No response
Anything in the logs that might be useful for us?
No response
Additional information
What used to work, and what works now
Found here in rokuecp it appears that the integration is sending a POST request like this:
http://{ IP-ADDRESS }:8060/search/browse?keyword={ USER SUPPLIED KEYWORD }
Using this method now, a search window is opened and the literal keyword "keyword" is automatically searched, and the user input is unused. However, It looks like this version of the search feature will actually respond as expected to a request like this instead:
http://{ IP-ADDRESS }:8060/search/browse?{ USER SUPPLIED KEYWORD }=
The POSTed data seems to use the key and discard the value, so the trailing = is actually required.
Proposed Change for Roku Integration / rokuecp
Assuming that backwards compatibility is not an issue, I propose changing these lines:
Now:
request_params = {
"keyword": keyword,
}
Proposed:
request_params = {
keyword: keyword,
}
I will love you forever
If this issue can have resolution as well as #105776, my HACS card HA-Firemote will be extremely useful as I launch the new Roku Integration in the near future. I'd love to have @ctalkington join us as a beta tester too, if time permits. 😄
The problem
As mentioned in #102024, the Roku Search feature does not work against the latest API change.
I have found a way to make this work through curl, but I'm unsure if my method breaks any backwards compatibility for older Roku models, hence the lack of a PR.
What version of Home Assistant Core has the issue?
core-2023.12.3
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
Roku
Link to integration documentation on our website
https://www.home-assistant.io/integrations/roku
Diagnostics information
No response
Example YAML snippet
No response
Anything in the logs that might be useful for us?
No response
Additional information
What used to work, and what works now
Found here in rokuecp it appears that the integration is sending a POST request like this:
http://{ IP-ADDRESS }:8060/search/browse?keyword={ USER SUPPLIED KEYWORD }Using this method now, a search window is opened and the literal keyword "keyword" is automatically searched, and the user input is unused. However, It looks like this version of the search feature will actually respond as expected to a request like this instead:
http://{ IP-ADDRESS }:8060/search/browse?{ USER SUPPLIED KEYWORD }=The POSTed data seems to use the key and discard the value, so the trailing = is actually required.
Proposed Change for Roku Integration / rokuecp
Assuming that backwards compatibility is not an issue, I propose changing these lines:
Now:
Proposed:
I will love you forever
If this issue can have resolution as well as #105776, my HACS card HA-Firemote will be extremely useful as I launch the new Roku Integration in the near future. I'd love to have @ctalkington join us as a beta tester too, if time permits. 😄