Closed aseabridge closed 5 years ago
please post any error or data returned. change the TV_IP to your TV's IP address.
import requests TV_IP = '0.0.0.0'
response = requests.get('http://' + TV_IP + ':8001/api/v2/applications/111299001912/info') print(response.content)
Tizen 3.0:
curl http://87.250.238.242:8001/api/v2/applications/111299001912/info
{"code":404,"message":"Not found error.","status":404}
@kdschlosser
When I've researched Samsung api/v2/*
, I found this code responsible for http endpoints and websocket api. Currently it seems Samsung moved it out of Tizen open source, but maybe it will help you anyway.
Thank you for all your work!
Yeah I have read all of that already.
But looking at it again made me notice something
htttp://IP:PORT/api/v2/channels/index htttp://IP:PORT/api/v2/request htttp://IP:PORT/api/plugin htttp://IP:PORT/lib/multiscreen-service htttp://IP:PORT/api/service.json
using your web browser try these urls. changing the IP to your TV IP and try port 8001 and 8002 also.
there is also an api/v3 as well. FYI
http://IP:PORT/api/v2/channels/index http://IP:PORT/api/v2/request http://IP:PORT/api/plugin http://IP:PORT/lib/multiscreen-service http://IP:PORT/api/service.json http://IP:PORT/api/v3/
All these urls lead to 404 on my TVs: Tizen 3.0 (17_KANTM_UHD_BASIC)
<html><body>404</body></html>
Tizen 2.4 (16_HAWKM_FHD)
{
"status": 404,
"message": "Not Found",
"code": 404
}
well it was a shot to see if anything was there.
I updated the branch located at https://github.com/kdschlosser/samsungctl/tree/ssl_websocket_only
i change out how the websocket was being created i am now using websocket.WebsocketApp connection instead. This is going to provide some more insight as to what is happening with the connection. so maybe we will get an error besides "the connection is already closed" which tells us nothing about what is happening.
if you run this library from the command line then please be sure to add -vvvv as a CLI switch. this will enable debugging output.
paste the output to me please. working or not I would like to see the output.
I'm not an expert with Python but I did write a UPNP and Websocket implementation from scratch for another home automation platform (HomeSeer) so maybe I can be of some assistance. Not sure how these PY pieces deal with websockets but you need to send ping and respond to pongs to keep the connection alive. This thread and some others has been very helpful to me to know how to compose messages and such but also I don't have a latest Samsung TV to test against so I need to rely on other users in the HomeSeer forum to assist in testing. I do make use of the Tizen Emulator but unfortunately the TV emulator is of vintage 2016 so a number of pieces are missing (ex SSL). I'd more than happy to try to pitch in, especially if you have some source code to sift through. I did however look through Tizen sourcecode on-line postings. I can find the REST implementation but the websocket parts are somewhat incomplete, not sure the posting are more recent or older.
Just getting "Error: No such file or directory" when I run this version ... even with -vvvv there's no other output.
@davidgurr thank you for testing. I will make some changes and see if I can get the directory for the token file correct. I do need to know what OS you are running on.
@dcorsus I am in worse shape then you are. I have a really vintage 2011 TV. so I can't even test anything websocket based. The websocket library that we are using is very good. it takes care of keeping the connection alive and all of the other parts and pieces. It simply has multiple ways to handle opening the websocket and each way has some slight variations in how it handles the websocket connections. I know the wai I am using now works. I have had a user tell me that they got the ad remote box to display on the TV. so we are good there. I am now trying to make the thing cross platform. which is what the last error that has been reported above is about
@kdschlosser You should download the Tizen studio SDK. At least you can test the websocket things (haven't really tried the REST parts). If you use UPNP to discover the devices, the emulator is a bit tricky because it ONLY advertises the MultiScreen service/device as opposed to the IPControl device, which you should see on Samsung TVs 2016 and onward. I did ended up running it on an older PC I had around, a Win7 machine as the emulator gave me issues w the network port bridging. I do have a 2011 vintage series C where I began implementing remote functions, then I bought a J series in 2015 to find out that this vintage uses yet another encryption mechanism compared to the Tizen line, which now recently forces us into SSL. I do a lot of the websocket and SSL debugging against my LG TV which supports both SSL or non SSL, has a lot of similar principles of discovering apps and starting them like the Samsung BUT it offers a lot more, including eventing over the websocket so you can subscribe to autonomous events that will inform you whether app change, channel change or input source change. They also support ICONs for their apps and unlike the Samsung, it tells you exactly which URL so you can retrieve them. They even event volume settings via the websocket. And the icing on the cake, they still support all else through UPNP (renderer, server ..). Someone yesterday posted me the UPNP info for a Q-Series and pretty much all UPNP functions are disappearing, so no way to get input source selection etc. Feel free to post questions, not sure I can answer them, but I'll share what I know.
@kdschlosser I'm running Raspbian "Stretch" on a Raspberry Pi 3 Model B.
TV is a UE50MU6120
@dcorsus The TV Emulation does not support AMD processors. so I am sol with that.
Samsung has a really goofy UPNP they have shown this on things liike their Air Conditioners. There will always be some form of a UPNP class that can be used to discover the TV. I am trying to leverage the UPNP to get a unique ID for the TV this way there will be no need the TV to a static IP address.
As far as the control ability with samsung the older the TV the better. we do not know what the websocket commands are as of yet. mostly because there isn't even a working type of control on the 2017/2018 models that can be reverse engineered. There is a guy in an issue that is posted under Ape's repo that states they decompiled fixed and then recompiled the smart view app and has it working with newer TV's. I dunno why one would do that because smart view is open source and all that needs to be done is you have to ask samsung for it. I do not know how much control the smart view app offers. On my 2011 it only offers playing media. no control other then that. it would be interesting to see what it does with the newer TV's because if it uses the websocket connection then wireshark can be used to view the packets.
@davidgurr cool I should have that path issue fixed in the next few hours.
@kdschlosser Hi Kevin, was recently told that SmartThings does NOT show any status info, just remote control buttons and app choices. What do you mean we do not know what the websocket commands are? I retrieve the app list through websockets and start apps that way, is that what you meant? I actually don't use REST.
There is a whole slew of things that can be controlled through the websocket I am sure.
you can get application lists start applications create a mouse pointer and move it. mouse left and right clicks input text.
These are just to name the ones that I know of. I am willing to bet there are a whole lot more in terms of commands that are available. we simply have to discover them or when an application to control the newer TV's becomes available from samsung it can be reverse engineered.
smart things is not smart view. 2 different things
Now if i ever decide to do something creative in .net I will make an application for the TV and it's sole purpose would be to relay information to a connected client. for control as well as status updates. The Tizen SDK outlines how to do all of this stuff pretty easily. It also has a method for applications to create theor own websocket ports on the TV. it would simply be a matter of the application registering for events on the TV and then relaying the data out the websocket.
this is something I would have already started working on had the TV emulator supported AMD processors.
I specifically called out SmartThings because it seems a bit more advanced as opposed to Smartview. I actually compile in a DLL from Smartview to deal with encryption on 2014-2015 model tvs. I hear you on the embedded app thing, would simplify things a lot. Wonder if we can write apps though that continuously run in the background as opposed to say a netflix or browser app. What is quite ironic is that the TV does send autonomous IME events via the websocket, not sure what the purpose is or what exactly the encrypted data means. If I start a browser on the TV , I can send text to it or I can see autonomous events when you enter or leave the text entry area.
I think the websocket doesn't just spit out events I have a feeling that we would need to register to have the events given. This is why i state that I believe there is a whole lot more to the websocket API then we know about. but the only way to figure it out is to either get the source code to the OS (or possibly even some older samsung product that has a very similar command structure) or we have to wait until Samsung releases some kind of an application that has expanded functionality and then we can reverse engineer it.
Agree, I would think you need to register somewhere. If you study the source code, they have an interesting principle where clients (apps) can communicate to "host", "all", "client" .... you can even test it by sending something back to yourself ex: "ms.channel.emit" : { method : "ms.channel.emit", params : { event : "say", data : "Hello World!", to : "all" } 124 } Come to think of it, the ime events actually come from an app (the browser) although that the discovery info hint to ImeSyncedSupport=true but there is also remote_available=true
{"device":{"FrameTVSupport":"false","GamePadSupport":"true","ImeSyncedSupport":"true","OS":"Tizen","TokenAuthSupport":"true","VoiceSupport":"true","countryCode":"NO","description":"Samsung DTV RCR","developerIP":"0.0.0.0","developerMode":"0","duid":"uuid:c15fc058-0ab1-4c8d-80ca-b3f11d81e291","firmwareVersion":"Unknown","id":"uuid:c15fc058-0ab1-4c8d-80ca-b3f11d81e291","ip":"192.168.2.247","model":"18_KANTM2_QTV","modelName":"QE65Q9FNA","name":"[TV] Samsung Q9 Series (65)","networkType":"wired","resolution":"3840x2160","smartHubAgreement":"true","type":"Samsung SmartTV","udn":"uuid:c15fc058-0ab1-4c8d-80ca-b3f11d81e291","wifiMac":"c0:48:e6:c3:3b:8d"},"id":"uuid:c15fc058-0ab1-4c8d-80ca-b3f11d81e291","isSupport":"{\"DMP_DRM_PLAYREADY\":\"false\",\"DMP_DRM_WIDEVINE\":\"false\",\"DMP_available\":\"true\",\"EDEN_available\":\"true\",\"FrameTVSupport\":\"false\",\"ImeSyncedSupport\":\"true\",\"TokenAuthSupport\":\"true\",\"remote_available\":\"true\",\"remote_fourDirections\":\"true\",\"remote_touchPad\":\"true\",\"remote_voiceControl\":\"true\"}\n","name":"[TV] Samsung Q9 Series (65)","remote":"1.0","type":"Samsung SmartTV","uri":"http://192.168.2.247:8001/api/v2/","version":"2.0.25"}
@dcorsus Smarthings with my TV shows the source, or if the source is the in-built tuner, the tuned channel, or if an app is in the foreground, the name of the app
@davidgurr cool I should have that path issue fixed in the next few hours.
Have you managed to fix the path issue? I am running on Mac OSX
@davidgurr That is actually good news that SmartThings shows the info we would like to retrieve. Probably asked somewhere, which model Samsung do you have?
@dcorsus it's a UE50MU6120
@dcorsus it's a UE50MU6120
@davidgurr Thanks for the info. Curious which UPNP services you have. Did you by any chance retrieve that with Kevin's tools? I'm going to check some of my forums, I might have had a person post UPNP info for an M-model.
@dcorsus is that at https://github.com/kdschlosser/UPNP_Device ?
@dcorsus is that at https://github.com/kdschlosser/UPNP_Device ?
@davidgurr You got me there, maybe Kevin can weigh in. I was under the impression there was script or program just to retrieve all the XML files for UPNP from device XML to Service XML. With that info, you can immediately see which features are made available via the UPNP interface and if properly implemented, which services support events. I have a J series and a C series Samsung and neither of them provide many functions through UPNP. I just dug through my info and found a posting of a K-series model, which seems to support many functions through UPNP. The Q series again, don't seem to publish anything through UPNP (URRGGHH). You don't happen to know how to use wireshark and some network mirroring trick do you :-)
@dcorsus you see how frustrating this is??? Also. I have not seen a single model from any year support events from any UPNP services/functions. thiis would have to be done either through the websocket or by polling UPNP
@davidgurr yes the UPNP_Device repository
@g10chy I have not yet. I will get to it first thing in the morning (UTC -7:00) (01:33 here now)
@kdschlosser I tried installing the UPNP_Device library, but it fails due to the lack of the lxml library. Tried installing that (pip install lxml) and it locks up my Pi on compiling it. So no joy ...
why come you don't do this from a PC. is there a specific need to do the testing from the Raspberry Pi?
OK this should fix the path issue in linux.
https://github.com/kdschlosser/samsungctl/tree/ssl_websocket_only
that branch was confirmed as working before this latest patch to it I am assuming the user that reported it as working was running Windows. So all i did was put in the proper path for the Linux as to where to save the token file information to
so on Windows it is %appdata%\samsungctl\token.txt and on every other OS is it ~/.samsungctl/token.txt
so on Windows no matter what user is logged in it will work without the need to register the remote again. On every other OS you will need to register the program for each username you are logged in with that uses the program.
The token.txt file contains lines that are ip:token there is no discovery in that branch. That branch only supports legacy and the new ssl token based websocket. it is otherwise exactly the same as the original samsungctl.
it is just to get you guys back up and running again.
@kdschlosser I've never used Python on Windows, but have it all set up and handy on my Pi. So it's just quicker and easier to get started.
I'll check out the new ssl_websocket_only branch shortly and report back ...
I did "samsungctl --host 192.168.0.12 KEY_GUIDE" with the following samsungctl.conf:
{ "name": "samsungctl", "description": "Pi", "id": "", "method": "websocket", "port": 8002, "timeout": 10 }
Got a prompt from the TV to authorise, then got the following error:
close status: 31522 Traceback (most recent call last): File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.7.1+1', 'console_scripts', 'samsungctl')() File "build/bdist.linux-armv7l/egg/samsungctl/main.py", line 110, in main File "build/bdist.linux-armv7l/egg/samsungctl/remote.py", line 11, in init File "build/bdist.linux-armv7l/egg/samsungctl/remote_websocket.py", line 86, in init RuntimeError: Auth Failure
ok are you accepting the remote connection on the TV??? it should be prompting you to accept the connection. I did not set a hell of a large timeout for that bit.. to be honest IDK why i made it so small. brain dead I think. so you have 3 seconds to click on the accept button when it pops up.
@kdschlosser By the way Kevin, I have it now confirmed that with SmartThings and a Q-series, SmartThing does update dynamically (same source told me before it didn't) so it is not through UPNP and it must be through the websocket ... or someother socket (LG actually uses multiple websockets).
So ..... we just need to figure out a way to trace it. I suspect that SmartThings perhaps from day one was using SSL (it doesn't work against J-series) so WireShark tracing might not pan out at all. However, just in the remote case that SmartThings was not using SSL, say against a M-series, that would be our target to go snoop the network.
Still snooping through the posted Tizen source, but so far I only find the things we already know.
Hmm ... that might be it. I'm accepting it but it might not be quick enough. I'll give it another go ... On Friday, 21 December 2018, 19:28:07 GMT, Kevin Schlosser notifications@github.com wrote:
ok are you accepting the remote connection on the TV??? it should be prompting you to accept the connection. I did not set a hell of a large timeout for that bit.. to be honest IDK why i made it so small. brain dead I think. so you have 3 seconds to click on the accept button when it pops up.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
OK, odd results ...
First time, I get the auth prompt, accept (quickly) and the Guide does come up (yay) but I get the following error returned:
Traceback (most recent call last): File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.7.1+1', 'console_scripts', 'samsungctl')() File "build/bdist.linux-armv7l/egg/samsungctl/main.py", line 112, in main File "build/bdist.linux-armv7l/egg/samsungctl/remote_websocket.py", line 140, in control RuntimeError: Receive Failure
Then when I repeat the same command line, I get no auth prompt and no guide displayed, and the following error:
Traceback (most recent call last): File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.7.1+1', 'console_scripts', 'samsungctl')() File "build/bdist.linux-armv7l/egg/samsungctl/main.py", line 110, in main File "build/bdist.linux-armv7l/egg/samsungctl/remote.py", line 11, in init File "build/bdist.linux-armv7l/egg/samsungctl/remote_websocket.py", line 86, in init RuntimeError: Auth Failure
If I delete the remote authorisations from the TV's device list, then it succeeds again - but just the once.
So it seems like there seems to be something missing after the first successful connection that needs to be saved and reused for subsequent connections.
not odd..
do me a favor. run it again with the -vvvv cli switch. paste the output to me please.
I am also going to put in another PR to that branch. one that will verify the token is getting saved and I am also going to give a longer wait for the authorization as well as the receive timer
OK i pushed a new version to that branch. I removed raising an exception of the receive timer expires. I also changed the authorization timeout to 30 seconds. and i added a bunch of additional logging.
Right, progress!
Now it succeeds on subsequent attempts, but the TV is prompting for authorisation every time. This is despite the TV being set to "Access Notification: Off".
Here's the output for the first attempt and two subsequent ones:
[09:10:32] openhabian@openHABianPi:~/samsungctl-kdschlosser/samsungctl$ samsungctl -vvvv --host 192.168.0.12 KEY_GUIDE using saved token: 15716987 Websocket Connection Opened incoming message: {"data":{"clients":[{"attributes":{"name":"c2Ftc3VuZ2N0bA==","token":"15716987"},"connectTime":1545469865341,"deviceName":"c2Ftc3VuZ2N0bA==","id":"a13c8910-9c46-4057-9f53-5d6872818ac1","isHost":false}],"id":"a13c8910-9c46-4057-9f53-5d6872818ac1","token":"21129284"},"event":"ms.channel.connect"}
new token data: 192.168.0.12:21129284 Access granted. Sending control command: KEY_GUIDE Receive timer timed out Websocket Connection Closed [09:11:10] openhabian@openHABianPi:~/samsungctl-kdschlosser/samsungctl$ !! samsungctl -vvvv --host 192.168.0.12 KEY_GUIDE using saved token: 15716987 Websocket Connection Opened incoming message: {"data":{"clients":[{"attributes":{"name":"c2Ftc3VuZ2N0bA==","token":"15716987"},"connectTime":1545469884776,"deviceName":"c2Ftc3VuZ2N0bA==","id":"662b3fb5-5291-4a35-b592-46a4ab783c65","isHost":false}],"id":"662b3fb5-5291-4a35-b592-46a4ab783c65","token":"17019686"},"event":"ms.channel.connect"}
new token data: 192.168.0.12:17019686 Access granted. Sending control command: KEY_GUIDE Receive timer timed out Websocket Connection Closed [09:11:34] openhabian@openHABianPi:~/samsungctl-kdschlosser/samsungctl$ !! samsungctl -vvvv --host 192.168.0.12 KEY_GUIDE using saved token: 15716987 Websocket Connection Opened incoming message: {"data":{"clients":[{"attributes":{"name":"c2Ftc3VuZ2N0bA==","token":"15716987"},"connectTime":1545469904397,"deviceName":"c2Ftc3VuZ2N0bA==","id":"dbcd923-946-4a4a-967e-8e89ce75a129","isHost":false}],"id":"dbcd923-946-4a4a-967e-8e89ce75a129","token":"59996395"},"event":"ms.channel.connect"}
new token data: 192.168.0.12:59996395 Access granted. Sending control command: KEY_GUIDE Receive timer timed out
Websocket Connection Closed
OooOo there are 2 tokens...
check that out.
maybe I am grabbing the wrong token. it is using the saved token tho. I am not sure why it keeps on wanting to authorize the connection. I think I know where i messed up. I didn't think the token would refresh it's self each and every single time you connected. apparently it is. I know how to handle the issue tho. Give me a few minutes to fix it.
{
"data": {
"clients": [
{
"attributes": {
"name":"c2Ftc3VuZ2N0bA==",
"token":"15716987"
},
"connectTime":1545469904397,
"deviceName":"c2Ftc3VuZ2N0bA==",
"id":"dbcd923-946-4a4a-967e-8e89ce75a129",
"isHost":false
}
],
"id":"dbcd923-946-4a4a-967e-8e89ce75a129",
"token":"59996395"
},
"event":"ms.channel.connect"
}
OK i just pushed a new commit to that same branch. I believe i fixed the issue with it using the wrong token. It will automatically fix the token.txt file so there is no need for you to do anything. it will also grab the last stored token in the file. which will be the one from the last time you connected with the program. hopefully you should not see that authorization message on the TV again.
and the JSON data above is organized showing you the token you used to connect which is under the attributes section and then the new token being issued under the data section.. so it makes a wee bit more sence to me after staring at it for a bit.
Hmm.
No auth prompt on the second attempt, but no success either ... waits a long time and then returns auth failure:
samsungctl -vvvv --host 192.168.0.12 KEY_GUIDE using saved token: &token=59996395 Websocket Connection Opened incoming message: {"data":{"clients":[{"attributes":{"name":"c2Ftc3VuZ2N0bA==","token":"59996395"},"connectTime":1545479841553,"deviceName":"c2Ftc3VuZ2N0bA==","id":"7259c24-6ee3-4ff6-bad7-43185c82af","isHost":false}],"id":"7259c24-6ee3-4ff6-bad7-43185c82af","token":"14604647"},"event":"ms.channel.connect"}
new token: 192.168.0.12:14604647 Access granted. Sending control command: KEY_GUIDE Receive timer timed out Websocket Connection Closed [11:57:29] openhabian@openHABianPi:~/samsungctl-kdschlosser/samsungctl$ !! samsungctl -vvvv --host 192.168.0.12 KEY_GUIDE using saved token: &token=14604647 Websocket Connection Opened incoming message: {"data":{"clients":[{"attributes":{"name":"c2Ftc3VuZ2N0bA==","token":"14604647"},"connectTime":1545479863360,"deviceName":"c2Ftc3VuZ2N0bA==","id":"5ab284b7-da14-4726-a2a7-e556ee15c3e7","isHost":false}],"id":"5ab284b7-da14-4726-a2a7-e556ee15c3e7"},"event":"ms.channel.connect"}
Websocket Connection Closed Traceback (most recent call last): File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.7.1+1', 'console_scripts', 'samsungctl')() File "build/bdist.linux-armv7l/egg/samsungctl/main.py", line 110, in main File "build/bdist.linux-armv7l/egg/samsungctl/remote.py", line 11, in init File "build/bdist.linux-armv7l/egg/samsungctl/remote_websocket.py", line 102, in init RuntimeError: Auth Failure
hmmm... that looks like a timing issue. let me check something.
yeah I see the thing that is going on. I had the placement of the mechanism that stops that authentication wait at the wrong level.
if a proper token is supplied then the TV will respond with ms.channel.connect but no new token. I had to move the stopping of the timer down one level in the code block.
I already pushed the fix to that branch. This should be the last one for the websocket ssl. I have to now make some changes that will allow the program to dynamically set between using the non ssl and the ssl variant but it is looking like this works.
and that is kinda crappy also that the TV does not send a response for the key presses so we are going to have to rely on a preset timeout period.
OK so it is now time to close this issue. The websocket portion of things should be working fine now.
This issue is getting to be a bother to scroll all the way down to enter a comment any way
Not so fast ... a couple of issues remain. Very nearly there though!
1) "setup.py install" fails saying:
IOError: [Errno 2] No such file or directory: 'README.rst'
I edited setup.py to change README.rst to README.md and it then installed.
2) On running "samsungctl -vvvv --host 192.168.0.12 KEY_GUIDE", the TV correctly prompts for authorisation and displays the guide, but I get the following output:
Traceback (most recent call last): File "/usr/local/bin/samsungctl", line 11, in
load_entry_point('samsungctl==0.8.0b0', 'console_scripts', 'samsungctl')() File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/main.py", line 192, in main logging.warning("Warning: No keys specified.") File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote.py", line 21, in exit self.remote.exit(type, value, traceback) File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote_websocket.py", line 146, in exit self.close() File "/usr/local/lib/python2.7/dist-packages/samsungctl-0.8.0b0-py2.7.egg/samsungctl/remote_websocket.py", line 156, in close raise RuntimeError('Close Failure') RuntimeError: Close Failure
Running samsungctl again works fine - no re-request for auth, no console output, and displays TV guide just fine.
@davidgurr @kdschlosser
Are you up for some real debugging ?
Samsung TVs can be fairly easy be put in a debug mode, described here (https://developer.samsung.com/tv/dev...apps/debugging)
What you would need is: a/ IP address of your laptop or desktop that you plan to use to capture some logs b/ IP address of the TV
If you look at the instructions: go to apps, enter 12345 and done. That should cause a pop up to appear. There you turn on debug and enter the IP address of your laptop/desktop. Click OK, boot TV
Now you go to your desktop and you open a browser and enter
Now you open the SmartThings app on your phone (make sure it was not active when you began logging because we want to see what it does when it registers with the TV) and change some input settings, change channels , this should cause log entries. Capture that logging info (select all, copy, paste to file). Set logging back to Error. Repeat the same thing on your TV, go to apps, enter 12345, set debug off.
Thoughts?
Dirk
Thanks for putting in a fix for the timeout @kdschlosser. I can see you’ve added the LG logging to the file. To test this with my 2017/2018 tv I’m guessing I’ll need to checkout this timeout branch and call the method. What command should I issue? When I tried using this library earlier today diectlty it was giving me errors about bytes so I’m guessing I was missing some parameters.