supersaiyanmode / PyWebOSTV

Python API for controlling LG TVs (Web OS)
MIT License
261 stars 50 forks source link

"menu" in InputControl has no effect on the TV #59

Closed kilian579 closed 2 years ago

kilian579 commented 3 years ago

Thanks for this repo, I've been using it for quite a while now.

Today (21/06/27) I upgraded to the latest version with pip, and the "menu" command doesn't seem to work anymore.

However I have an older version, in which the "menu" command of InputControl opens a menu on my TV.

Has anything changed in the past months, which might have caused this?

supersaiyanmode commented 3 years ago

That could a real issue. Just to confirm what you are saying: You have version 1 and version 2 such that something works in v1 but not in v2 when you call the same API in an identical fashion against the same TV.

If this is correct, it could very well be a bug that got introduced recently. Can you help me with the actual versions (git commit hashes) of these two instances? Essentially, I'd like to know how to reproduce this (git commit hashes, version strings, or even the diff of the actual installed file across these version). Thanks!

kilian579 commented 3 years ago

Yes, your confirmation is correct.

I've last updated my local version in June 2019, so it should be commit c6236e599645d14626c4d15fad56eac9f4cbacd2. This version didn't offer the "menu" command yet. I cheated and added that entry in "controls.py" at line 289, like this "menu": { "command": [["type", "button"], ["name", "MENU"]] }, and that made it work.

Currently I'm using the latest pip version, which should be 22f2f19d8958d158a5dc41349212c4b56c6c8cce. This version offers the "menu" command, but it has no effect on my tv, while the old version still works fine.

supersaiyanmode commented 3 years ago

Thanks! I'll check it locally and post the results back here.

garbage98 commented 2 years ago

Could you verify the problem?

supersaiyanmode commented 2 years ago

Sorry, last few weeks were busy and I couldn't get back to this one.

TL;DR: I couldn't reproduce it.

TV being tested against: LG CX 55 OLED (2020 model), WebOS 5.0, v03.23.15

State A: July 2019, git checkout c6236e5, patch the source with "menu": { ...}, install the library in a virtualenv

client = ...  # discover, connect and register

inp = InputControl(client)
inp.connect_input()
inp.menu()  # Triggers the menu correctly

State B: Checkout the HEAD, no patches, install the library in another virtualenv.

client = ...  # discover, connect and register

inp = InputControl(client)
inp.connect_input()
inp.menu()  # Triggers the menu correctly

In both the cases, this is what I observe:

Menu in LG

aschavez commented 2 years ago

@kilian579 try pressing a button on your physical remote control before executing the command. I still don't quite understand why this happens, but in my case, if I don't press a physical button before, it doesn't work.

supersaiyanmode commented 2 years ago

Closing this out, feel free to re-open if you still need help.