kdschlosser / samsungctl

Remote control Samsung televisions via a TCP/IP connection
MIT License
148 stars 34 forks source link

Develop branch updated #106

Open kdschlosser opened 5 years ago

kdschlosser commented 5 years ago

OK folks I just updated the develop branch. I did a massive amount of code changes.

There is also a new file called RUN_ME.py. this is a test program. You can run this if you like it will prompt you if it needs user input as it runs. The program never reuses the same config file so pay attetion to your paired devices on the TV it's self. You will have to delete the pairings.

The test program tests every single aspect of the library. it is going to output to the console window. it is going to be a HUGE amount of data. so if you want to scroll back thn I would suggest increasing the buffer size to say 10K lines.

The program is also going to output everything to a series of files. DO NOT POST ERRORS OR CREATE NEW ISSUES.

zip up the directory and attach the zip to a post here.

DO NOT CREATE AN ISSUE WITHOUT HAVING ATTACHED THE OUTPUT FROM THE TEST PROGRAM.

That is the only thing I am going to need to be able to solve any issues. you do not have to pass any parameters to the test program. it is going to do what it needs to do. If the program goes nuts and keeps on repeating the same error. please ctrl+c the thing to stop it. If the test program runs for longer then 60 seconds it is frozen. you will need to ctrl+c it or terminate thee process.

it is still going to output data to the file if it get stuck in an endless loop or if it freezes. so please attach the files.

ghost commented 5 years ago

Getting error trying to install develop branch:

pip install git+git://github.com/kdschlosser/samsungctl@develop

Collecting git+git://github.com/kdschlosser/samsungctl@develop
  Cloning git://github.com/kdschlosser/samsungctl (to revision develop) to c:\users\user\appdata\local\temp\pip-req-build-8thd5o
    Complete output from command python setup.py egg_info:
    running egg_info
    creating pip-egg-info\samsungctl.egg-info
    writing requirements to pip-egg-info\samsungctl.egg-info\requires.txt
    writing pip-egg-info\samsungctl.egg-info\PKG-INFO
    writing top-level names to pip-egg-info\samsungctl.egg-info\top_level.txt
    writing dependency_links to pip-egg-info\samsungctl.egg-info\dependency_links.txt
    writing entry points to pip-egg-info\samsungctl.egg-info\entry_points.txt
    writing manifest file 'pip-egg-info\samsungctl.egg-info\SOURCES.txt'
    c:\programdata\anaconda2\lib\site-packages\setuptools\dist.py:397: UserWarning: Normalizing '0.8.65b' to '0.8.65b0'
      normalized_version,
    error: package directory 'samsungctl\remote_encrypted\py3rijndael' does not exist

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in c:\users\user\appdata\local\temp\pip-req-build-8thd5o\
kdschlosser commented 5 years ago

fixed

ghost commented 5 years ago

Thanks! But now new issue:

samsungctl --host <ip> KEY_SOURCE

Traceback (most recent call last):
  File "c:\programdata\anaconda2\lib\runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "c:\programdata\anaconda2\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\ProgramData\Anaconda2\Scripts\samsungctl.exe\__main__.py", line 5, in <module>
  File "c:\programdata\anaconda2\lib\site-packages\samsungctl\__init__.py", line 20, in <module>
    from .remote import Remote # NOQA
  File "c:\programdata\anaconda2\lib\site-packages\samsungctl\remote.py", line 7, in <module>
    from .remote_encrypted import RemoteEncrypted
  File "c:\programdata\anaconda2\lib\site-packages\samsungctl\remote_encrypted\__init__.py", line 24, in <module>
    from . import crypto # NOQA
  File "c:\programdata\anaconda2\lib\site-packages\samsungctl\remote_encrypted\crypto.py", line 6, in <module>
    from .aes import AES, AES_CIPHER, MODE_CBC
  File "c:\programdata\anaconda2\lib\site-packages\samsungctl\remote_encrypted\aes.py", line 3, in <module>
    from .keys import wbKey, transKey
ImportError: cannot import name transKey
kdschlosser commented 5 years ago

ok cool. I know there are going to be some issues. II will get them fixed

kdschlosser commented 5 years ago

fixed

ghost commented 5 years ago

thanks for prompt reply. now issue is this:

samsungctl --host <ip> KEY_SOURCE
Traceback (most recent call last):
  File "c:\programdata\anaconda2\lib\site-packages\samsungctl\upnp\discover.py", line 99, in __init__
    sock.bind((local_address, 0))
  File "c:\programdata\anaconda2\lib\socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 10049] The requested address is not valid in its context
169.254.119.51
Traceback (most recent call last):
  File "c:\programdata\anaconda2\lib\site-packages\samsungctl\upnp\discover.py", line 99, in __init__
    sock.bind((local_address, 0))
  File "c:\programdata\anaconda2\lib\socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 10049] The requested address is not valid in its context
169.254.111.71
Traceback (most recent call last):
  File "c:\programdata\anaconda2\lib\site-packages\samsungctl\upnp\discover.py", line 99, in __init__
    sock.bind((local_address, 0))
  File "c:\programdata\anaconda2\lib\socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
error: [Errno 10049] The requested address is not valid in its context
169.254.217.193
Unable to discover any TV's

same if use --port 8002 --method websocket

kdschlosser commented 5 years ago

ok

kdschlosser commented 5 years ago

run the RUN_ME.py file do not use the command line for the moment.

ghost commented 5 years ago

duplicate recursion messages excluded:

Run tests on TV UN65NU7300? ((y/n):y
SETTING UP REMOTE
Traceback (most recent call last):
  File "RUN_ME.py", line 197, in run_test
    remote = samsungctl.Remote(config)
  File "C:\ProgramData\Anaconda2\Lib\site-packages\samsungctl\remote.py", line 31, in __call__
    remote = RemoteWebsocket(config)
  File "C:\ProgramData\Anaconda2\Lib\site-packages\samsungctl\utils.py", line 24, in wrapper
    return func(*args, **kwargs)
  File "C:\ProgramData\Anaconda2\Lib\site-packages\samsungctl\remote_websocket.py", line 34, in __init__
    super(RemoteWebsocket, self).__init__(config)
  File "C:\ProgramData\Anaconda2\Lib\site-packages\samsungctl\utils.py", line 24, in wrapper
    return func(*args, **kwargs)
  File "C:\ProgramData\Anaconda2\Lib\site-packages\samsungctl\websocket_base.py", line 29, in __init__
    self._send_lock - threading.Lock()
  File "C:\ProgramData\Anaconda2\Lib\site-packages\samsungctl\upnp\__init__.py", line 31, in __getattr__
    if self.is_connected and item in self._devices:
  File "C:\ProgramData\Anaconda2\Lib\site-packages\samsungctl\upnp\__init__.py", line 31, in __getattr__
    if self.is_connected and item in self._devices:
  File "C:\ProgramData\Anaconda2\Lib\site-packages\samsungctl\upnp\__init__.py", line 31, in __getattr__
    if self.is_connected and item in self._devices:
RuntimeError: maximum recursion depth exceeded while calling a Python object
kdschlosser commented 5 years ago

ok I just updated the develop branch once again. so give it a go. use the RUNME.py file to run tests against the TV. It will test every available feature to make sure it is working. the test supports multiple TV's and it will ask if you want to run the tests for each TV it locates. it is going to ask to create \tests in the root of thee system drive on the machine the tests are run from. it is going to create a series of files in there. I need a copy of those file whether or not the tests ended. It may get stuck at the end of the tests. if it does (no output to the screen for more then 10 seconds) just kill the process or ctrl+c it. zip up the tests folder and attach it to a post. if you have the ability to run the tests from python 2.7 and python >= 3.5 that would be a huge help. just be sure to zip up the tests folder between running the tests.

Once you have paired the TV if you leave the .config files in the tests folder you will not have to pair the TV again. You do not need to delete the files in the folder either. the program will overwrite any files it needs to.

Kryzek commented 5 years ago

tests.zip

mlebrun commented 5 years ago

I downloaded the develop branch, installed but no matter what, I get this:

$ samsungctl --host 192.168.1.222 --name myremote KEY_VOLDOWN
127.0.0.1
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/samsungctl-0.8.65b0-py2.7.egg/samsungctl/upnp/discover.py", line 129, in run
    (IPV4_MCAST_GRP, 1900)
error: [Errno 49] Can't assign requested address
Unable to discover any TV's

Was just trying to get a simple command to work before running the suite. Seems like no matter what I pass, I keep getting Can't assign requested address?

mlebrun commented 5 years ago

I've also tried samsungctl --host 192.168.1.222 --port 8001 --method websocket --interactive, and other variations. Always the same thing.

Kryzek commented 5 years ago

It seems my tests.zip is not very helpful since I get also Unable to discover any TV's (UE46F6400) when trying samsungctl --host 192.168.0.25

kdschlosser commented 5 years ago

you need to run the RUN_ME.py file.

kdschlosser commented 5 years ago

@mlebrun

That error is a printout. it is a caught exception. I added some debugging to see what local IP addresses come up..

If you can do me a favor tho. and use the RUN_ME.py file. this is going to run a slew of tests on the TV. I still need to update the command line portion of the library. but first thing is first. i need to get the core functioning properly then i will update the command line portion of the program.

.

Kryzek commented 5 years ago

I did run the RUN_ME.py with python version 2.7.13 on linux, tests -folder zip is found on https://github.com/kdschlosser/samsungctl/issues/106#issuecomment-470203468 Running RUN_ME.py did not pop up authorization on tv screen, should I have seen it? On the ssdp_output.log there are some traces of the television (192.168.0.25).

Thank for your hard work from Finland.

kdschlosser commented 5 years ago

@Kryzek

sorry about that. I missed your post.

I need you to turn your TV on. Then open your browser and go to this website.

http://192.168.0.25:7676/smp_14_

THIS PART IS IMPORTANT after the page loads right click in the middle of the browser. there should be a menu option to view the page as source (or something to that effect). one that loads. copy all of the information you see in there. paste the data into a text file and attach the file. please DO NOT paste it into a post here. it is going to be a lot of XML data. and it is gong to be easier to handle as a file.

Kryzek commented 5 years ago

Hi, I checked and smp14 did not return anything, it is totally blank page.

I browsed through the ssdp_output.log and opened all the URIs with LOCATION": "http://192.168.0.25:7676/smp_xx -entries I found there. Others smpxx:s returned XML-code which I copy-pasted to this file: smp_sources.txt

mlebrun commented 5 years ago

tests.zip Here you go! You're doing great work! Let me know if there's any other way I can try and help!

mlebrun commented 5 years ago

It seemed to get stuck on an HBO app?

Kryzek commented 5 years ago

I tested also on Windows-environment and got better results: tests-win.zip

kdschlosser commented 5 years ago

OK i just updated the develop branch

@Kryzek you need to accept the pairing on the TV when it asks.

@mlebrun I am hoping this change fixes the issue for the applications.

mlebrun commented 5 years ago
ā—‹ ā†’ sudo python samsungctl/RUN_ME.py 
This is going to test the functionality of the TV.
It will log all tests to the screen as well as to a series of files.
The files will be located in /tests on your HDD. If you can please Zip
the contents of that folder and attach it to a post here

https://github.com/kdschlosser/samsungctl/issues/106

it would be appreciated

press any key to continue...

Traceback (most recent call last):
  File "samsungctl/RUN_ME.py", line 65, in <module>
    version=' '.join(version),
TypeError: sequence item 1: expected string, tuple found

It didn't make it that far this time? Let me know how to proceed, I'll try whatever you need!

kdschlosser commented 5 years ago

ahh yes a nested tuple..

I updated the develop branch. it has been fixed

mlebrun commented 5 years ago

I think it might've failed around the same spot?

app.name: HBO GO
app.id: None
Traceback (most recent call last):
  File "samsungctl/RUN_ME.py", line 755, in <module>
    run_test(tests_to_run.pop(0))
  File "samsungctl/RUN_ME.py", line 699, in run_test
    print('app.is_runnning:', app.is_runnning)
  File "/Library/Python/2.7/site-packages/samsungctl-0.8.65b0-py2.7.egg/samsungctl/application.py", line 181, in __getattr__
    raise AttributeError(item)
AttributeError: is_runnning
Power Test Callback
name = Samsung TV Connector [be-dev40]
description = be-dev40
host = 192.168.1.222
port = 8001
id = 3bc39b1-b0ef-46c2-a647-4c77b1f2b4a
method = websocket
timeout = 0
token = None
upnp_locations = http://192.168.1.222:7676/rcr/, http://192.168.1.222:9197/dmr, http://192.168.1.222:7678/nservice/
paired = False
mac = e4:7d:bd:e4:b2:ef
model = UN40KU6300
app_id = None
uuid = 822f9294-0d1f-41ff-871b-05c623f9ece3
display_name = None
cec:
  None

state = True

tests.zip

kdschlosser commented 5 years ago

ha!

is_runnning

to many n's

Kryzek commented 5 years ago

@Kryzek you need to accept the pairing on the TV when it asks.

I just do not get the authorization popup to accept on the television screen when running from the Linux (raspberry pi). I have tried with 2.7 and 3.5 -branch Pythons too. On Windows machine it showed popup right away.

Here is logs yet again from the Linux tests.zip

mlebrun commented 5 years ago
    Popular Now
'[DEBUG][4673746368] samsungctl.utils.wrapper
AppData.__init__(application=<samsungctl.application.Application object at 0x10c64b110>, title=u'2 Dope Queens', id=178955, appId=u'sE95AS5GGv.HboGoTizen', isPlayable=0, subtitle=None, appType=u'pxdb_app', liveLauncherType=u'', action_play_url=u'eyJjb21ldElkIjoidXJuOmhibzpzZXJpZXM6R1dpOEVDdzJGVW82VlBBRUFBQUZZIiwiZ29WMklkIjoidXJuOmhibzpzZXJpZXM6R1dpOEVDdzJGVW82VlBBRUFBQUZZIiwiZ29WMUlkIjoiR09ST1NUR1A3MTUzMiJ9', serviceId=u'', action_type=u'APP_LAUNCH', display_from=1517632200, display_until=1609498740, subtitle2=u'', subtitle3=u'', icon=u'/opt/usr/apps/DownloadManager/data/sE95AS5GGv/178955')

Traceback (most recent call last):
  File "samsungctl/RUN_ME.py", line 759, in <module>
    run_test(tests_to_run.pop(0))
  File "samsungctl/RUN_ME.py", line 718, in run_test
    print('       content.title:', content.name)
  File "/Library/Python/2.7/site-packages/samsungctl-0.8.65b0-py2.7.egg/samsungctl/application.py", line 496, in __getattr__
    raise AttributeError(item)
AttributeError: name
Power Test Callback
name = Samsung TV Connector [be-dev40]
description = be-dev40
host = 192.168.1.222
port = 8001
id = 42b4b62-d8ed-4c25-a60c-f31c7b8c73d
method = websocket
timeout = 0
token = None
upnp_locations = http://192.168.1.222:7676/rcr/, http://192.168.1.222:9197/dmr, http://192.168.1.222:7678/nservice/
paired = False
mac = e4:7d:bd:e4:b2:ef
model = UN40KU6300
app_id = None
uuid = 822f9294-0d1f-41ff-871b-05c623f9ece3
display_name = None
cec:
  None

state = True

tests.zip

kdschlosser commented 5 years ago

@mlebrun

fixed and pushed

mlebrun commented 5 years ago
'[DEBUG][4513625536] samsungctl.utils.wrapper
AppData.is_playable()

'[DEBUG][4513625536] samsungctl.utils.wrapper
AppData.is_playable => False

       content.is_playable: False
       content.subtitle: None
       content.subtitle2: 
       content.subtitle3: 
Traceback (most recent call last):
  File "samsungctl/RUN_ME.py", line 759, in <module>
    run_test(tests_to_run.pop(0))
  File "samsungctl/RUN_ME.py", line 701, in run_test
    print('app.name:', app.name)
  File "samsungctl/RUN_ME.py", line 117, in print
    output = ' '.join(str(arg) for arg in args)
  File "samsungctl/RUN_ME.py", line 117, in <genexpr>
    output = ' '.join(str(arg) for arg in args)
UnicodeEncodeError: 'ascii' codec can't encode character u'\uff06' in position 19: ordinal not in range(128)
Power Test Callback
name = Samsung TV Connector [be-dev40]
description = be-dev40
host = 192.168.1.222
port = 8001
id = 44c127b-6054-4a28-88fb-821508fe187
method = websocket
timeout = 0
token = None
upnp_locations = http://192.168.1.222:7676/rcr/, http://192.168.1.222:9197/dmr, http://192.168.1.222:7678/nservice/
paired = False
mac = e4:7d:bd:e4:b2:ef
model = UN40KU6300
app_id = None
uuid = 822f9294-0d1f-41ff-871b-05c623f9ece3
display_name = None
cec:
  None

state = True

tests.zip

kdschlosser commented 5 years ago

OK I have updated it again

mlebrun commented 5 years ago

tests.zip

Finally got past that part! This time it managed to turn off the TV but either failed to detect it had turned off or couldn't turn it back on, but I'll leave that to you. All I know is the final state of the TV was actually off.

Also, just wanted to say again, I appreciate the hard work. If some of my responses are sparse, it just because I'm trying to get you the logs back ASAP and keep the feedback loop quick!

kdschlosser commented 5 years ago

@mlebrun

no worries m8. I appreciate the help in doing this. I do not know if you have looked at the log files or not. But it gives you an idea of why this is a real pain.

iit's a pretty sizeable amount of data. and just because Samsung wants to be a bunch of dingle berries a lot of the data changes. whether it's the syntax. the information returned. names of items returned. it changes between years. Samsung cannot seem to lock into a single API and stick with it. they always have to be screwing around with it. It makes it difficult. and then to toss in some more inconsistencies by Samsung. some of the data that gets returned is XML data. and sometimes the returned XML will have encoding set and sometimes not. and that causes issues with the actual string type. whether it''s a string or Unicode for python 2 or string and bytes for python 3. so that adds even more complexity.

That is a lot of what I am dealing with during this debugging process.

It is nice to see that the applications are working finally. I know that the majority of everyone wanting this library to work wants to use it in HASS. Unless someone rolls up their sleeves and codes in all of the things that can be done. HASS is going to be limited to the remote button presses an powering off and on the TV. all of the cool stuff is going to be missed out on.

things like this.. If you have a DirecTV set top box plugged in you can control the box using the samsung remote. and this is not done over CEC. I can actually control the thing from the library. There are also things like video playback. applications and staunching applications or application content. recording live TV. changing the TV channel. Getting a channel lineup. retrieving the OTA EPG data. playing Radio stations. all kinds of things that most people do not even know can be done with this library.

aspect ratio, contrast, sharpness, color, brightness.. I have a few "special" controls for Frame TV's that need to be tested.

I have a way of learning what the websocket commands are. If you are willing to do some experimentation I am sure there is a whole lot more we can add to the library for the newer TV's

kdschlosser commented 5 years ago

I also updated the develop branch again.

mlebrun commented 5 years ago

Just woke up and getting ready to go to my nephew's birthday party (writing this on my phone) but I'll retest when I can. (I know not super important for the details but I think clear communication/transparency is a good thing šŸ‘Œ)

Anyways, all of the stuff sounds awesome! I can handle the HASS side of things, or at the very least give it a shot. I've merged the current channel changing stuff in which isn't that crazy. I'll be upfront, python isn't my strongest language but I'm looking at it as an opportunity to get more comfortable with it. It doesn't seem that hard, just need practice.

As far as HASS goes, I think if we can just get this library working for the basic stuff, I can fix HASS in it's current implementation. Then we can start adding more features to that.

I think post people don't mind having only what's currently there, and I get that, that's fine. So maybe I can fix that in the mean time, and then we can slowly add more features as you solidify them in this library? I think for me, it would just be a lot to do a full rewrite while also adding a slew of new features in the process and not breaking anything.

What are your thoughts? Either way, I'm ready to help put and dig in, just the intricacies of this library are beyond me, but I can handle implementation on the HASS side and help with documentation/testing on this side. Let me know what you think!

mlebrun commented 5 years ago

Also, Samsung is pretty insane to have an API and then constantly change it. If it were just a working, stable API, people would by these TV's like hotcakes knowing how useful they are. Such a headache! I'll try and look at the logs and test file to gain an understanding of what's going on.

kdschlosser commented 5 years ago

the thing is with the current implementation for HASS it does not have the concessions for adding the new features. I think that a complete rewrite is going to need to be done anyway if you want to add the features. I do not think that they can bee added to the media_player component. an example would be the applications on the TV. I think that the best way to go about it would be similar to how the zwave component works and an entity would have to be made for each application/ well at least the applications that provide content. each application would have to be a subclass of thee media_player component essentially.

Not being familiar with python and trying to tackle the HASS side of things is a very large undertaking. because of the voodoo magic code in HASS it is not simple to follow a data path to know how the various pieces of HASS work. Normally an IDE would be able to correctly tell you what thee calling arguments of a function are or show you the doc string for the different objects. but because if that "magic" code the IDE is not able to collect that information or sometimes it returns the wrong information all together. then you have to go searching. that is what I do not have the time to do.

The development of the samsungctl library is moving forward at a good pace. I have people including yourself that have the different connection types. I am pretty sure that I am at the end of the bug testing. or very close to the end of the testing. so not to much longer.

msvinth commented 5 years ago

Ran RUN_ME.py. As others has reported from a Linux and Mac machines it never showed the auth prompt on the TV. From Windows it showed and I pressed Allow but it seems the Auth failed.

tests.zip

kdschlosser commented 5 years ago

OK I updated the develop branch again.

I need to see the logs for both the Linux and Mac computers/devices in order to bee ablee to determine what is happening.

mlebrun commented 5 years ago

tests.zip

One option is to fix the limited, built-in version (which again, I think the majority of people are happy with), but then we could make a Hass add-on which would allow us flexibility in not having to use the media_player component or do massive changes. For most people, they could use the limited subset and for people wanting the advanced features, they could use the add-on. (just thinking of ideas to avoid a full rewrite). I'm not sure the core maintainers of HA even necessary want substantial changes to what exists. Or maybe I'm wrong but just don't feel like taking it on.

teeedubb commented 5 years ago

tests.zip

Hi,

Script hung on what seems o be waiting on authorisation, but I had allowed all pop ups that displayed.

kdschlosser commented 5 years ago

@mlebrun

It makes no difference to me either way. I am willing to advise on how to use samsungctl. I am not going to do anything on the hass side of things someone else can make that decision I guess.

also I would double check with how you are cloning the develop branch. There are tracebacks in the logs you attached that references code on specific lines that is no longer there and has been moved. best way is to just click the button on the branch and download the thing that way.

mlebrun commented 5 years ago

Hm, that's what I thought I had been doing. Strange. Maybe I forgot to refresh before the last run or something. But cool, so then I'll try and do what I can for the Hass side, first priority for me, just trying to reimplement what's documented/expected to work. From there, I can figure out a path forward. You focus on this library and we'll just see where it goes!

I refresh the develop branch page a few times so hopefully this turns out better?

tests.zip

msvinth commented 5 years ago

Reran test on linux, mac, and windows. linux and mac did not discover tv it seems. Windows did, but fails on auth. linux_tests.zip mac_tests.zip windows_tests.zip

Kryzek commented 5 years ago

With latest development-version I finally got pairing messages on the television when running from Linux-box. And therefore tests started also running.

I noticed an error flying by:

satellite_id = None
 sort = 'Number'

Traceback (most recent call last):
  File "./RUN_ME.py", line 771, in <module>
    run_test(tests_to_run.pop(0))
  File "./RUN_ME.py", line 668, in run_test
    print('channel.number: ' + str(_channel.number))
AttributeError: 'NoneType' object has no attribute 'number'

I also noticed that contents of the url mentioned inside 0ee6b280-00fa-1000-92dd-5056bf0eefd0-program_information_url.3.5.log is not included anywhere so I included the contents of that URI also into zip with name CurrentProgInfo.dat

And here are the test results from the Linux-box with latest version: tests.zip

kdschlosser commented 5 years ago

@mlebrun I updated the develop branch again. give it a go.

mlebrun commented 5 years ago

tests.zip

kdschlosser commented 5 years ago

@Kryzek

can you please provide me with a copy of this file

http://192.168.0.25:9090/BinaryBlob/1/ChannelList.dat

and TY for giving me the other file as well that helped out.

kdschlosser commented 5 years ago

@msvinth

I updated the develop branch and increased the timeout for the discovery as well as added someeadditional logging. Hopefully we can nail down why the TV is not being discovered properly.