Code Monkey home page Code Monkey logo

pylips's Issues

[FEAT] Add input switch commands

Is your feature request related to a problem? Please describe.
I'd like to have a way to switch between HDMI inputs

Describe the solution you'd like
I'd be surprised if such API was not available, but I don't have enough experience to tell.

[BUG] MQTT not working with utf8 encoded payload (ex.: from fhem)

Describe the bug
mqtt publish from fhem is not working with the following command:

set myBroker publish /smarthome/sz/tv/cmd {"command":"volume_down"}

I have debugged it, and it seems the payload is utf8 encoded!
So after changing line 338 from:

message = json.loads(msg.payload)

to:

message = json.loads(msg.payload.decode('utf-8'))

fixed the issue for me!
I think that change makes no problem with no utf8 encoded strings, but that has to be tried.
Sadly i dont have any other mqtt device to test.

Can you please test this on your side and add this fix?

To Reproduce
see above

Expected behavior
fhem mqtt publish should work with pylips

[FEAT] Volume Response & Changing when connected to Headphone Output

First, thanks for the great script and API documentation, has really helped me out build some home automation stuff between the TV, Node-Red and Homekit!

I am using a 50PUS6703/12 TV operating a Linux OS, I am however using the headphone output of the TV to output audio to external speakers. When running the command python3 pylips.py volume it returns the same values regardless of the mute status or volume level of the TV at the time. I have since discovered that this is returning the settings for the volume of the internal speakers; when unplugging the 3.5mm jack from the headphone output and adjusting the volume/mute status with the remote, this then is reflected in the response from the API and subsequently the pylips script. It is therefore clear that the data for the internal speakers and headphone output are stored separately, and could be accessible from alternative endpoints?

It would be great if an API endpoint was documented (if it exists) and a command added to the pylips script to return the volume of the headphone output instead of the internal output. Subsequently it may also become prudent to document the API endpoint (if it exists) and have a command that returns which output is currently active so that the appropriate request can then be made to find the current TV volume (headphones or internal)

Note, when making post requests to the http://ip-address:1925/6/audio/volume endpoint, sending {"muted": false} or {"muted": true} DOES change the muted status for the active output (headphones or internal speakers), but sending {"current": 18} ONLY changes the volume of the internal TV speakers so in the case headphones are connected makes no audible change. Of course using the https://ip-address:1926/6/input/key endpoint, and sending {"key": "VolumeUp"}, {"key": "VolumeDown"}, or {"key": "Mute"} does reflect changes to whichever output is currently active (headphones or internal speakers) as it is just the same as if the TV remote was to be used directly. It is therefore requested that consideration be made for documentation of the API endpoint (again if it exists) that will work to set the volume of the headphone output as in the http://ip-address:1925/6/audio/volume endpoint, which as above only works for the internal speakers.

Note there also appears to be an option in the settings to output audio over HDMI, this may prove a similar issue to the above, so may require further API endpoints for access to that data?

[FEAT] Launch shutdown/restart menu

Hey @eslavnov,

hope you and your family are doing well these days?

I have an idea regarding launching the shutdown/restart menu on the android TV over pylips.

In the toengel blog there is an interesting entry which allows to map the shutdown/restart menu to any button (except standby). Also starting apps, activities can be launched this way!

Here it is: https://toengel.net/philipsblog/2020/04/02/philips-android-tv-fernbedienung-neu-belegen-neustart-restart-dialog-anzeigen/

Launching apps is already supported by pylips and using activities (as i understand, sorry not so deep in android).

So would it be possible to send the "show shutdown/restart" activity over pylips to the tv?

thanks a lot
Tobias

[FEAT] Add Support for Saphi OS TVs

Is your feature request related to a problem? Please describe.
Couldn't find anywhere saying that this code supports Saphi OS TVs and this would be nice to have.

Describe the solution you'd like
I would like to be able to control Saphi OS TVs with the same commands that you have for other philips TVs

Describe alternatives you've considered
I don't think there is anywhere some alternatives for this type of TVs.

Additional context
No

[FEAT] send text to TV

Hello, I would like to send notifications on the TV screen. It is possible because there is a command to send text but it doesn’t work for me.

I have an Echo device and if I use the Alexa app in the TV to pair both devices (Alexa and TV) I can see notifications on the screen when I turn the TV off for example, the TV writes something like Goodbye on the screen. It could be very useful for those who do home automation (alarm for example...).

Does somebody know how this command works ?

I don’t know how to use a sniffer to catch the trafic but I think it is possible. If someone could help for that... Thanks

[FEAT] Allow self signed SSL certificates

Is your feature request related to a problem? Please describe.
While mqtt over TLS is supported, it's missing the possibility to configure a custom SSL/TLS certificate.

Describe the solution you'd like
I'd like to have a config option where I can configure my broker SSL cert.

Describe alternatives you've considered
n/a

Additional context
paho-mqtt supports these options in the tls_set() function. See https://pypi.org/project/paho-mqtt/#option-functions

(my example setup with self.mqtt.tls_set("/opt/pylips/mosquitto.crt") works)

[FEAT]Additional API calls

I have been investigating controlling the TV and have discovered some extra API calls that are not in the list.
On later models the tv uses API 6 so most calls are proceeded by this. i.e.
http://:1925/6/[API call]
http://:1925/6/system

It seems the /system call will return valid data when called with either /1/ or /6/ - presumably so the actual API can be determined from the returned JSON.

Here are the GET calls I have found.
Get the channel logo for a channel from its ccid number. Returns a png image if there is one or a 404 not found if no logo is available.
/6/channeldb/tv/channelLists/allcab//logo

Get the list of favorite channels took a while to resolve as it is different to the description in the api
/6/channeldb/tv/favoriteLists/favcab
Returns a json with the ccid number and preset number. Preset number is the channels position in the favorites list. For some reason it starts from 2 and not 1. favcab is the id from the favoriteLists entry from the /6/channeldb/tv call.

There are various calls that return xml files for dmr (Media Rendering?) There are not prefixed with the API version and are on http port 2870.
/dmr.xml
/dmr_avts.xml
/dmr_cms.xml

Some POST calls
/control/ConnectionManager
/control/AVTransport
These are SOAP calls and needs a SOAP payload.

[BUG] pairing 55PUS7394/12 (2019) fails (part 2)

(...follow up to #41 as I couldn't reopen the issue...)

I updated the TVs Android software and successfully paired it with the iOS remote app, but the app doesn't do too much (ratings in the app store complain about missing/broken functionality with the latest app version).

After rebooting the TV now I get following:

python3 pylips.py 
Checking API version and port...
Trying http://IP.OF.MY.TV:1925/6/system
Connection refused
Trying http://IP.OF.MY.TV:1925/5/system
Connection refused
Trying http://IP.OF.MY.TV:1925/1/system
Connection refused
PING IP.OF.MY.TV (IP.OF.MY.TV) 56(84) bytes of data.
64 bytes from IP.OF.MY.TV: icmp_seq=1 ttl=64 time=0.597 ms

--- IP.OF.MY.TV ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.597/0.597/0.597/0.000 ms
IP IP.OF.MY.TV is online, but no known API is found. Exiting...

When I open the URL http://IP.OF.MY.TV:1925/6/system in my browser the result is

{"notifyChange":"http","menulanguage":"German","name":"55PUS7394-12","country":"Germany","serialnumber_encrypted":"H0HR6EHZSqqWtybuK40VCrnDxto62F89nqinyiuKo8A=\n","softwareversion_encrypted":"HUUPMg2cTvN\/QxSl+S+1x3LDy\/rpbDcYCScz\/pD42bjcp9kbObXMYLF7gEfGNXYK\n","model_encrypted":"x378brSX+8m4vCn29qtoG6a7g4l1YG3eX8XDWCDesZ4=\n","deviceid_encrypted":"hzu0wwK8b2wml0HUPWJz3tkNCxAuEqgRji79EOR\/yKI=\n","nettvversion":"8.2.0","epgsource":"no_epg","api_version":{"Major":6,"Minor":1,"Patch":0},"featuring":{"jsonfeatures":{"editfavorites":["TVChannels","SatChannels"],"recordings":["List","Schedule","Manage"],"ambilight":["LoungeLight","Hue","Ambilight","HueStreaming"],"menuitems":["Setup_Menu"],"textentry":["not_available"],"applications":["TV_Apps","TV_Games","TV_Settings"],"pointer":["not_available"],"inputkey":["key"],"activities":["intent"],"channels":["preset_string"],"mappings":["server_mapping"]},"systemfeatures":{"tvtype":"consumer","content":["dmr","pvr"],"tvsearch":"intent","pairing_type":"digest_auth_pairing","secured_transport":"true","companion_screen":"true"}},"os_type":"MSAF_2019_P"}

The other URLs do not return anything.

[FEAT] Installation failed - Dependency pycrypto - Change in requirements.txt

Installing requirements from "requirements.txt" was not possible.
The package "pycrypto" failed to install.
Installing Visual Studio C++ Build Tools does not change anything.

At long last i installed the package "pycryptodome":
$pip install pycryptodome
This package worked for me and the TV "Philips 65PUS6704/12" is working (Not fully tested yet).

[FEAT] Switch TV On (WOL)?

First, thanks for this beautiful python script!
Back half a year i was struggling to control my new "65PUS8102" (android tv) from windows and eventghost. This was solved by an modified older philips script which was no so mighty as this :-)
Currently did'nt tried it, but it looks very promissing and i will try it soon.

So here is my question/feature request:
Back half a year i have solved it with an usb -> ir transmitter and sent "on" (or 1) to switch it on.
I realized that the JS api to turn it on does'nt work when the tv was off for an amount off time.
WOL did'nt work, regardless of its power state.
I'll think it enters some sort of deep standby and switches off network.
Yeah, there is an option to deactivate it, but sadly this has'nt solved the issue.
I could not power it on over network.

I have read your very detailed readme (thanks for this) but could not find any word of this "issue" i had. In the meantime i have received the Pie update but did not tried JS or WOL again.

How do you power on the philips android tv over network without the use of the philips app?
Does WOL work for you, all the time?
Which settings do i have to change that it maybe work?
Any chance to get a WOL feature, or is it already implemented?

Thank a lot and keep up the good work

[FEAT] Support non-Android models

Is your feature request related to a problem? Please describe.
The tool does not support non-Android Philips TVs.

Describe the solution you'd like
It seems that non-Android Philips TVs use a slightly different API:

  • Pairing does not need a PIN - confirmed
  • Endpoints and requests work somewhat differently - testing in progress
  • API version seems to be 6.1 as opposed to 6.2 (Android) (?) - debunked, look for a pairing_type in system instead. Both 6.1 and 6.2 can require pairing

I don't own such a TV so I rely on other people to help me with mapping this version of the API. Once the traffic is captured and analyzed, the tool needs to be updated to support non-Android Philips TVs.

If you have a non-Android Philips TV (2016+) please reply to this issue to help me with testing it!

[QUESTION] MQTT Power Status during Night

Describe the bug
Before i'll used pylips my smarthome ping'ed the ethernet interface of my TV's (65PUS8102 & 55PUS9104).
If they where offline/online this was a trigger todo certain things (switching lights, ...).
Sadly the philips tv has woke up in the night on ~04:00 AM everyday made this useless as a trigger.
After activating alexa on the tv, the "deep standby" was deactivated and the power state worked reliable.

After some time i switched to pylips with mqtt for power state (3sec intervall), which also works good (alexa is activated).

So my question is, does the power state also works when alexa is deactivated?
So DONT send "on" state @ ~04:00 AM when the TV is doing its magic (channel scanning!?)?

I want to deactivate alexa because i think, since i have activated it, the tv is more unstable (because of long runtime).
Also i have some audio dropout's on my HDMI ARC connected audio system. After reboot -> everything is in good shape.

To Reproduce
Steps to reproduce the behavior:

  1. deactivate alexa on the tv
  2. setup pylips with mqtt to your smarthome
  3. set an trigger in your smarthome to switch on ligths or do some logging when tv goes on

Expected behavior
I'll hope that this works, so i can deactivate alexa and use deep standby again.
Also i would throw les energy without alexa.

Hope anyone of you is using this in such way and can give me some hints 👍

thx

[FEAT]Make a pip package

Is your feature request related to a problem? Please describe.
I use Home Assitant, and I would really like to add your work in this eco system. It will allow a lot of user to easily control the Ambilight light as a classic connected light and some other great feature.

Describe the solution you'd like
I have some basics skills in Python and I can work on the integration in Home Assistant but the software require a pip library to make it easy. (Maybe I can use directly this github repository but I have to look further to see if it possible).

Describe alternatives you've considered
I can make another repo from scratch and make the library from scratch based on your work. But it could be difficult for me to reflect any update made by you.

Additional context
I'm open to any idea that could lead to integrate TV in Home Assistant. I can provide some help if it's not beyond my skills in Python.

[BUG] Power on won't work on 55PUS7304/12

Hello.

In the last version, I see that there is a power_on command, which I was very happy to see implemented.. but it doesn't seem to work on my 55PUS7304/12.

I did multiple tests:

  • before running allow_power_on
  • after running allow_power_on
  • with the TV in standby
  • with the TV in deep sleep
  • with the TV in deep sleep after sending WoL packet
    Every time it's the same result, power_on command doesn't seem to do anything.

Is there any way to fix this? Or at least start the API after sending a WoL package? (if the API starts up, I can use standby to power on the TV)

[BUG] pylips dies on 55OLED754/12 (apiversion 6.1.0) because http://x.x.x.x:1925/6/activities/current does not exist

Describe the bug
The new Philips 55OLED754/12 reports as apiversion it's 6.1.0 but it does not support the /6/activites/current endpoint. This makes the use of pylips mostly impossible especially in MQTT mode which I wanted to use because it just dies because it tries to query activities as soon as the tv is in mode Powerstate "on"

To Reproduce
1.) configure mqtt settings in settings.ini
2.) start pylips in MQTT mode (so without any parameters)
3.) pylips dies as soon as it tries ti query activities

Expected behavior
there ahould at least be a possibility to skip this query or not do a fatal call Probably script should go on on every "Not Found" answer.

[FEAT] Silent Reboot

Using pylips in mqtt mode now on an 65pus8102 and 55pus9104, it works really good!!
Since activating alexa on the TV sets it doesn't deactivate the network interfaces in standby (I think it just don't go in any sleep mode) and I am able to wake it with pylips sending standby key.

Sadly in my case, after a few days the sound over my avr (connected with ARC) is choppy. A manual restart of the TV set, solves the issue.

So my feature request! / question is a silent, scheduled reboot with pylips.

PS. : adb reboot is working but not silent

Is this possible?

Thx

Timer set up

Hello,

Nice job with the documentation and everything else. I’m trying to set up the timer. I can get info with :
"menuitems/settings/current -d {"nodes":[{"nodeid":2131230835}]}"

It returns :
"values":[{"value":{"Nodeid":2131230835,"Controllable":true,"Available":true,"string_id":"Arrêt programmé","data":{"value":0}}}],"version":0}

So I have the good nodeid for the timer and it is controllable.
If I change with the remote the timer to power off the value changes with the previous command again. But if I send the following command, I got no error but the timer is not set up !!

menuitems/settings/update -d {"values":[{"value":{"Nodeid":2131230835,"Controllable":true,"Available":true,"data":{"value":40}}}]}"

Value=40 for 40 minutes before shutting down the TV...

How can I fix this ?

Thanks.

[FEAT]List of supported models in wiki.

Is your feature request related to a problem? Please describe.
I plan to buy a Philips TV very soon (like today) with the Saphi OS. I would like to know if this library can handle this model.

Describe the solution you'd like
Generally, it could be great to have a list of all supported TV in the wiki for example. This list could be filled with the community that use this library.

Additional context
This is the model that I plan to buy PHILIPS 65OLED754.

Unknown API on 50PUS7394

"IP 192.168.0.223 is online, but no known API is found. Exiting..."

If its something you're interested in sorting and I can help let me know

[BUG] Ambilight+Hue commands not work (Philips 55PUS7304)

Hello!
First congratulate you for this great script. The second I apologize for my English, I must use Google Translate.
I am trying to generate a switch by mqtt to be able to turn the Ambilight + Hue on and off on the 55PUS7304 and be able to integrate this feature into my home automation center.
The Philips Remote application connects relatively well with the TV (it has disconnection failures and the ambilight bridge settings do not synchronize with the TV) but the turning on and off of both Ambilight and Ambilight-Hue, once configured on the TV, work well .

This is the value returned by mqtt:
{"powerstate": "On", "volume": 20, "muted": false, "cur_app": "uk.co.freeview.onnow", "ambilight": {"styleName": "FOLLOW_VIDEO", "isExpert ": false," menuSetting ":" NATURAL "," stringValue ":" Natural "}," ambihue ": 5}

I don't understand that value 5 in Ambihue. If I turn off the ambihue with the app or from the TV, it does not change.

I deactivate the mqtt in settings.ini and now I do tests with the readme commands:

For status

pi@DiyHuePi:/pylips $ sudo python3 pylips.py --host 172.16.10.11 --user qqjKm8W9ub5RCrW3 --pass 73ad38878df23d1689b9fc0cfaec9c1f5067f30b0fbf56ce1e609b76c0e47884 --command ambihue_status
Sending POST request to https://172.16.10.11:1926/6/menuitems/settings/current
Request sent!
{"values":[{"value":{"Nodeid":2131230774,"Controllable":true,"Available":false,"string_id":"Brillo de la parte inferior","data":{"value":5}}}],"version":1581773617053}

For Ambi+Hue on

pi@DiyHuePi:/pylips $ sudo python3 pylips.py --host 172.16.10.11 --user qqjKm8W9ub5RCrW3 --pass 73ad38878df23d1689b9fc0cfaec9c1f5067f30b0fbf56ce1e609b76c0e47884 --command ambihue_on
Sending POST request to https://172.16.10.11:1926/6/menuitems/settings/update
Request sent!
{"response": "OK"}

For Ambi+Hue off

pi@DiyHuePi:/pylips $ sudo python3 pylips.py --host 172.16.10.11 --user qqjKm8W9ub5RCrW3 --pass 73ad38878df23d1689b9fc0cfaec9c1f5067f30b0fbf56ce1e609b76c0e47884 --command ambihue_off
Sending POST request to https://172.16.10.11:1926/6/menuitems/settings/update
Request sent!
{"response": "OK"}

Nothing happens. Only change in status, the value
"version": 1581773617053
that its number is increasing (54, 55, 56 ...)

These are the values offered in the browser https://172.16.10.11:1926/6/system
{"notifyChange":"http","menulanguage":"Spanish","name":"55PUS7304\/12","country":"Spain","serialnumber_encrypted":"s53vNo\/gABVJXbfA4wAP0w3Rsy6YcS6g5dtYQLWw76E=\n","softwareversion_encrypted":"wuIstBMd8\/WsNDlcly9T4EeYPOI+GJrK08kDdVFC3b7a17YUuVYF7Er6ZBA2Unom\n","model_encrypted":"IHrF2HY3A1IcuZYPrd02ozA9ilATGZQR\/H6ictzWVcI=\n","deviceid_encrypted":"vxw2iJBhiCSM5Ig5H9\/jCwnAbzSbE\/Twt5cRWtEwasI=\n","nettvversion":"8.2.0","epgsource":"no_epg","api_version":{"Major":6,"Minor":1,"Patch":0},"featuring":{"jsonfeatures":{"editfavorites":["TVChannels","SatChannels"],"recordings":["List","Schedule","Manage"],"ambilight":["LoungeLight","Hue","Ambilight","HueStreaming"],"menuitems":["Setup_Menu"],"textentry":["not_available"],"applications":["TV_Apps","TV_Games","TV_Settings"],"pointer":["not_available"],"inputkey":["key"],"activities":["intent"],"channels":["preset_string"],"mappings":["server_mapping"]},"systemfeatures":{"tvtype":"consumer","content":["dmr","pvr"],"tvsearch":"intent","pairing_type":"digest_auth_pairing","secured_transport":"true","companion_screen":"true"}},"os_type":"MSAF_2019_P"}

Any ideas or help? Any test I can do, I offer my model to test
Thx

[FEAT] Screen off (not Power off)

I want to toggle "Screen off" but can't figure it out.

Using GET on http://ip-address:1926/6/menuitems/settings/structure gave me:

{"node":{"node_id":2131230753,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_VB_SETUP","context":"Setup_Menu","data":{"nodes":[{"node_id":2131230841,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_PICTURE","context":"picture","data":{"nodes":[{"node_id":2131230842,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PICTURE_STYLE","context":"picture_style","data":{"enums":[{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PERSONAL"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_VIVID"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NATURAL"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MAIN_STANDARD","icon":"org.droidtv.ui.tvwidget2k15.R.drawable.eco_16x12_146"},{"enum_id":5,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MOVIE"},{"enum_id":6,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GAME"},{"enum_id":14,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MONITOR"},{"enum_id":13,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HDR_PERSONAL"},{"enum_id":9,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HDR_VIVID"},{"enum_id":20,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HDR_DOLBY_VISION_BRIGHT"},{"enum_id":21,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HDR_DOLBY_VISION_DARK"},{"enum_id":10,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HDR_NATURAL"},{"enum_id":11,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HDR_MOVIE"},{"enum_id":12,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HDR_GAME"},{"enum_id":7,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ISF_DAY","icon":"org.droidtv.ui.tvwidget2k15.R.drawable.isf_16x12_250"},{"enum_id":8,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ISF_NIGHT","icon":"org.droidtv.ui.tvwidget2k15.R.drawable.isf_16x12_250"}]},"type":"LIST_NODE"},{"node_id":2131230843,"string_id":"org.droidtv.ui.strings.R.string.MAIN_COLOUR","context":"colour","data":{"slider_data":{"min":0,"max":100,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230844,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CONTRAST","context":"contrast","data":{"slider_data":{"min":0,"max":100,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230845,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SHARPNESS","context":"sharpness","data":{"slider_data":{"min":0,"max":10,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230846,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BRIGHTNESS","context":"brightness","data":{"slider_data":{"min":0,"max":100,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230908,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MISC_3D","context":"3d","data":{"nodes":[{"node_id":2131230909,"string_id":"org.droidtv.ui.strings.R.string.MAIN_VB_3D_FORMAT","context":"3d_format","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MISC_2D"},{"enum_id":17,"string_id":"org.droidtv.ui.strings.R.string.MISC_3D"},{"enum_id":9,"string_id":"org.droidtv.ui.strings.R.string.MAIN_3D_2D_TO_3D_CONVERSION"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_3D_SIDE_BY_SIDE"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_3D_TOP_BOTTOM"},{"enum_id":7,"string_id":"org.droidtv.ui.strings.R.string.MAIN_3D_SIDE_BY_SIDE_INVERTED"},{"enum_id":8,"string_id":"org.droidtv.ui.strings.R.string.MAIN_3D_TOP_BOTTOM_INVERTED"}]},"type":"LIST_NODE"},{"node_id":2131230910,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GAMING","context":"gaming","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GAMING_MODE"},{"enum_id":101,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SIDE_BY_SIDE_GAMING"},{"enum_id":102,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TOP_BOTTOM_GAMING"}]},"type":"LIST_NODE"},{"node_id":2131230911,"string_id":"org.droidtv.ui.strings.R.string.MAIN_3D_EXPERIENCE","context":"3d_experience","data":{"enums":[{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FLICKER_FREE"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAXIMUM_CLARITY"}]},"type":"LIST_NODE"},{"node_id":2131230912,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUTO_3D","context":"switch_to_3d","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUTO_3D_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUTO_3D_NOTIFICATION_ONLY"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUTO_3D_ON"}]},"type":"LIST_NODE"}]}},{"node_id":2131230847,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_ADVANCED_PICTURE","context":"advanced_picture","data":{"nodes":[{"node_id":2131230848,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_COLOUR","context":"colour_menu","data":{"nodes":[{"node_id":2131230849,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TINT_HUE","context":"tint","data":{"slider_data":{"min":-50,"max":50,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230850,"string_id":"org.droidtv.ui.strings.R.string.MAIN_COLOUR_ENHANCEMENT","context":"colour_enhancement","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MINIMUM"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MEDIUM"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAXIMUM"}]},"type":"LIST_NODE"},{"node_id":2131230851,"string_id":"org.droidtv.ui.strings.R.string.MAIN_COLOUR_GAMUT","context":"colour_gamut","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NORMAL"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WIDE"}]},"type":"LIST_NODE"},{"node_id":2131230852,"string_id":"org.droidtv.ui.strings.R.string.MAIN_COLOUR_TEMPERATURE","context":"colour_temperature","data":{"enums":[{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NORMAL"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WARM"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_COOL"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CUSTOM"}]},"type":"LIST_NODE"},{"node_id":2131230853,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WHITEPOINT_ALIGNMENT","context":"whitepoint_alignment_item","data":{"sliders":[{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_RED_WP","slider_data":{"min":0,"max":127,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_GREEN_WP","slider_data":{"min":0,"max":127,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_BLUE_WP","slider_data":{"min":0,"max":127,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_RED_BL","slider_data":{"min":-7,"max":8,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_GREEN_BL","slider_data":{"min":-7,"max":8,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_BLUE_BL","slider_data":{"min":-7,"max":8,"step_size":1}}]},"type":"MULTIPLE_SLIDER"},{"node_id":2131230854,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_WHITEPOINT_ALIGNMENT","context":"whitepoint_alignment_menu","data":{"nodes":[{"node_id":2131230855,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WHITEPOINT_ALIGNMENT_2POINT","context":"whitepoint_alignment","data":{"sliders":[{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_RED_WP","slider_data":{"min":0,"max":127,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_GREEN_WP","slider_data":{"min":0,"max":127,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_BLUE_WP","slider_data":{"min":0,"max":127,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_RED_BL","slider_data":{"min":-7,"max":8,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_GREEN_BL","slider_data":{"min":-7,"max":8,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_BLUE_BL","slider_data":{"min":-7,"max":8,"step_size":1}}]},"type":"MULTIPLE_SLIDER"},{"node_id":2131230856,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WHITEPOINT_ALIGNMENT_20POINT","context":"whitepoint_alignment","data":{"sliders":[{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_LEVEL","slider_data":{"min":1,"max":20,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_RED_OFFSET","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_GREEN_OFFSET","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_BLUE_OFFSET","slider_data":{"min":-15,"max":15,"step_size":1}}]},"type":"MULTIPLE_SLIDER"}]}},{"node_id":2131230857,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_COLOUR_CONTROL","context":"colour_control","data":{"nodes":[{"node_id":2131230858,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MS_RED","context":"colour_control","data":{"sliders":[{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_HUE","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_SATURATION","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_INTENSITY","slider_data":{"min":-15,"max":15,"step_size":1}}]},"type":"MULTIPLE_SLIDER"},{"node_id":2131230859,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MS_YELLOW","context":"colour_control","data":{"sliders":[{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_HUE","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_SATURATION","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_INTENSITY","slider_data":{"min":-15,"max":15,"step_size":1}}]},"type":"MULTIPLE_SLIDER"},{"node_id":2131230860,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MS_GREEN","context":"colour_control","data":{"sliders":[{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_HUE","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_SATURATION","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_INTENSITY","slider_data":{"min":-15,"max":15,"step_size":1}}]},"type":"MULTIPLE_SLIDER"},{"node_id":2131230861,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MS_CYAN","context":"colour_control","data":{"sliders":[{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_HUE","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_SATURATION","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_INTENSITY","slider_data":{"min":-15,"max":15,"step_size":1}}]},"type":"MULTIPLE_SLIDER"},{"node_id":2131230862,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MS_BLUE","context":"colour_control","data":{"sliders":[{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_HUE","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_SATURATION","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_INTENSITY","slider_data":{"min":-15,"max":15,"step_size":1}}]},"type":"MULTIPLE_SLIDER"},{"node_id":2131230863,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MS_MAGENTA","context":"colour_control","data":{"sliders":[{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_HUE","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_SATURATION","slider_data":{"min":-15,"max":15,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_INTENSITY","slider_data":{"min":-15,"max":15,"step_size":1}}]},"type":"MULTIPLE_SLIDER"},{"node_id":2131230864,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_RESET_ALL","context":"reset_all","data":{}}]}},{"node_id":2131230865,"string_id":"org.droidtv.ui.strings.R.string.MAIN_RGB_ONLY_MODE","context":"rgb_only_mode","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_RED"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GREEN"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BLUE"}]},"type":"LIST_NODE"}]}},{"node_id":2131230866,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CONTRAST_MENU","context":"contrast_menu","data":{"nodes":[{"node_id":2131230867,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CONTRAST_MODE","context":"contrast_modes","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NORMAL"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OPTMIZED_FOR_PICTURE"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OPTMIZED_FOR_ENERGY_SAVING"}]},"type":"LIST_NODE"},{"node_id":2131230868,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HDR_UPSCALING","context":"hdr_upscaling","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230869,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PNR","context":"perfect_natural_reality","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MINIMUM"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MEDIUM"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAXIMUM"}]},"type":"LIST_NODE"},{"node_id":2131230870,"context":"hd_ultra_hdr","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MINIMUM"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MEDIUM"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAXIMUM"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUTO_3D_ON"}]},"type":"LIST_NODE"},{"node_id":2131230871,"context":"perfect_contrast","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MINIMUM"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MEDIUM"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAXIMUM"}]},"type":"LIST_NODE"},{"node_id":2131230872,"context":"video_contrast","data":{"slider_data":{"min":0,"max":100,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230873,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LIGHT_SENSOR","context":"light_sensor","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230874,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GAMMA","context":"gamma","data":{"slider_data":{"min":-4,"max":4,"step_size":1}},"type":"SLIDER_NODE"}]}},{"node_id":2131230875,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_SHARPNESS","context":"sharpness_menu","data":{"nodes":[{"node_id":2131230876,"context":"super_resolution","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"}]}},{"node_id":2131230877,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_PICTURE_CLEAN","context":"picture_clean_menu","data":{"nodes":[{"node_id":2131230878,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NOISE_REDUCTION","context":"noise_reduction","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MINIMUM"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MEDIUM"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAXIMUM"}]},"type":"LIST_NODE"},{"node_id":2131230879,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MPEG_ARTEFACT_REDUCTION","context":"mpeg_artefact_reduction","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MINIMUM"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MEDIUM"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAXIMUM"}]},"type":"LIST_NODE"}]}},{"node_id":2131230880,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_MOTION_MENU","context":"motion_menu","data":{"nodes":[{"node_id":2131230881,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MOTION_STYLE","context":"motion_style","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MOVIE"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPORTS"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_STANDARD"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SMOOTH"},{"enum_id":5,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PERSONAL"}]},"type":"LIST_NODE"},{"node_id":2131230882,"context":"hd_natural_motion","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MINIMUM"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MEDIUM"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAXIMUM"}]},"type":"LIST_NODE"},{"node_id":2131230883,"string_id":"org.droidtv.ui.strings.R.string.MISC_PERFECT_CLEAN_MOTION","context":"clear_lcd","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MINIMUM"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MEDIUM"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAXIMUM"}]},"type":"LIST_NODE"}]}},{"node_id":2131230884,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CLEAR_IMAGE_RESIDUAL","context":"clear_image_residual","data":{}}]}},{"node_id":2131230885,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_PICTURE_FORMAT","context":"picture_format","data":{}},{"node_id":2131230886,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DOLBY_VISION_NOTIFICATION","context":"dolby_vision_notification","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230887,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_QUICK_PICTURE_SETTINGS","context":"quick_picture_settings","data":{}}]}},{"node_id":2131230888,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_SOUND","context":"sound","data":{"nodes":[{"node_id":2131230889,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SOUND_STYLE","context":"sound_style","data":{"enums":[]},"type":"LIST_NODE"},{"node_id":2131230890,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SOUND_STYLE","context":"sound_style","data":{"enums":[]},"type":"LIST_NODE"},{"node_id":2131230891,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HEADPHONE_VOLUME","context":"headphones_volume","data":{"slider_data":{"min":0,"max":60,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230892,"type":"PARENT_NODE","context":"sound_expert_mode","data":{"nodes":[{"node_id":2131230893,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPEAKER_VIRTUALIZER","context":"personal_dolby_atmos","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DOLBY_ATMOS_AUTO"}]},"type":"LIST_NODE"},{"node_id":2131230894,"string_id":"org.droidtv.ui.strings.R.string.MISC_CLEAR_DIALOGUE","context":"clear_dialogue","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230895,"string_id":"org.droidtv.ui.strings.R.string.MAIN_EQUALIZER","context":"expert_equalizer","data":{"sliders":[{"slider_id":"org.droidtv.ui.strings.R.string.MISC_100_HZ","slider_data":{"min":-8,"max":8,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MISC_300_HZ","slider_data":{"min":-8,"max":8,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MISC_1_KHZ","slider_data":{"min":-8,"max":8,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MISC_3_KHZ","slider_data":{"min":-8,"max":8,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MISC_10_KHZ","slider_data":{"min":-8,"max":8,"step_size":1}}]},"type":"MULTIPLE_SLIDER"}]}},{"node_id":2131230896,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TV_POSITION","context":"tv_placement","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WALL_MOUNTED"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON_TV_STAND"}]},"type":"LIST_NODE"},{"node_id":2131230897,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_ADVANCED_SOUND","context":"advanced_sound","data":{"nodes":[{"node_id":2131230898,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUTO_VOLUME","context":"auto_volume_leveling","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NIGHT_MODE"}]},"type":"LIST_NODE"},{"node_id":2131230899,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DELTA_VOLUME","context":"DeltaVolume","data":{"slider_data":{"min":-12,"max":12,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230900,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUDIO_OUT","context":"tv_speakers","data":{"enums":[]},"type":"LIST_NODE"},{"node_id":2131230901,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DIGITAL_OUTPUT_FORMAT","context":"digital_output_format","data":{"enums":[{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MULTICHANNEL"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.SPDIF_OUTPUT_3"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PCM"}]},"type":"LIST_NODE"},{"node_id":2131230902,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DIGITAL_OUTPUT_LEVEL","context":"digital_output_level","data":{"enums":[{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPDIF_MORE"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPDIF_MEDIUM"},{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPDIF_LESS"}]},"type":"LIST_NODE"},{"node_id":2131230903,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUDIO_OUT_DELAY","context":"audio_out_delay","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NO_LATENCY"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_IN_LIPSYNC"}]},"type":"LIST_NODE"},{"node_id":2131230904,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUDIO_OUT_OFFSET","context":"audio_out_offset","data":{"slider_data":{"min":0,"max":60,"step_size":5}},"type":"SLIDER_NODE"},{"node_id":2131230905,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SUBWOOFER_OUT","context":"subwoofer_out","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230906,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CENTRE_SPEAKER_VOLUME","context":"centre_speaker_volume","data":{"slider_data":{"min":-3,"max":3,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230907,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HEIGHT_SPEAKER_VOLUME","context":"height_speaker_volume","data":{"slider_data":{"min":-3,"max":3,"step_size":1}},"type":"SLIDER_NODE"}]}}]}},{"node_id":2131230765,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MISC_AMBILIGHT","context":"ambilight","data":{"nodes":[{"node_id":2131230766,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_STYLE","context":"ambilight_style","data":{"nodes":[{"node_id":2131230767,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_STYLE_OFF","context":"ambilight_off","data":{}},{"node_id":2131230768,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FOLLOW_VIDEO","context":"ambilight_follow_video","data":{"enums":[{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_STANDARD"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_NATURAL"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_FOOTBALL"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_VIVID"},{"enum_id":8,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_VIVID"},{"enum_id":5,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_GAME"},{"enum_id":6,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_COMFORT"},{"enum_id":7,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_RELAX"}]},"type":"LIST_NODE"},{"node_id":2131230769,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FOLLOW_AUDIO","context":"ambilight_follow_audio","data":{"enums":[{"enum_id":101,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FOLLOW_AUDIO_STYLE_1"},{"enum_id":102,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FOLLOW_AUDIO_STYLE_2"},{"enum_id":103,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FOLLOW_AUDIO_STYLE_3"},{"enum_id":104,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FOLLOW_AUDIO_STYLE_4"},{"enum_id":106,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FOLLOW_AUDIO_STYLE_5"},{"enum_id":107,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FOLLOW_AUDIO_STYLE_6"},{"enum_id":110,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FOLLOW_AUDIO_STYLE_7"}]},"type":"LIST_NODE"},{"node_id":2131230770,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FOLLOW_COLOUR","context":"ambilight_follow_color","data":{"enums":[{"enum_id":201,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LOUNGE_LIGHT_MODE_2"},{"enum_id":202,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LOUNGE_LIGHT_MODE_3"},{"enum_id":203,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LOUNGE_LIGHT_MODE_1"},{"enum_id":207,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WARM_WHITE"},{"enum_id":204,"string_id":"org.droidtv.ui.strings.R.string.MAIN_COOL_WHITE"}]},"type":"LIST_NODE"},{"node_id":2131230771,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_FOLLOW_FLAG","context":"ambilight_follow_flag","data":{}},{"node_id":2131230772,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_FOLLOW_APP","context":"ambilight_follow_app","data":{}}]}},{"node_id":2131230773,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_BRIGHTNESS","context":"ambilight_brightness","data":{"slider_data":{"min":0,"max":10,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230774,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BRIGHTNESS_BOTTOM_SIDE","context":"ambilight_brightness_bottom_side","data":{"slider_data":{"min":0,"max":10,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230775,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_SATURATION","context":"ambilight_saturation","data":{"slider_data":{"min":-2,"max":2,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230776,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_PLUS_HUE","context":"ambilight_hue_menu","data":{"nodes":[{"node_id":2131230777,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_HUE_CONFIGURE","context":"ambilight_hue_wizard","data":{}},{"node_id":2131230778,"context":"ambilight_hue_off","data":{},"type":"TOGGLE_NODE"},{"node_id":2131230779,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_HUE_FOLLOW_AMBILIGHT","context":"ambilight_hue_follow_ambilight","data":{"slider_data":{"min":0,"max":10,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230780,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LOUNGE_LIGHT_HUE","context":"ambilight_lounge_light_hue","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230781,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_HUE_STATUS","context":"ambilight_hue_status","data":{}},{"node_id":2131230782,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_AMBILIGHT_HUE_RESET","context":"ambilight_hue_reset_configuration","data":{}}]}},{"node_id":2131230783,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_ADVANCED_AMBILIGHT","context":"ambilight_advanced","data":{"nodes":[{"node_id":2131230784,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WALL_COLOUR","context":"ambilight_wall_colour","data":{"colors":[-1,-1651276,-3342439,-3347201,-3355393,-13108,-6451,-103,-12566464,-3693173,-6565376,-10053121,-2982751,-33664,-81560,-256,-15724528,-7508135,-10452480,-15513423,-5293203,-1888983,-5682169,-26368]},"type":"WALL_COLOR_NODE"},{"node_id":2131230785,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TV_SWITCH_OFF","context":"ambilight_tv_switch_off","data":{"enums":[{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FADE_OUT"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_IMMEDIATE_SWITCH_OFF"}]},"type":"LIST_NODE"},{"node_id":2131230786,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ISF_TUNING","context":"ambilight_isf_tuning","data":{"sliders":[{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_RED","slider_data":{"min":0,"max":100,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_GREEN","slider_data":{"min":0,"max":100,"step_size":1}},{"slider_id":"org.droidtv.ui.strings.R.string.MAIN_MS_BLUE","slider_data":{"min":0,"max":100,"step_size":1}}]},"type":"MULTIPLE_SLIDER"}]}}]}},{"node_id":2131230814,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_ECO_SETTINGS","context":"eco_settings","data":{"nodes":[{"node_id":2131230815,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ENERGY_SAVING","context":"energy_saving","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MINIMUM"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MEDIUM"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAXIMUM"}]},"type":"LIST_NODE"},{"node_id":2131230816,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_MUTE_SCREEN","context":"screen_off","data":{}},{"node_id":2131230817,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_LIGHT_SENSOR","context":"eco_settings_light_sensor","data":{}},{"node_id":2131230818,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUTOMATIC_SWITCH_OFF","context":"switch_off_timer","data":{"slider_data":{"min":0,"max":240,"step_size":30}},"type":"SLIDER_NODE"}]}},{"node_id":2131230913,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_GENERAL_SETTINGS","context":"general_settings","data":{"nodes":[{"node_id":2131230914,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_USB_STORAGE","context":"usb_storage","data":{}},{"node_id":2131230915,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_USB_KEYBOARD_SETTINGS","context":"usb_keyboard_settings","data":{}},{"node_id":2131230916,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PHILIPS_WORDMARK","context":"philips_wordmark","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MINIMUM"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MEDIUM"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAXIMUM"}]},"type":"LIST_NODE"},{"node_id":2131230917,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LOCATION","context":"location","data":{"enums":[{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HOME"},{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SHOP"}]},"type":"LIST_NODE"},{"node_id":2131230918,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_VB_SHOP_CONFIGURATION","context":"shop_setup","data":{}},{"node_id":2131230919,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MISC_EASYLINK","context":"easylink_menu","data":{"nodes":[{"node_id":2131230920,"string_id":"org.droidtv.ui.strings.R.string.MISC_EASYLINK","context":"easylink","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230921,"string_id":"org.droidtv.ui.strings.R.string.MAIN_EASYLINK_REMOTE_CONTROL","context":"easylink_remote_control","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"}]}},{"node_id":2131230922,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MISC_HDMI_ULTRA_HD","context":"hdmi_ultra_hd","data":{"nodes":[{"node_id":2131230923,"string_id":"org.droidtv.ui.strings.R.string.MISC_HDMI1","context":"hdmi_ultra_hd","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UHD_STANDARD_2K18"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UHD_OPTIMAL_2K18"}]},"type":"LIST_NODE"},{"node_id":2131230924,"string_id":"org.droidtv.ui.strings.R.string.MISC_HDMI2","context":"hdmi_ultra_hd","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UHD_STANDARD_2K18"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UHD_OPTIMAL_2K18"}]},"type":"LIST_NODE"},{"node_id":2131230925,"string_id":"org.droidtv.ui.strings.R.string.MISC_HDMI3","context":"hdmi_ultra_hd","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UHD_STANDARD_2K18"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UHD_OPTIMAL_2K18"}]},"type":"LIST_NODE"},{"node_id":2131230926,"string_id":"org.droidtv.ui.strings.R.string.MISC_HDMI4","context":"hdmi_ultra_hd","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UHD_STANDARD_2K18"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UHD_OPTIMAL_2K18"}]},"type":"LIST_NODE"}]}},{"node_id":2131230927,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_HDMI_AUTO_GAME_MODE","context":"hdmi_auto_game_mode","data":{"nodes":[{"node_id":2131230928,"string_id":"org.droidtv.ui.strings.R.string.MISC_HDMI1","context":"hdmi_auto_game_mode","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230929,"string_id":"org.droidtv.ui.strings.R.string.MISC_HDMI2","context":"hdmi_auto_game_mode","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230930,"string_id":"org.droidtv.ui.strings.R.string.MISC_HDMI3","context":"hdmi_auto_game_mode","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230931,"string_id":"org.droidtv.ui.strings.R.string.MISC_HDMI4","context":"hdmi_auto_game_mode","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"}]}},{"node_id":2131230932,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_VIEWING_DATA","context":"viewing_data","data":{"nodes":[{"node_id":2131230933,"string_id":"org.droidtv.ui.strings.R.string.MAIN_VIEWING_DATA_SETTINGS","context":"viewing_data_settings","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230934,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_PRIVACY_POLICY","context":"privacy_policy","data":{}}]}},{"node_id":2131230935,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_ADVANCED_PICTURE","context":"advanced_general_settings","data":{"nodes":[{"node_id":2131230936,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUTOMATIC_RECORDING","context":"auto_recording","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230937,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_HBBTV_SETTINGS","context":"hbbtv_settings","data":{"nodes":[{"node_id":2131230938,"string_id":"org.droidtv.ui.strings.R.string.MISC_HBB_TV","context":"hbbtv","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230939,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HBBTV_TRACK_USAGE","context":"hbbtv_track_usage","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230940,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HBBTV_COOKIES","context":"hbbtv_cookies","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230941,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CLEAR_APPROVED_APP_LISTING","context":"hbbtv_clear_listing","data":{}}]}}]}},{"node_id":2131230942,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_FACTORY_SETTINGS","context":"factory_settings","data":{}},{"node_id":2131230943,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_REINSTALL_TV","context":"reinstall_tv","data":{}},{"node_id":2131230944,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.CAM_PROFILE_NAME","context":"CAM_profile_name","data":{}}]}},{"node_id":2131230819,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_REGION_AND_LANGUAGE","context":"region_languages","data":{"nodes":[{"node_id":2131230820,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_LANGUAGES","context":"languages","data":{"nodes":[{"node_id":2131230821,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MENU_LANGUAGE","context":"menu_language","data":{"enums":[{"enum_id":83,"string_id":"org.droidtv.ui.strings.R.string.MISC_AZERBAIJANI"},{"enum_id":48,"string_id":"org.droidtv.ui.strings.R.string.MISC_BAHASA_MELAYU"},{"enum_id":50,"string_id":"org.droidtv.ui.strings.R.string.MISC_INDONESIAN"},{"enum_id":37,"string_id":"org.droidtv.ui.strings.R.string.MISC_BULGARIAN"},{"enum_id":6,"string_id":"org.droidtv.ui.strings.R.string.MISC_CZECH"},{"enum_id":14,"string_id":"org.droidtv.ui.strings.R.string.MISC_DANISH"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MISC_GERMAN"},{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MISC_ENGLISH"},{"enum_id":5,"string_id":"org.droidtv.ui.strings.R.string.MISC_SPANISH"},{"enum_id":26,"string_id":"org.droidtv.ui.strings.R.string.MISC_ESTONIAN"},{"enum_id":10,"string_id":"org.droidtv.ui.strings.R.string.MISC_GREEK"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MISC_FRENCH"},{"enum_id":43,"string_id":"org.droidtv.ui.strings.R.string.MISC_IRISH"},{"enum_id":13,"string_id":"org.droidtv.ui.strings.R.string.MISC_CROATIAN"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MISC_ITALIAN"},{"enum_id":41,"string_id":"org.droidtv.ui.strings.R.string.MISC_KAZAKH"},{"enum_id":40,"string_id":"org.droidtv.ui.strings.R.string.MISC_LATVIAN"},{"enum_id":39,"string_id":"org.droidtv.ui.strings.R.string.MISC_LITHUANIAN"},{"enum_id":52,"string_id":"org.droidtv.ui.strings.R.string.MISC_MACEDONIAN"},{"enum_id":30,"string_id":"org.droidtv.ui.strings.R.string.MISC_HUNGARIAN"},{"enum_id":78,"string_id":"org.droidtv.ui.strings.R.string.MISC_MONGOLIAN"},{"enum_id":15,"string_id":"org.droidtv.ui.strings.R.string.MISC_DUTCH"},{"enum_id":19,"string_id":"org.droidtv.ui.strings.R.string.MISC_NORWEGIAN"},{"enum_id":7,"string_id":"org.droidtv.ui.strings.R.string.MISC_POLISH"},{"enum_id":20,"string_id":"org.droidtv.ui.strings.R.string.MISC_PORTUGUESE"},{"enum_id":36,"string_id":"org.droidtv.ui.strings.R.string.MISC_PORTUGUESE_BRAZILIAN"},{"enum_id":9,"string_id":"org.droidtv.ui.strings.R.string.MISC_RUSSIAN"},{"enum_id":25,"string_id":"org.droidtv.ui.strings.R.string.MISC_ROMANIAN"},{"enum_id":74,"string_id":"org.droidtv.ui.strings.R.string.MISC_ALBANIAN"},{"enum_id":21,"string_id":"org.droidtv.ui.strings.R.string.MISC_SERBIAN"},{"enum_id":22,"string_id":"org.droidtv.ui.strings.R.string.MISC_SLOVAK"},{"enum_id":23,"string_id":"org.droidtv.ui.strings.R.string.MISC_SLOVENIAN"},{"enum_id":16,"string_id":"org.droidtv.ui.strings.R.string.MISC_FINNISH"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MISC_SWEDISH"},{"enum_id":8,"string_id":"org.droidtv.ui.strings.R.string.MISC_TURKISH"},{"enum_id":51,"string_id":"org.droidtv.ui.strings.R.string.MISC_VIETNAMESE"},{"enum_id":27,"string_id":"org.droidtv.ui.strings.R.string.MISC_UKRAINIAN"},{"enum_id":49,"string_id":"org.droidtv.ui.strings.R.string.MISC_TRADITIONAL_CHINESE"},{"enum_id":34,"string_id":"org.droidtv.ui.strings.R.string.MISC_CHINESE"},{"enum_id":28,"string_id":"org.droidtv.ui.strings.R.string.MISC_ARABIC"},{"enum_id":29,"string_id":"org.droidtv.ui.strings.R.string.MISC_HEBREW"},{"enum_id":45,"string_id":"org.droidtv.ui.strings.R.string.MISC_THAI"},{"enum_id":58,"string_id":"org.droidtv.ui.strings.R.string.MISC_HINDI"},{"enum_id":79,"string_id":"org.droidtv.ui.strings.R.string.MISC_BENGALI"},{"enum_id":80,"string_id":"org.droidtv.ui.strings.R.string.MISC_TELUGU"},{"enum_id":81,"string_id":"org.droidtv.ui.strings.R.string.MISC_MARATHI"},{"enum_id":53,"string_id":"org.droidtv.ui.strings.R.string.MISC_TAMIL"},{"enum_id":82,"string_id":"org.droidtv.ui.strings.R.string.MISC_ARMENIAN"},{"enum_id":84,"string_id":"org.droidtv.ui.strings.R.string.MISC_GEORGIAN"}]},"type":"LIST_NODE"},{"node_id":2131230822,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PRIMARY_AUDIO","context":"primary_audio","data":{"enums":[{"enum_id":44,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ORIGINAL_LANGUAGE"},{"enum_id":74,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ALBANIAN_TRANSLATED"},{"enum_id":28,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ARABIC_TRANSLATED"},{"enum_id":48,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BAHASA_MELAYU_TRANSLATED"},{"enum_id":11,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BASQUE_TRANSLATED"},{"enum_id":37,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BULGARIAN_TRANSLATED"},{"enum_id":12,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CATALAN_TRANSLATED"},{"enum_id":34,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SIMPLIFIED_CHINESE_TRANSLATED"},{"enum_id":49,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CHINESE_TRANSLATED"},{"enum_id":61,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MANDARIN_TRANSLATED"},{"enum_id":76,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CANTONESE_TRANSLATED"},{"enum_id":13,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CROATIAN_TRANSLATED"},{"enum_id":6,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CZECH_TRANSLATED"},{"enum_id":14,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DANISH_TRANSLATED"},{"enum_id":15,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DUTCH_TRANSLATED"},{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ENGLISH_TRANSLATED"},{"enum_id":26,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ESTONIAN_TRANSLATED"},{"enum_id":16,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FINNISH_TRANSLATED"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FRENCH_TRANSLATED"},{"enum_id":17,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GAELIC_TRANSLATED"},{"enum_id":58,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HINDI_TRANSLATED"},{"enum_id":50,"string_id":"org.droidtv.ui.strings.R.string.MAIN_INDONESIAN_TRANSLATED"},{"enum_id":43,"string_id":"org.droidtv.ui.strings.R.string.MAIN_IRISH_TRANSLATED"},{"enum_id":18,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GALLEGAN_TRANSLATED"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GERMAN_TRANSLATED"},{"enum_id":10,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GREEK_TRANSLATED"},{"enum_id":29,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HEBREW_TRANSLATED"},{"enum_id":30,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HUNGARIAN_TRANSLATED"},{"enum_id":46,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ORIGINAL_AUDIO"},{"enum_id":59,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SECOND_AUDIO"},{"enum_id":60,"string_id":"org.droidtv.ui.strings.R.string.MAIN_THIRD_AUDIO"},{"enum_id":47,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MULTIPLE_LANGUAGES"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ITALIAN_TRANSLATED"},{"enum_id":57,"string_id":"org.droidtv.ui.strings.R.string.MAIN_JAPANESE_TRANSLATED"},{"enum_id":41,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KAZAKH_TRANSLATED"},{"enum_id":55,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KOREAN_TRANSLATED"},{"enum_id":40,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LATVIAN_TRANSLATED"},{"enum_id":39,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LITHUANIAN_TRANSLATED"},{"enum_id":52,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MACEDONIAN_TRANSLATED"},{"enum_id":54,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAORI_TRANSLATED"},{"enum_id":19,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NORWEGIAN_TRANSLATED"},{"enum_id":7,"string_id":"org.droidtv.ui.strings.R.string.MAIN_POLISH_TRANSLATED"},{"enum_id":20,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PORTUGUESE_TRANSLATED"},{"enum_id":25,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ROMANIAN_TRANSLATED"},{"enum_id":9,"string_id":"org.droidtv.ui.strings.R.string.MAIN_RUSSIAN_TRANSLATED"},{"enum_id":72,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SAMI_TRANSLATED"},{"enum_id":22,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SLOVAK_TRANSLATED"},{"enum_id":23,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SLOVENIAN_TRANSLATED"},{"enum_id":21,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SERBIAN_TRANSLATED"},{"enum_id":5,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPANISH_TRANSLATED"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SWEDISH_TRANSLATED"},{"enum_id":53,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TAMIL_TRANSLATED"},{"enum_id":51,"string_id":"org.droidtv.ui.strings.R.string.MAIN_VIETNAMESE_TRANSLATED"},{"enum_id":8,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TURKISH_TRANSLATED"},{"enum_id":27,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UKRAINIAN_TRANSLATED"},{"enum_id":45,"string_id":"org.droidtv.ui.strings.R.string.MAIN_THAI_TRANSLATED"},{"enum_id":24,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WELSH_TRANSLATED"}]},"type":"LIST_NODE"},{"node_id":2131230823,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SECONDARY_AUDIO","context":"secondary_audio","data":{"enums":[{"enum_id":44,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ORIGINAL_LANGUAGE"},{"enum_id":74,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ALBANIAN_TRANSLATED"},{"enum_id":28,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ARABIC_TRANSLATED"},{"enum_id":48,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BAHASA_MELAYU_TRANSLATED"},{"enum_id":11,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BASQUE_TRANSLATED"},{"enum_id":37,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BULGARIAN_TRANSLATED"},{"enum_id":12,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CATALAN_TRANSLATED"},{"enum_id":34,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SIMPLIFIED_CHINESE_TRANSLATED"},{"enum_id":49,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CHINESE_TRANSLATED"},{"enum_id":61,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MANDARIN_TRANSLATED"},{"enum_id":76,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CANTONESE_TRANSLATED"},{"enum_id":13,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CROATIAN_TRANSLATED"},{"enum_id":6,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CZECH_TRANSLATED"},{"enum_id":14,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DANISH_TRANSLATED"},{"enum_id":15,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DUTCH_TRANSLATED"},{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ENGLISH_TRANSLATED"},{"enum_id":26,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ESTONIAN_TRANSLATED"},{"enum_id":16,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FINNISH_TRANSLATED"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FRENCH_TRANSLATED"},{"enum_id":17,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GAELIC_TRANSLATED"},{"enum_id":58,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HINDI_TRANSLATED"},{"enum_id":50,"string_id":"org.droidtv.ui.strings.R.string.MAIN_INDONESIAN_TRANSLATED"},{"enum_id":43,"string_id":"org.droidtv.ui.strings.R.string.MAIN_IRISH_TRANSLATED"},{"enum_id":18,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GALLEGAN_TRANSLATED"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GERMAN_TRANSLATED"},{"enum_id":10,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GREEK_TRANSLATED"},{"enum_id":29,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HEBREW_TRANSLATED"},{"enum_id":30,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HUNGARIAN_TRANSLATED"},{"enum_id":46,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ORIGINAL_AUDIO"},{"enum_id":59,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SECOND_AUDIO"},{"enum_id":60,"string_id":"org.droidtv.ui.strings.R.string.MAIN_THIRD_AUDIO"},{"enum_id":47,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MULTIPLE_LANGUAGES"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ITALIAN_TRANSLATED"},{"enum_id":57,"string_id":"org.droidtv.ui.strings.R.string.MAIN_JAPANESE_TRANSLATED"},{"enum_id":41,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KAZAKH_TRANSLATED"},{"enum_id":55,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KOREAN_TRANSLATED"},{"enum_id":40,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LATVIAN_TRANSLATED"},{"enum_id":39,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LITHUANIAN_TRANSLATED"},{"enum_id":52,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MACEDONIAN_TRANSLATED"},{"enum_id":54,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAORI_TRANSLATED"},{"enum_id":19,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NORWEGIAN_TRANSLATED"},{"enum_id":7,"string_id":"org.droidtv.ui.strings.R.string.MAIN_POLISH_TRANSLATED"},{"enum_id":20,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PORTUGUESE_TRANSLATED"},{"enum_id":25,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ROMANIAN_TRANSLATED"},{"enum_id":9,"string_id":"org.droidtv.ui.strings.R.string.MAIN_RUSSIAN_TRANSLATED"},{"enum_id":72,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SAMI_TRANSLATED"},{"enum_id":22,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SLOVAK_TRANSLATED"},{"enum_id":23,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SLOVENIAN_TRANSLATED"},{"enum_id":21,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SERBIAN_TRANSLATED"},{"enum_id":5,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPANISH_TRANSLATED"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SWEDISH_TRANSLATED"},{"enum_id":53,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TAMIL_TRANSLATED"},{"enum_id":51,"string_id":"org.droidtv.ui.strings.R.string.MAIN_VIETNAMESE_TRANSLATED"},{"enum_id":8,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TURKISH_TRANSLATED"},{"enum_id":27,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UKRAINIAN_TRANSLATED"},{"enum_id":45,"string_id":"org.droidtv.ui.strings.R.string.MAIN_THAI_TRANSLATED"},{"enum_id":24,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WELSH_TRANSLATED"}]},"type":"LIST_NODE"},{"node_id":2131230824,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PRIMARY_SUBTITLES","context":"primary_subtitles","data":{"enums":[{"enum_id":44,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ORIGINAL_LANGUAGE"},{"enum_id":74,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ALBANIAN_TRANSLATED"},{"enum_id":28,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ARABIC_TRANSLATED"},{"enum_id":48,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BAHASA_MELAYU_TRANSLATED"},{"enum_id":11,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BASQUE_TRANSLATED"},{"enum_id":37,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BULGARIAN_TRANSLATED"},{"enum_id":12,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CATALAN_TRANSLATED"},{"enum_id":34,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SIMPLIFIED_CHINESE_TRANSLATED"},{"enum_id":49,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CHINESE_TRANSLATED"},{"enum_id":61,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MANDARIN_TRANSLATED"},{"enum_id":76,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CANTONESE_TRANSLATED"},{"enum_id":13,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CROATIAN_TRANSLATED"},{"enum_id":6,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CZECH_TRANSLATED"},{"enum_id":14,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DANISH_TRANSLATED"},{"enum_id":15,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DUTCH_TRANSLATED"},{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ENGLISH_TRANSLATED"},{"enum_id":26,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ESTONIAN_TRANSLATED"},{"enum_id":16,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FINNISH_TRANSLATED"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FRENCH_TRANSLATED"},{"enum_id":17,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GAELIC_TRANSLATED"},{"enum_id":58,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HINDI_TRANSLATED"},{"enum_id":50,"string_id":"org.droidtv.ui.strings.R.string.MAIN_INDONESIAN_TRANSLATED"},{"enum_id":43,"string_id":"org.droidtv.ui.strings.R.string.MAIN_IRISH_TRANSLATED"},{"enum_id":18,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GALLEGAN_TRANSLATED"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GERMAN_TRANSLATED"},{"enum_id":10,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GREEK_TRANSLATED"},{"enum_id":29,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HEBREW_TRANSLATED"},{"enum_id":30,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HUNGARIAN_TRANSLATED"},{"enum_id":46,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ORIGINAL_AUDIO"},{"enum_id":59,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SECOND_AUDIO"},{"enum_id":60,"string_id":"org.droidtv.ui.strings.R.string.MAIN_THIRD_AUDIO"},{"enum_id":47,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MULTIPLE_LANGUAGES"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ITALIAN_TRANSLATED"},{"enum_id":57,"string_id":"org.droidtv.ui.strings.R.string.MAIN_JAPANESE_TRANSLATED"},{"enum_id":41,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KAZAKH_TRANSLATED"},{"enum_id":55,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KOREAN_TRANSLATED"},{"enum_id":40,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LATVIAN_TRANSLATED"},{"enum_id":39,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LITHUANIAN_TRANSLATED"},{"enum_id":52,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MACEDONIAN_TRANSLATED"},{"enum_id":54,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAORI_TRANSLATED"},{"enum_id":19,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NORWEGIAN_TRANSLATED"},{"enum_id":7,"string_id":"org.droidtv.ui.strings.R.string.MAIN_POLISH_TRANSLATED"},{"enum_id":20,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PORTUGUESE_TRANSLATED"},{"enum_id":25,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ROMANIAN_TRANSLATED"},{"enum_id":9,"string_id":"org.droidtv.ui.strings.R.string.MAIN_RUSSIAN_TRANSLATED"},{"enum_id":72,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SAMI_TRANSLATED"},{"enum_id":22,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SLOVAK_TRANSLATED"},{"enum_id":23,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SLOVENIAN_TRANSLATED"},{"enum_id":21,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SERBIAN_TRANSLATED"},{"enum_id":5,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPANISH_TRANSLATED"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SWEDISH_TRANSLATED"},{"enum_id":53,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TAMIL_TRANSLATED"},{"enum_id":51,"string_id":"org.droidtv.ui.strings.R.string.MAIN_VIETNAMESE_TRANSLATED"},{"enum_id":8,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TURKISH_TRANSLATED"},{"enum_id":27,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UKRAINIAN_TRANSLATED"},{"enum_id":45,"string_id":"org.droidtv.ui.strings.R.string.MAIN_THAI_TRANSLATED"},{"enum_id":24,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WELSH_TRANSLATED"}]},"type":"LIST_NODE"},{"node_id":2131230825,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SECONDARY_SUBTITLES","context":"secondary_subtitles","data":{"enums":[{"enum_id":44,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ORIGINAL_LANGUAGE"},{"enum_id":74,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ALBANIAN_TRANSLATED"},{"enum_id":28,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ARABIC_TRANSLATED"},{"enum_id":48,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BAHASA_MELAYU_TRANSLATED"},{"enum_id":11,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BASQUE_TRANSLATED"},{"enum_id":37,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BULGARIAN_TRANSLATED"},{"enum_id":12,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CATALAN_TRANSLATED"},{"enum_id":34,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SIMPLIFIED_CHINESE_TRANSLATED"},{"enum_id":49,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CHINESE_TRANSLATED"},{"enum_id":61,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MANDARIN_TRANSLATED"},{"enum_id":76,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CANTONESE_TRANSLATED"},{"enum_id":13,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CROATIAN_TRANSLATED"},{"enum_id":6,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CZECH_TRANSLATED"},{"enum_id":14,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DANISH_TRANSLATED"},{"enum_id":15,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DUTCH_TRANSLATED"},{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ENGLISH_TRANSLATED"},{"enum_id":26,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ESTONIAN_TRANSLATED"},{"enum_id":16,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FINNISH_TRANSLATED"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FRENCH_TRANSLATED"},{"enum_id":17,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GAELIC_TRANSLATED"},{"enum_id":58,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HINDI_TRANSLATED"},{"enum_id":50,"string_id":"org.droidtv.ui.strings.R.string.MAIN_INDONESIAN_TRANSLATED"},{"enum_id":43,"string_id":"org.droidtv.ui.strings.R.string.MAIN_IRISH_TRANSLATED"},{"enum_id":18,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GALLEGAN_TRANSLATED"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GERMAN_TRANSLATED"},{"enum_id":10,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GREEK_TRANSLATED"},{"enum_id":29,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HEBREW_TRANSLATED"},{"enum_id":30,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HUNGARIAN_TRANSLATED"},{"enum_id":46,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ORIGINAL_AUDIO"},{"enum_id":59,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SECOND_AUDIO"},{"enum_id":60,"string_id":"org.droidtv.ui.strings.R.string.MAIN_THIRD_AUDIO"},{"enum_id":47,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MULTIPLE_LANGUAGES"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ITALIAN_TRANSLATED"},{"enum_id":57,"string_id":"org.droidtv.ui.strings.R.string.MAIN_JAPANESE_TRANSLATED"},{"enum_id":41,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KAZAKH_TRANSLATED"},{"enum_id":55,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KOREAN_TRANSLATED"},{"enum_id":40,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LATVIAN_TRANSLATED"},{"enum_id":39,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LITHUANIAN_TRANSLATED"},{"enum_id":52,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MACEDONIAN_TRANSLATED"},{"enum_id":54,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAORI_TRANSLATED"},{"enum_id":19,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NORWEGIAN_TRANSLATED"},{"enum_id":7,"string_id":"org.droidtv.ui.strings.R.string.MAIN_POLISH_TRANSLATED"},{"enum_id":20,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PORTUGUESE_TRANSLATED"},{"enum_id":25,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ROMANIAN_TRANSLATED"},{"enum_id":9,"string_id":"org.droidtv.ui.strings.R.string.MAIN_RUSSIAN_TRANSLATED"},{"enum_id":72,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SAMI_TRANSLATED"},{"enum_id":22,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SLOVAK_TRANSLATED"},{"enum_id":23,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SLOVENIAN_TRANSLATED"},{"enum_id":21,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SERBIAN_TRANSLATED"},{"enum_id":5,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPANISH_TRANSLATED"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SWEDISH_TRANSLATED"},{"enum_id":53,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TAMIL_TRANSLATED"},{"enum_id":51,"string_id":"org.droidtv.ui.strings.R.string.MAIN_VIETNAMESE_TRANSLATED"},{"enum_id":8,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TURKISH_TRANSLATED"},{"enum_id":27,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UKRAINIAN_TRANSLATED"},{"enum_id":45,"string_id":"org.droidtv.ui.strings.R.string.MAIN_THAI_TRANSLATED"},{"enum_id":24,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WELSH_TRANSLATED"}]},"type":"LIST_NODE"},{"node_id":2131230826,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PRIMARY_TELETEXT","context":"primary_text","data":{"enums":[{"enum_id":44,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ORIGINAL_LANGUAGE"},{"enum_id":74,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ALBANIAN_TRANSLATED"},{"enum_id":28,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ARABIC_TRANSLATED"},{"enum_id":48,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BAHASA_MELAYU_TRANSLATED"},{"enum_id":11,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BASQUE_TRANSLATED"},{"enum_id":37,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BULGARIAN_TRANSLATED"},{"enum_id":12,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CATALAN_TRANSLATED"},{"enum_id":34,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SIMPLIFIED_CHINESE_TRANSLATED"},{"enum_id":49,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CHINESE_TRANSLATED"},{"enum_id":61,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MANDARIN_TRANSLATED"},{"enum_id":76,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CANTONESE_TRANSLATED"},{"enum_id":13,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CROATIAN_TRANSLATED"},{"enum_id":6,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CZECH_TRANSLATED"},{"enum_id":14,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DANISH_TRANSLATED"},{"enum_id":15,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DUTCH_TRANSLATED"},{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ENGLISH_TRANSLATED"},{"enum_id":26,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ESTONIAN_TRANSLATED"},{"enum_id":16,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FINNISH_TRANSLATED"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FRENCH_TRANSLATED"},{"enum_id":17,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GAELIC_TRANSLATED"},{"enum_id":58,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HINDI_TRANSLATED"},{"enum_id":50,"string_id":"org.droidtv.ui.strings.R.string.MAIN_INDONESIAN_TRANSLATED"},{"enum_id":43,"string_id":"org.droidtv.ui.strings.R.string.MAIN_IRISH_TRANSLATED"},{"enum_id":18,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GALLEGAN_TRANSLATED"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GERMAN_TRANSLATED"},{"enum_id":10,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GREEK_TRANSLATED"},{"enum_id":29,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HEBREW_TRANSLATED"},{"enum_id":30,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HUNGARIAN_TRANSLATED"},{"enum_id":46,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ORIGINAL_AUDIO"},{"enum_id":59,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SECOND_AUDIO"},{"enum_id":60,"string_id":"org.droidtv.ui.strings.R.string.MAIN_THIRD_AUDIO"},{"enum_id":47,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MULTIPLE_LANGUAGES"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ITALIAN_TRANSLATED"},{"enum_id":57,"string_id":"org.droidtv.ui.strings.R.string.MAIN_JAPANESE_TRANSLATED"},{"enum_id":41,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KAZAKH_TRANSLATED"},{"enum_id":55,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KOREAN_TRANSLATED"},{"enum_id":40,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LATVIAN_TRANSLATED"},{"enum_id":39,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LITHUANIAN_TRANSLATED"},{"enum_id":52,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MACEDONIAN_TRANSLATED"},{"enum_id":54,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAORI_TRANSLATED"},{"enum_id":19,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NORWEGIAN_TRANSLATED"},{"enum_id":7,"string_id":"org.droidtv.ui.strings.R.string.MAIN_POLISH_TRANSLATED"},{"enum_id":20,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PORTUGUESE_TRANSLATED"},{"enum_id":25,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ROMANIAN_TRANSLATED"},{"enum_id":9,"string_id":"org.droidtv.ui.strings.R.string.MAIN_RUSSIAN_TRANSLATED"},{"enum_id":72,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SAMI_TRANSLATED"},{"enum_id":22,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SLOVAK_TRANSLATED"},{"enum_id":23,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SLOVENIAN_TRANSLATED"},{"enum_id":21,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SERBIAN_TRANSLATED"},{"enum_id":5,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPANISH_TRANSLATED"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SWEDISH_TRANSLATED"},{"enum_id":53,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TAMIL_TRANSLATED"},{"enum_id":51,"string_id":"org.droidtv.ui.strings.R.string.MAIN_VIETNAMESE_TRANSLATED"},{"enum_id":8,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TURKISH_TRANSLATED"},{"enum_id":27,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UKRAINIAN_TRANSLATED"},{"enum_id":45,"string_id":"org.droidtv.ui.strings.R.string.MAIN_THAI_TRANSLATED"},{"enum_id":24,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WELSH_TRANSLATED"}]},"type":"LIST_NODE"},{"node_id":2131230827,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SECONDARY_TELETEXT","context":"secondary_text","data":{"enums":[{"enum_id":44,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ORIGINAL_LANGUAGE"},{"enum_id":74,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ALBANIAN_TRANSLATED"},{"enum_id":28,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ARABIC_TRANSLATED"},{"enum_id":48,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BAHASA_MELAYU_TRANSLATED"},{"enum_id":11,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BASQUE_TRANSLATED"},{"enum_id":37,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BULGARIAN_TRANSLATED"},{"enum_id":12,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CATALAN_TRANSLATED"},{"enum_id":34,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SIMPLIFIED_CHINESE_TRANSLATED"},{"enum_id":49,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CHINESE_TRANSLATED"},{"enum_id":61,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MANDARIN_TRANSLATED"},{"enum_id":76,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CANTONESE_TRANSLATED"},{"enum_id":13,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CROATIAN_TRANSLATED"},{"enum_id":6,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CZECH_TRANSLATED"},{"enum_id":14,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DANISH_TRANSLATED"},{"enum_id":15,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DUTCH_TRANSLATED"},{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ENGLISH_TRANSLATED"},{"enum_id":26,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ESTONIAN_TRANSLATED"},{"enum_id":16,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FINNISH_TRANSLATED"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MAIN_FRENCH_TRANSLATED"},{"enum_id":17,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GAELIC_TRANSLATED"},{"enum_id":58,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HINDI_TRANSLATED"},{"enum_id":50,"string_id":"org.droidtv.ui.strings.R.string.MAIN_INDONESIAN_TRANSLATED"},{"enum_id":43,"string_id":"org.droidtv.ui.strings.R.string.MAIN_IRISH_TRANSLATED"},{"enum_id":18,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GALLEGAN_TRANSLATED"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GERMAN_TRANSLATED"},{"enum_id":10,"string_id":"org.droidtv.ui.strings.R.string.MAIN_GREEK_TRANSLATED"},{"enum_id":29,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HEBREW_TRANSLATED"},{"enum_id":30,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HUNGARIAN_TRANSLATED"},{"enum_id":46,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ORIGINAL_AUDIO"},{"enum_id":59,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SECOND_AUDIO"},{"enum_id":60,"string_id":"org.droidtv.ui.strings.R.string.MAIN_THIRD_AUDIO"},{"enum_id":47,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MULTIPLE_LANGUAGES"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ITALIAN_TRANSLATED"},{"enum_id":57,"string_id":"org.droidtv.ui.strings.R.string.MAIN_JAPANESE_TRANSLATED"},{"enum_id":41,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KAZAKH_TRANSLATED"},{"enum_id":55,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KOREAN_TRANSLATED"},{"enum_id":40,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LATVIAN_TRANSLATED"},{"enum_id":39,"string_id":"org.droidtv.ui.strings.R.string.MAIN_LITHUANIAN_TRANSLATED"},{"enum_id":52,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MACEDONIAN_TRANSLATED"},{"enum_id":54,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MAORI_TRANSLATED"},{"enum_id":19,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NORWEGIAN_TRANSLATED"},{"enum_id":7,"string_id":"org.droidtv.ui.strings.R.string.MAIN_POLISH_TRANSLATED"},{"enum_id":20,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PORTUGUESE_TRANSLATED"},{"enum_id":25,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ROMANIAN_TRANSLATED"},{"enum_id":9,"string_id":"org.droidtv.ui.strings.R.string.MAIN_RUSSIAN_TRANSLATED"},{"enum_id":72,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SAMI_TRANSLATED"},{"enum_id":22,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SLOVAK_TRANSLATED"},{"enum_id":23,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SLOVENIAN_TRANSLATED"},{"enum_id":21,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SERBIAN_TRANSLATED"},{"enum_id":5,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPANISH_TRANSLATED"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SWEDISH_TRANSLATED"},{"enum_id":53,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TAMIL_TRANSLATED"},{"enum_id":51,"string_id":"org.droidtv.ui.strings.R.string.MAIN_VIETNAMESE_TRANSLATED"},{"enum_id":8,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TURKISH_TRANSLATED"},{"enum_id":27,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UKRAINIAN_TRANSLATED"},{"enum_id":45,"string_id":"org.droidtv.ui.strings.R.string.MAIN_THAI_TRANSLATED"},{"enum_id":24,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WELSH_TRANSLATED"}]},"type":"LIST_NODE"}]}},{"node_id":2131230828,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CLOCK","context":"clock","data":{"nodes":[{"node_id":2131230829,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUTO_CLOCK_MODE","context":"auto_clock_mode","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUTOMATIC"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_COUNTRY_DEPENDENT"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MANUAL"}]},"type":"LIST_NODE"},{"node_id":2131230830,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TIME_ZONE","context":"time_zone","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KAZAKH_WESTERN"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KAZAKH_EASTERN"}]},"type":"LIST_NODE"},{"node_id":2131230831,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TIME_ZONE","context":"time_zone","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PORTUGAL_MADEIRA"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AZORES"}]},"type":"LIST_NODE"},{"node_id":2131230832,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TIME_ZONE","context":"time_zone","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KALINGRAD"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MOSCOW"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SAMARA"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_YEKATERINBURG"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OMSK"},{"enum_id":5,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KRASNOYARSK"},{"enum_id":6,"string_id":"org.droidtv.ui.strings.R.string.MAIN_IRKUTSK"},{"enum_id":7,"string_id":"org.droidtv.ui.strings.R.string.MAIN_YAKUTSK"},{"enum_id":8,"string_id":"org.droidtv.ui.strings.R.string.MAIN_VLADIVOSTOK"},{"enum_id":9,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SREDNEKOLYMSK"},{"enum_id":10,"string_id":"org.droidtv.ui.strings.R.string.MAIN_KAMCHATKA"}]},"type":"LIST_NODE"},{"node_id":2131230833,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TIME_ZONE","context":"time_zone","data":{"enums":[{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPAIN_BALEARES"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CANARY_ISLANDS"}]},"type":"LIST_NODE"},{"node_id":2131230834,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TIME_ZONE","context":"time_zone","data":{"enums":[{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_QUEENSLAND"},{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NEW_SOUTH_WALES"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_VICTORIA"},{"enum_id":5,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TASMANIA"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SOUTH_AUSTRALIA"},{"enum_id":6,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NORTHERN_TERRITORY"},{"enum_id":4,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WESTERN_AUSTRALIA"}]},"type":"LIST_NODE"},{"node_id":2131230835,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TIME_ZONE","context":"time_zone","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_INDONESIA_WESTERN_TIME_ZONE"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_INDONESIA_CENTRAL_TIME_ZONE"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_INDONESIA_EASTERN_TIME_ZONE"}]},"type":"LIST_NODE"},{"node_id":2131230836,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TIME_ZONE","context":"time_zone","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NZ_EXCEPT_CHATHAM_TIME_ZONE"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_CHATHAM_ISLANDS"}]},"type":"LIST_NODE"},{"node_id":2131230837,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DATE","context":"date","data":{},"type":"DATE_PICKER"},{"node_id":2131230838,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TIME","context":"time","data":{},"type":"TIME_PICKER"},{"node_id":2131230839,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SLEEPTIMER","context":"sleeptimer","data":{"slider_data":{"min":0,"max":180,"step_size":5}},"type":"SLIDER_NODE"}]}},{"node_id":2131230840,"string_id":"org.droidtv.ui.strings.R.string.MAIN_RC_KEYBOARD","context":"rc_keyboard","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MISC_QWERTY"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MISC_AZERTY"}]},"type":"LIST_NODE"}]}},{"node_id":2131230754,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_GOOGLE_SETTINGS","context":"android_settings","data":{}},{"node_id":2131230755,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_UNIVERSAL_ACCESS","context":"accessibility","data":{"nodes":[{"node_id":2131230756,"string_id":"org.droidtv.ui.strings.R.string.MAIN_UNIVERSAL_ACCESS","context":"universal_access","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230757,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HEARING_IMPAIRED","context":"hearing_impaired","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230758,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_AUDIO_DESCRIPTION","context":"audio_description_menu","data":{"nodes":[{"node_id":2131230759,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUDIO_DESCRIPTION","context":"audio_description","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230760,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPEAKERS_OR_HEADPHONES","context":"speakers_headphones","data":{"enums":[{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPEAKERS"},{"enum_id":2,"string_id":"org.droidtv.ui.strings.R.string.MAIN_HEADPHONE"},{"enum_id":3,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPEAKERS_HEADPHONE"}]},"type":"LIST_NODE"},{"node_id":2131230761,"string_id":"org.droidtv.ui.strings.R.string.MAIN_MIXED_VOLUME","context":"mixed_volume","data":{"slider_data":{"min":-32,"max":32,"step_size":1}},"type":"SLIDER_NODE"},{"node_id":2131230762,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SEAMLESS_MIXING","context":"audio_effects","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230763,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SPEECH_PREFERENCE","context":"speech","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PREFERENCE_DESCRIPTIVE"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PREFERENCE_SUBTITLES"}]},"type":"LIST_NODE"}]}},{"node_id":2131230764,"string_id":"org.droidtv.ui.strings.R.string.MAIN_DIALOGUE_ENHANCEMENT","context":"dialogue_enhancement","data":{"slider_data":{"min":0,"max":9,"step_size":1}},"type":"SLIDER_NODE"}]}},{"node_id":2131230808,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CHILD_LOCK","context":"child_lock","data":{"nodes":[{"node_id":2131230809,"string_id":"org.droidtv.ui.strings.R.string.MAIN_PARENTAL_RATING","context":"parental_rating","data":{"enums":[]},"type":"LIST_NODE"},{"node_id":2131230810,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_PARENTAL_RATING_STREAMING_CHANNELS","context":"parental_rating","data":{}},{"node_id":2131230811,"string_id":"org.droidtv.ui.strings.R.string.MAIN_APP_LOCKING","context":"app_locking","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230812,"type":"PARENT_NODE","context":"change_code","data":{}},{"node_id":2131230813,"type":"PARENT_NODE","context":"CAM_change_code","data":{}}]}},{"node_id":2131230724,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_WIRELESS_AND_NETWORKS","context":"wireless_networks","data":{"nodes":[{"node_id":2131230725,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_WIRED_OR_WIFI","context":"network","data":{"nodes":[{"node_id":2131230726,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CONNECT_TO_NETWORK","context":"connect_to_network","data":{}},{"node_id":2131230727,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_VIEW_NETWORK_SETTINGS","context":"view_network_settings","data":{}},{"node_id":2131230728,"string_id":"org.droidtv.ui.strings.R.string.MAIN_NETWORK_MODE","context":"network_configuration","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MISC_DHCP"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_STATIC_IP"}]},"type":"LIST_NODE"},{"node_id":2131230729,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_IP_CONFIGURATION","context":"ip_configuration","data":{"nodes":[{"node_id":2131230730,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_PANEL_IP_ADDRESS","context":"ip_address","data":{}},{"node_id":2131230731,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_PANEL_NETMASK","context":"netmask","data":{}},{"node_id":2131230732,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_PANEL_GATEWAY","context":"gateway","data":{}},{"node_id":2131230733,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_PANEL_DNS_1","context":"dns_1","data":{}},{"node_id":2131230734,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_PANEL_DNS_2","context":"dns_2","data":{}}]}},{"node_id":2131230735,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SWITCH_ON_WITH_WIFI_WOWLAN","context":"switch_on_with_network","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230736,"string_id":"org.droidtv.ui.strings.R.string.MAIN_SWITCH_ON_WITH_CHROMECAST","context":"switch_on_with_network","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230737,"string_id":"org.droidtv.ui.strings.R.string.MAIN_RENDERER_ACCESS","context":"digital_media_renderer","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230738,"string_id":"org.droidtv.ui.strings.R.string.MAIN_WIFI_ON_OFF","context":"wifi_on_off","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230739,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_RECORDING_ON_THE_GO","context":"myremote_recording","data":{}},{"node_id":2131230740,"string_id":"org.droidtv.ui.strings.R.string.MAIN_TV_NAME","context":"tv_network_name","data":{},"type":"TEXT_ENTRY"},{"node_id":2131230741,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CLEAR_APPS_MEMORY","context":"clear_internet_memory","data":{}}]}},{"node_id":2131230742,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_BLUETOOTH","context":"bluetooth","data":{"nodes":[{"node_id":2131230743,"string_id":"org.droidtv.ui.strings.R.string.MAIN_BT_ON_OFF","context":"bluetooth_on_off","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230744,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_SEARCH_BT_DEVICE","context":"search_for_bt_devices","data":{}},{"node_id":2131230745,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_REMOVE_BT_DEVICE","context":"remove_bt_device","data":{}}]}},{"node_id":2131230746,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_REMOTE_CONTROL","context":"bt_remote_control","data":{"nodes":[{"node_id":2131230747,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_PAIR_RC","context":"pair_remote_control","data":{}},{"node_id":2131230748,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CURRENT_SOFTWARE_INFO","context":"check_software_version","data":{}},{"node_id":2131230749,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CH_UPDATE_RC_SOFTWARE","context":"update_rc_software","data":{}}]}},{"node_id":2131230750,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CUBE_NAME","context":"cube_name","data":{"nodes":[{"node_id":2131230751,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_PAIR_CUBE_NAME","context":"pair_voice_cube","data":{}},{"node_id":2131230748,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CURRENT_SOFTWARE_INFO","context":"check_software_version","data":{}},{"node_id":2131230752,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_UPDATE_CUBE_NAME_SOFTWARE","context":"update_rc_software","data":{}}]}}]}},{"node_id":2131230801,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CHANNELS","context":"channels","data":{"nodes":[{"node_id":2131230802,"type":"PARENT_NODE","context":"channel_installation","data":{}},{"node_id":2131230803,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_SATELLITE_INSTALLATION","context":"satellite_installation","data":{}},{"node_id":2131230804,"type":"PARENT_NODE","context":"channel_list_copy","data":{"nodes":[{"node_id":2131230805,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_COPY_TO_USB","context":"channels_copy_to_usb","data":{}},{"node_id":2131230806,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_COPY_TO_TV","context":"channels_copy_to_tv","data":{}},{"node_id":2131230807,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CURRENT_VERSION","context":"channels_current_version","data":{}}]}}]}},{"node_id":2131230945,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_UPDATE_SOFTWARE","context":"update_software","data":{"nodes":[{"node_id":2131230946,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_SEARCH_FOR_UPDATES","context":"search_for_update","data":{"nodes":[{"node_id":2131230947,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_INTERNET_RECOMMENDED","context":"internet_updates","data":{}},{"node_id":2131230948,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_USB","context":"local_updates","data":{"nodes":[{"node_id":2131230949,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_LOCAL_UPDATES","context":"local_updates","data":{}},{"node_id":2131230950,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_IDENTIFY_TV","context":"local_updates","data":{}}]}},{"node_id":2131230951,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_LOOK_FOR_OAD_UPDATES","context":"look_for_oad_updates","data":{}}]}},{"node_id":2131230952,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_CURRENT_SOFTWARE_INFO","context":"current_software_info","data":{}},{"node_id":2131230953,"string_id":"org.droidtv.ui.strings.R.string.MAIN_AUTOMATIC_SOFTWARE_UPDATE","context":"automatic_update","data":{"enums":[{"enum_id":0,"string_id":"org.droidtv.ui.strings.R.string.MAIN_OFF"},{"enum_id":1,"string_id":"org.droidtv.ui.strings.R.string.MAIN_ON"}]},"type":"LIST_NODE"},{"node_id":2131230954,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_ANNOUNCEMENT","context":"announcement","data":{}},{"node_id":2131230955,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_VIEW_SOFTWARE_UPDATE_HISTORY","context":"view_software_update_history","data":{}}]}}]}}}

I figured

{"node_id":2131230816,"type":"PARENT_NODE","string_id":"org.droidtv.ui.strings.R.string.MAIN_MUTE_SCREEN","context":"screen_off","data":{}}

is what I was looking for.

A POST of {"nodes":[{"nodeid":2131230774}]} on https://ipaddress:1926/6/menuitems/settings/current returned:
{"values":[{"value":{"Nodeid":2131230816,"Controllable":"true","Available":"true","string_id":"Bild ausgeschaltet"}}]}

I tried I. E.
python pylips.py --command post --path menuitems/settings/update --body '{"values":[{"value":{"Nodeid":2131230816,"Controllable":"true","Available":"true","string_id":"Bild ausgeschaltet"}}]}'

and added

	"screen_off": {
		"path": "menuitems/settings/update",
		"body": {
			"values": [{
				"value": {
					"Nodeid": 2131230816,
					"Controllable": "true",
					"Available": "false",
					"string_id": "Bild ausgeschaltet",
					"data": {

					}
				}

			}]
		}
	},

to the settings in order to try it that way. Everytime the TV returns {"response": "OK"} but nothing happens.

I must be missing something.

ambilight_color - SAPHI OS - Wrong body parameters

ambilight_color - Sets ambilight color. Requires a valid --body argument: {"hue": 360, "saturation": 100,

Can you check what is the body parameters for Saphi OS? This is one of the commands that don't work, because it have the wrong body. The method ambilight_color exists.

Launching Apps - adding to documentation

Many thanks for your work! I am currently using it for the IOT system ioBroker since there is a plugin which needs some enhancements and I guess your Python code is awesome and should be adopted.
See https://forum.iobroker.net/topic/8791/aufruf-philips-tv-v0-1-0-testen (in German).

I would wish to add some more examples for launching apps to the documentation. Finally, all does follow the same syntax and we just need to use "Activities current (GET)" to get the current application data and then change the template accordingly.

`Amazon Prime Video:
{"id":"com.amazon.amazonvideo.livingroom","order":0,"intent":{"action":"Intent{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.amazon.amazonvideo.livingroom }","component":{"packageName":"com.amazon.amazonvideo.livingroom","className":"com.amazon.ignition.IgnitionActivity"}},"label":"Prime Video"}

Kodi
{"id":"org.xbmc.kodi","order":0,"intent":{"action":"Intent{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=org.xbmc.kodi }","component":{"packageName":"org.xbmc.kodi","className":"org.xbmc.kodi.Splash"}},"label":"Kodi"}

Netflix
{"id":"com.netflix.ninja","order":0,"intent":{"action":"Intent{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.netflix.ninja }","component":{"packageName":"com.netflix.ninja","className":"com.netflix.ninja.MainActivity"}},"label":"Netflix"}

YouTube
{"id":"com.google.android.apps.youtube.tv.activity.ShellActivity-com.google.android.youtube.tv","order":0,"intent":{"action":"Intent{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.google.android.youtube.tv cmp=com.google.android.youtube.tv/com.google.android.apps.youtube.tv.activity.ShellActivity }","component":{"packageName":"com.google.android.youtube.tv","className":"com.google.android.apps.youtube.tv.activity.ShellActivity"}},"label":"YouTube"}`

launch_app (Netflix) does'nt work

I am trying to start netflix, youtube, kodi with pylips.
Sadly without luck.
Your examples doesnt also work for me.
I have tried to get the needed informations from this endpoint https://github.com/eslavnov/pylips/wiki/Applications-(GET)
but without luck on using it.

My TV has android pie on it, maybe thats the reason?

Here is the output of my applications:

{"version":2,"applications":[{"label":"Wie Sie...","intent":{"component":{"packageName":"org.droidtv.eum","className":"org.droidtv.eum.onehelp.HowToTutorials.HowToVideosActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.eum.onehelp.HowToTutorials.HowToVideosActivity-org.droidtv.eum","type":"app"},{"label":"Play Store","intent":{"component":{"packageName":"com.android.vending","className":"com.google.android.finsky.tvmainactivity.TvMainActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"com.google.android.finsky.tvmainactivity.TvMainActivity-com.android.vending","type":"app"},{"label":"YouTube","intent":{"component":{"packageName":"com.google.android.youtube.tv","className":"com.google.android.apps.youtube.tv.activity.ShellActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"com.google.android.apps.youtube.tv.activity.ShellActivity-com.google.android.youtube.tv","type":"app"},{"label":"Prime Video","intent":{"component":{"packageName":"com.amazon.amazonvideo.livingroom","className":"com.amazon.ignition.IgnitionActivity"},"action":"empty"},"order":0,"id":"com.amazon.ignition.IgnitionActivity-com.amazon.amazonvideo.livingroom","type":"app"},{"label":"Play Musik","intent":{"component":{"packageName":"com.google.android.music","className":"com.google.android.music.tv.HomeActivity"},"action":"empty"},"order":0,"id":"com.google.android.music.tv.HomeActivity-com.google.android.music","type":"app"},{"label":"Play Spiele","intent":{"component":{"packageName":"com.google.android.play.games","className":"com.google.android.apps.play.games.app.atv.features.home.HomeActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"com.google.android.apps.play.games.app.atv.features.home.HomeActivity-com.google.android.play.games","type":"app"},{"label":"Play Filme & Serien","intent":{"component":{"packageName":"com.google.android.videos","className":"com.google.android.videos.tv.presenter.activity.TvLauncherActivity"},"action":"empty"},"order":0,"id":"com.google.android.videos.tv.presenter.activity.TvLauncherActivity-com.google.android.videos","type":"app"},{"label":"Netflix","intent":{"component":{"packageName":"com.netflix.ninja","className":"com.netflix.ninja.MainActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"com.netflix.ninja.MainActivity-com.netflix.ninja","type":"app"},{"label":"Internet Browser","intent":{"component":{"packageName":"com.opera.sdk.example","className":"com.opera.sdk.example.OperaBrowserUiActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"com.opera.sdk.example.OperaBrowserUiActivity-com.opera.sdk.example","type":"app"},{"label":"Amazon Alexa","intent":{"component":{"packageName":"org.droidtv.amazonalexa","className":"org.droidtv.amazonalexa.wizard.AlexaWizardActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.amazonalexa.wizard.AlexaWizardActivity-org.droidtv.amazonalexa","type":"app"},{"label":"TV-Guide","intent":{"component":{"packageName":"org.droidtv.channels","className":"org.droidtv.channels.ChannelsActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.channels.ChannelsActivity-org.droidtv.channels","type":"app"},{"label":"Medien","intent":{"component":{"packageName":"org.droidtv.contentexplorer","className":"org.droidtv.contentexplorer.MainActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.contentexplorer.MainActivity-org.droidtv.contentexplorer","type":"app"},{"label":"Demo-Menü","intent":{"component":{"packageName":"org.droidtv.demome","className":"org.droidtv.demome.DemoMeOptionsActivity"},"action":"empty"},"order":0,"id":"org.droidtv.demome.DemoMeOptionsActivity-org.droidtv.demome","type":"app"},{"label":"Sammlung von Philips TV","intent":{"component":{"packageName":"org.droidtv.nettv.market","className":"org.droidtv.nettv.market.MarketMainActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.nettv.market.MarketMainActivity-org.droidtv.nettv.market","type":"app"},{"label":"Top Auswahl","intent":{"component":{"packageName":"org.droidtv.nettvrecommender","className":"org.droidtv.nettvrecommender.NetTvRecommenderMainActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.nettvrecommender.NetTvRecommenderMainActivity-org.droidtv.nettvrecommender","type":"app"},{"label":"Fernsehen","intent":{"component":{"packageName":"org.droidtv.playtv","className":"org.droidtv.playtv.PlayTvActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.playtv.PlayTvActivity-org.droidtv.playtv","type":"app"},{"label":"Asphalt Nitro","intent":{"component":{"packageName":"com.gameloft.android.HEP.GloftANHP","className":"com.gameloft.android.HEP.GloftANHP.MainActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"com.gameloft.android.HEP.GloftANHP.MainActivity-com.gameloft.android.HEP.GloftANHP","type":"game"},{"label":"ORF TVthek","intent":{"component":{"packageName":"com.nousguide.android.orftvthek","className":"com.nousguide.android.tvthek.fire.MainActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"com.nousguide.android.tvthek.fire.MainActivity-com.nousguide.android.orftvthek","type":"app"},{"label":"ZDFmediathek","intent":{"component":{"packageName":"com.zdf.android.mediathek","className":"com.zdf.android.mediathek.ui.splash.SplashActivity"},"action":"empty"},"order":0,"id":"com.zdf.android.mediathek.ui.splash.SplashActivity-com.zdf.android.mediathek","type":"app"},{"label":"kabel eins Doku","intent":{"component":{"packageName":"de.prosiebensat1digital.kabeleinsdoku","className":"de.prosiebensat1digital.seventv.view.SplashScreenActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"de.prosiebensat1digital.seventv.view.SplashScreenActivity-de.prosiebensat1digital.kabeleinsdoku","type":"app"},{"label":"ProSieben MAXX","intent":{"component":{"packageName":"de.prosiebensat1digital.prosiebenmaxx","className":"de.prosiebensat1digital.seventv.view.SplashScreenActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"de.prosiebensat1digital.seventv.view.SplashScreenActivity-de.prosiebensat1digital.prosiebenmaxx","type":"app"},{"label":"ARTE","intent":{"component":{"packageName":"org.droidtv.nettvapp1814","className":"com.zeasn.app.linux.MainActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"com.zeasn.app.linux.MainActivity-org.droidtv.nettvapp1814","type":"app"},{"label":"ARD Mediathek","intent":{"component":{"packageName":"org.droidtv.nettvapp3093","className":"com.zeasn.app.linux.MainActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"com.zeasn.app.linux.MainActivity-org.droidtv.nettvapp3093","type":"app"},{"label":"Flimmit","intent":{"component":{"packageName":"org.droidtv.nettvapp4470","className":"com.zeasn.app.linux.MainActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"com.zeasn.app.linux.MainActivity-org.droidtv.nettvapp4470","type":"app"},{"label":"Flimmit","intent":{"component":{"packageName":"org.droidtv.nettvapp5194","className":"org.droidtv.nettvapplication.NetTVActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.nettvapplication.NetTVActivity-org.droidtv.nettvapp5194","type":"app"},{"label":"Kodi","intent":{"component":{"packageName":"org.xbmc.kodi","className":"org.xbmc.kodi.Splash"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.xbmc.kodi.Splash-org.xbmc.kodi","type":"app"},{"label":"Solid Explorer","intent":{"component":{"packageName":"pl.solidexplorer2","className":"pl.solidexplorer.SolidExplorer"},"action":"android.intent.action.MAIN"},"order":0,"id":"pl.solidexplorer.SolidExplorer-pl.solidexplorer2","type":"app"},{"label":"Emby","intent":{"component":{"packageName":"tv.emby.embyatv","className":"tv.emby.embyatv.startup.StartupActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"tv.emby.embyatv.startup.StartupActivity-tv.emby.embyatv","type":"app"},{"label":"Einstellungen","intent":{"component":{"packageName":"org.droidtv.settings","className":"org.droidtv.settings.setupmenu.SetupMenuActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.settings.setupmenu.SetupMenuActivity-org.droidtv.settings","type":"app"},{"label":"Sender installieren","intent":{"component":{"packageName":"org.droidtv.settings","className":"org.droidtv.settings.setupmenu.ChannelSettingActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.settings.setupmenu.ChannelSettingActivity-org.droidtv.settings","type":"app"},{"label":"Wie Sie...","intent":{"component":{"packageName":"org.droidtv.eum","className":"org.droidtv.eum.onehelp.menu.HowToLauncherActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.eum.onehelp.menu.HowToLauncherActivity-org.droidtv.eum","type":"app"},{"label":"Kabellos und Netzwerke","intent":{"component":{"packageName":"org.droidtv.settings","className":"org.droidtv.settings.setupmenu.WirelessAndNetworkSettingsActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.settings.setupmenu.WirelessAndNetworkSettingsActivity-org.droidtv.settings","type":"app"},{"label":"Apps verwalten","intent":{"component":{"packageName":"com.android.tv.settings","className":"com.android.tv.settings.device.apps.AppsActivity"},"action":"empty"},"order":0,"id":"com.android.tv.settings.device.apps.AppsActivity-com.android.tv.settings","type":"app"},{"label":"Hilfe","intent":{"component":{"packageName":"org.droidtv.eum","className":"org.droidtv.eum.onehelp.menu.OneHelpActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.eum.onehelp.menu.OneHelpActivity-org.droidtv.eum","type":"app"},{"label":"Software aktualisieren","intent":{"component":{"packageName":"org.droidtv.settings","className":"org.droidtv.settings.setupmenu.UpdateSWSettingsActivity"},"action":"android.intent.action.MAIN"},"order":0,"id":"org.droidtv.settings.setupmenu.UpdateSWSettingsActivity-org.droidtv.settings","type":"app"}]}

Thank you

[FEAT] Screen off but keep audio

On my philips I have an option to turn off the screen but keep the sound.
Used with audio applications like chromecast or spotify ...
Can this command be added? I did not find it in the api joint sapce: '(

[BUG]

Hi,

Initial communication has completed and has populated settings.ini however attempting to issue a command fails returning back a message that ‘The request requires authentication’.

I’ve also tried issuing the command while also adding the user and pass variables but with the same response back.

python3 ./pylips.py --command volume
Sending GET request to https://192.168.1.71:1926/6/audio/volume
Request sent!

<title>Status page</title>

Unauthorized

The request requires user authentication

You can get technical details here.
Please continue your visit at our home page.

[FEAT] "Follow Sound" Ambilight with a custom color

Official Phillips app has the ability to set ambilight to "Follow Sound" and then pick a specific color to avoid the "rainbow effect".

I tried replicating this with custom commands without success, not even with CURL. Seems like the app does something different...

This is what I GET with this mode active:

GET /6/ambilight/currentconfiguration:

"styleName":"FOLLOW_AUDIO",
"isExpert":true,
"audioSettings":{

"color":{"hue":165,"saturation":251,"brightness":140},
"colorDelta":{"hue":0,"saturation":0,"brightness":140},
"tuning":2,"
algorithm":"ENERGY_ADAPTIVE_COLORS"}

Findings:

"algorithm": will show the name of the next algorithm on the list, and not the one currently active (weird). Trying to POST different algorithms will overlap the defined color for some reason

"color delta": seems to be an additional color you can pick and mix with the first color. Some algorithms will bounce back and forth between these 2, but it usually overlaps them together and creates a new color

"tuning": No matter what I POST here, it remains at 2 when I do a GET

I tried doing a MITM Proxy to understand what the app is POSTING to make the color stay put, but I'm stuck at app pairing. If I pair the app without the proxy, then it won't reach the TV once connected to the proxy again.

Having pylips include this command would be great, as I'm not really a fan of the "rainbow" approach.

MQTT volume command

I can't get the volume command to work over mqtt by using {{"command":"volume","body":{"value":10}}
Am I doing something wrong.

[BUG] pairing 55PUS7394/12 (2019) fails

Describe the bug
Try to pair a Philips 55PUS7394-12 android-tv fails.

To Reproduce
Steps to reproduce the behavior:

  1. edit settings.ini and set ´host = ip.of.my.tv´
  2. using command ´python3 pylibs.py´as given in the readme

paring faills with
´´´
Checking API version and port...
Trying http://ip.of.my.tv:1925/6/system
{'nettvversion': '8.2.0', 'serialnumber_encrypted': 'FF/uIq2oG7QNf1+D0dHzh4daNuM/nA7xfA9ACehFV4E=\n', 'name': '55PUS7394-12', 'country': 'Germany', 'menulanguage': 'German', 'featuring': {'jsonfeatures': {'applications': ['TV_Apps', 'TV_Games', 'TV_Settings'], 'mappings': ['server_mapping'], 'activities': ['intent'], 'ambilight': ['LoungeLight', 'Hue', 'Ambilight', 'HueStreaming'], 'recordings': ['List', 'Schedule', 'Manage'], 'inputkey': ['key'], 'editfavorites': ['TVChannels', 'SatChannels'], 'pointer': ['not_available'], 'menuitems': ['Setup_Menu'], 'channels': ['preset_string'], 'textentry': ['not_available']}, 'systemfeatures': {'tvsearch': 'intent', 'secured_transport': 'true', 'companion_screen': 'true', 'pairing_type': 'digest_auth_pairing', 'content': ['dmr', 'pvr'], 'tvtype': 'consumer'}}, 'epgsource': 'no_epg', 'softwareversion_encrypted': 'LgzCE7mnhZ//JRJPgUJIZaD3Y4/yKMxa8/dD/XnWAD74niOiUJUk8uK2/4K/ope6\n', 'notifyChange': 'http', 'os_type': 'MSAF_2019_P', 'api_version': {'Minor': 1, 'Major': 6, 'Patch': 0}, 'model_encrypted': 'E8Syb2W6Wwf9SIXSAJv6QNP7S7KRzTEYuNaUxz/5xkY=\n', 'deviceid_encrypted': '1+X/37SGxu+oXD+k5fy6jSncMGK65aAkWs/SOss/ExY=\n'}
No valid credentials found, starting pairing process...
Sending pairing request
{'scope': ['read', 'write', 'control'], 'device': {'type': 'native', 'device_os': 'Android', 'device_name': 'heliotrope', 'id': 'xMIp8wZyp7hkmirx', 'app_name': 'Pylips', 'app_id': 'app.id'}}
https://ip.of.my.tv:1926/6/pair/request
...
Traceback (most recent call last): File "pylips.py", line 453, in pylips = Pylips(os.path.dirname(os.path.realpath(file))+"/settings.ini") File "pylips.py", line 76, in init self.pair() File "pylips.py", line 186, in pair self.pair_request(data) File "pylips.py", line 193, in pair_request r = requests.post("https://" + str(self.config["TV"]["host"]) + ":1926/"+str(self.config["TV"]["apiv"]�)+"/pair/request", json=data, verify=False, timeout=2) File "/home/pi/.local/lib/python3.5/site-packages/requests/api.py", line 110, in post return request('post', url, data=data, json=json, **kwargs) File "/home/pi/.local/lib/python3.5/site-packages/requests/api.py", line 56, in request return session.request(method=method, url=url, **kwargs) File "/home/pi/.local/lib/python3.5/site-packages/requests/sessions.py", line 488, in request resp = self.send(prep, **send_kwargs) File "/home/pi/.local/lib/python3.5/site-packages/requests/sessions.py", line 609, in send r = adapter.send(request, **kwargs) File "/home/pi/.local/lib/python3.5/site-packages/requests/adapters.py", line 499, in send raise ReadTimeout(e, request=request)requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='ip.of.my.tv', port=1926): Read timed out. (�read timeout=2)
´´´

[BUG]/[FEAT] Reuse SSL session to fix unresponsive API

40PFT6550/12 stops responding to commands from pylips after a certain point. If the MQTT_update setting is on, it stops fairly quickly and on its own with no input necessary, but if it's disabled, it stops after a number of commands has been sent out and successfully received. The TV starts listening to commands again after it has been put on standby then woken up again.

As the official remote app works fine with any number of commands sent out and any length of time, this seems to be an issue in how the two connect and interact. I initially suspected that there was a missing protocol feature, like a reauthentification, rehandshaking or re-something after a number of commands, but it looks like Home Assistant users are on to something:

https://community.home-assistant.io/t/philips-android-tv-component/17749/14

h0bb3
I got this working on my 55pus727212, i.e. got the pairing code and could then use the component in home assistant (change volume worked fine).

However, after maybe 5-10 volume adjustment tests, it suddenly stopped working and I have not been able to pair it any more (i.e. nothing happens when doing this). Tried restarting the TV etc, but nothing. Any ideas?

https://community.home-assistant.io/t/philips-android-tv-component/17749/15

martijnv
I experienced the same problem, after a minute or 10 the component stopped working because the television stopped responding to the requests. I ran some tests and found that after exactly 100 requests the REST API stopped working. I dug a little deeper with Wireshark and discovered that the problem was caused by the SSL-handshake. At request 101 the client send its SSL “client hello”, but the server did not give a “server hello” back anymore. My guess is that the webserver in the television caches SSL connections in an array of max 100 items.

I’m creating a new version that reuses the SSL connection. The test version that I’m running now appears to be stable this way. I’ve also added channel information, a volume slider en rewind/pause/forward functions. It’s almost done and I will share it very soon.

Sure enough, the following lines of the Home Assistant Philips TV component code say the following:

https://github.com/nstrelow/ha_philips_android_tv/blob/e786331c349937618e12c8b371ebde4d80339fbb/custom_components/philips_android_tv/media_player.py#L299

The XTV app appears to have a bug that limits the nummber of SSL session to 100
The code below forces the control to keep re-using a single connection

After martijnv's post, the issue no longer seems to crop up in the HA component thread so it's safe to assume that the issue is fixed by the solution.

Is this feasible to implement in pylips for us stubborn MQTT and Node-RED users? Thanks in advance!

[BUG] MQTT never goes to "update" loop

Describe the bug
When running in mqtt mode, the program never goes to the update loop, eventhough mqtt_update is set to true

To Reproduce
Steps to reproduce the behavior:

  1. set mqtt_update = true
  2. python ./pylips.py
  3. "Started MQTT status updater" message never appears

Expected behavior
To update the mqtt broker and display verbose info regarding this

Screenshots

Additional context

It seems like

self.mqtt.loop_forever()

will do a blocking loop, meaning that i will never start the updater, instead i propose to use:
self.mqtt.loop_start(), since it will run in its own thread, and allow for the updater to run, this function also handles reconnects.

Help Launch Netflix

Hi eslavnov,

I am trying to use your code to include in my home automation.

I have all the basic commands working, however, I can't seem to follow your instruction for launching apps.

In particular, I am trying Netflix to start with. Your example code for YouTube works perfectly, however, I can't seem to replicate it when I substitute the package and class name for Netflix that I retrieved using the API call.
{"component":{"packageName":"com.netflix.ninja","className":"com.netflix.ninja.MainActivity"}}

Are you able to explain this further for me?

Determining TV port

Hi,

I've been using your wiki as a reference for creating an app that allows a Homey to control Philips TV's. It's been a great help and I might be able to shed some light on a few more features, but that's not what this is about.

In your readme you state that the main difference between regular Philips TV's and Philips Android TV's is the different port which they use. That seemed pretty clear and straightforward, but I've ran into some issues with the Jointspace api since.

Current situation

Currently I've got a user of my app who has a 2016 Philips Android TV which doesn't listen on port 1926 at all. It does however require digest authentication and the use of https for private endpoints via port 1925.

My own Philips Android TV is from 2018 and listens on both port 1925 and 1926. But in my case only the public endpoints such as /6/system and /6/notifychange are accessible via de 1925 port (both http and https work on this port which feels a bit strange). Sending a pair request to my TV requires the use of port 1926 and confirming the pair request also needs to done on port 1926.

Determining the port

My question; do you know of a way to determine which of these ports should be used to fetch the public /6/system endpoint and which port should be used for confirming the pairing process and accessing private endpoints?

Standard Lounge Light Scenes

Hello and many thanks for the tool.

I have discovered that it is also possible to call up the standard Lounge Light scenes via :
192.168.XXX.XX:1925/6/ambilight/currentconfiguration

Maybe you would like to record them as well?

Here are the bodies for it:

{
"styleName": "FOLLOW_COLOR",
"isExpert": false,
"menuSetting": "HOT_LAVA",
"stringValue": "Hot Lava"
}


{
"styleName": "FOLLOW_COLOR",
"isExpert": false,
"menuSetting": "ISF",
"stringValue": "Warm White"
}


{
"styleName": "FOLLOW_COLOR",
"isExpert": false,
"menuSetting": "PTA_LOUNGE",
"stringValue": "Cool White"
}


{
"styleName": "FOLLOW_COLOR",
"isExpert": false,
"menuSetting": "FRESH_NATURE",
"stringValue": "Fresh Nature"
}


{
"styleName": "FOLLOW_COLOR",
"isExpert": false,
"menuSetting": "DEEP_WATER",
"stringValue": "Deep Water"
}

Best Regards
Nastras

[FEAT] Available for testing

First, I'd like to thank you for this! Beautiful! 👍

I have a 49PUS8303 and I'm available for testing any new feature 😄
Looking forward to MQTT integration also - definitely big progress for home automation...

[BUG] Android TV 32PFS6402 : SSL handshake time out

Hello

I have a SSL handshake time out that occurs very often. The only way I found to bypass is to restart the Android OS of the TV, but after a while it appears again, here is the log:

https://192.168.1.27:1926/6/pair/request
Traceback (most recent call last):
File "C:\Python35\lib\site-packages\urllib3\connectionpool.py", line 344, in _make_request
self._validate_conn(conn)
File "C:\Python35\lib\site-packages\urllib3\connectionpool.py", line 843, in validate_conn
conn.connect()
File "C:\Python35\lib\site-packages\urllib3\connection.py", line 370, in connect
ssl_context=context)
File "C:\Python35\lib\site-packages\urllib3\util\ssl
.py", line 368, in ssl_wrap_socket
return context.wrap_socket(sock)
File "C:\Python35\lib\ssl.py", line 376, in wrap_socket
_context=self)
File "C:\Python35\lib\ssl.py", line 747, in init
self.do_handshake()
File "C:\Python35\lib\ssl.py", line 983, in do_handshake
self._sslobj.do_handshake()
File "C:\Python35\lib\ssl.py", line 628, in do_handshake
self._sslobj.do_handshake()
socket.timeout: _ssl.c:629: The handshake operation timed out

Do you know why and how to correct it ?
PS: I have the last firmware on the TV

[BUG] pylips with set apiv is slow compared to curl

Describe the bug
pylips with correct set apiv (6) is slow compared to bare metal curl.
See results meassured with time:

time curl -X POST --digest --insecure -v -u USER:PW -d '{"key":"VolumeUp"}' https://192.168.0.XXX:1926/6/input/key

Result:


real    0m0.278s
user    0m0.132s
sys     0m0.030s

and here pylips witzh teh same request:

time python3 pylips.py --command volume_up
Sending POST request to https://192.168.0.7:1926/6/input/key
Request sent!
{"response": "OK"}

real    0m1.082s
user    0m0.903s
sys     0m0.056s

To Reproduce
see above

Expected behavior
pylips is as fast as curl

Additional context
Maybe pathon3 is the overhead here?
Is there anything i can try to debug the issue?

[FEAT] Add textentry to documentation

Some Android TVs appear to support text input via the Jointspace api.

I'm not a 100% sure about this but the system response seems to suggest it:

{
  "featuring": {
    "jsonfeatures": {
      "textentry": [
        "context_based",
        "initial_string_available",
        "editor_info_available"
      ]
    }
  }
}

If you look at for example how the recordings feature is returned in the jsonfeatures object:

{
  "featuring": {
    "jsonfeatures": {
      "recordings": [
        "List",
        "Schedule",
        "Manage"
      ]
    }
  }
}

This references that the recordings feature has a List endpoint. And the recordings feature does indeed have a /recordings/list endpoint.

If the textentry feature follows the same logic this should be available at /textentry or something like /textentry/context_based or /textentry/editor_info_available. However I haven't been able to figure out which endpoints this feature uses or when its available, most likely only when an input field is selected.

As far as I know the Philips Remote App doesn't offer any text input options, even though my tv appears to support it, so its a tricky one to reverse engineer.

Any thoughts?

[BUG] Can't launch Netflix (Philips TV POS9002)

Describe the bug
Might be a new user error, when I try the example code to launch netflix, amazon prime etc I can't.

This is the message I get back when using it.

Traceback (most recent call last):
File "pylips.py", line 453, in
pylips = Pylips(os.path.dirname(os.path.realpath(file))+"/settings.ini")
File "pylips.py", line 109, in init
self.run_command(args.command,body, self.verbose)
File "pylips.py", line 311, in run_command
return self.post(self.available_commands["post"][command]["path"], body,verbose, callback)
File "pylips.py", line 265, in post
body = json.loads(body)
File "C:\Python34\lib\json_init_.py", line 318, in loads
return _default_decoder.decode(s)
File "C:\Python34\lib\json\decoder.py", line 343, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python34\lib\json\decoder.py", line 361, in raw_decode
raise ValueError(errmsg("Expecting value", s, err.value)) from None
ValueError: Expecting value: line 1 column 1 (char 0)

To Reproduce
Use this in CMD:

python pylips.py --command launch_app --body '{"id":"com.amazon.amazonvideo.livingroom","order":0,"intent":{"action":"Intent{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.amazon.amazonvideo.livingroom }","component":{"packageName":"com.amazon.amazonvideo.livingroom","className":"com.amazon.ignition.IgnitionActivity"}},"label":"Prime Video"}'

Expected behavior
Opens Amazon Prime

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Probably a new user error.

[FEAT] define ini file path

Is your feature request related to a problem? Please describe.
i have two Philips Android TVs and want to monitor them from my Docker Container
https://github.com/b2un0/pylips/blob/master/Dockerfile

but i can't define a absolute path of the settings.ini, so i must mount them from outside.

Describe the solution you'd like
an new argument to define a path of the settings.ini

Describe alternatives you've considered
mount the settings.ini file absolute like the following is not an option for me:

docker run -d \
    --name pylips-70PUS7304 \
    --restart=unless-stopped \
    -v ~/pylips_70PUS7304.ini:/opt/pylips/settings.ini \
     b2un0/pylips:latest

Additional context

i wish i could something like this where pylips_data is an named docker volume which contained the following files:

$ pwd 
/var/lib/docker/volumes/pylips_data
$ tree
└── _data
    ├── 55PUS6551.ini
    └── 70PUS7304.ini

1 directory, 2 files

and i can run both container with the same volume:

docker run -d \
    --name pylips-70PUS7304 \
    --restart=unless-stopped \
    -v pylips_data:/mnt/pylips_data/ \
     --entrypoint "python /opt/pylips/pylips.py --ini /mnt/pylips_data/70PUS7304.ini" \
     b2un0/pylips:latest
docker run -d \
    --name pylips-55PUS6551 \
    --restart=unless-stopped \
    -v pylips_data:/mnt/pylips_data/ \
     --entrypoint "python /opt/pylips/pylips.py --ini /mnt/pylips_data/55PUS6551.ini" \
     b2un0/pylips:latest

Remote power on TV

We can control the TV, we can power off the TV but afaik no option today to power the TV on.

Goal here is to find out a way to power on the TV from the network. Here's my summary:

  • when you power off the TV, the WLAN adapter is not reachable anymore after a certain gracetime
  • sending a WOL package powers up the TV, however the main interfaces (port 1925 and 1926) are not open yet, here's whats open at the moment:
Discovered open port 49153/tcp on 192.168.178.94  << Linux2.6/0.0 UPnP/1.0 PhilipsIntelSDK/1.4 DLNADOC/1.50
Discovered open port 8443/tcp on 192.168.178.94   << HTTPS service, curl request returns empty reply, cert: issuer: C=US; ST=Washington; L=Kirkland; O=Google Inc; OU=Widevine; CN=TPVision TV PH9M_EA_5599 Mediatek MT5599 Cast ICA
Discovered open port 9000/tcp on 192.168.178.94   << unknown
Discovered open port 8009/tcp on 192.168.178.94   << HTTPS service (self signed certificate)
Discovered open port 8008/tcp on 192.168.178.94   << HTTP service, returns 404

so we have different options here to power the TV on:

  • fake a Upnp session, so the TV turns on
  • explore the other ports of the TV and find an API there

someone knows more about those ports?

[BUG] It is Philips 49PUS7150 (2015) supported?

Hi ,
It is supported Philips 49PUS7150 (late 2015) Android TV 5.1?
Because python not running.

ntb@ntb:~/Plocha/pylips-master$ python pylips.py
  File "pylips.py", line 42
    return print("Config file", ini_file, "not found")
               ^
SyntaxError: invalid syntax

[BUG] Exits immediately although mqtt is configured

Describe the bug
Pylips does not listen to MQTT packages because it exits right after the user invoked the script.

To Reproduce
Configure MQTT support:

[DEFAULT]
mqtt_listen = True
mqtt_update = False
[...]
[MQTT]
topic_pylips = pylips
topic_status = pylibs_status
  1. Launch pylips with python3.7 pylips.py
  2. Process starts and immediately exits again, no listening for mqtt is happening.

Expected behavior
Have pylips running in the foreground (or even better background) listening to mqtt packages and running the commands.

Screenshots
n/a

Additional context
n/a

[BUG] return print('Error', r.json())

Describe the bug
I am seeing the error below when I try to run a pylips command

File "pylips.py", line 48 return print('Error', r.json())

I notice that that in line 44 there is a request to an ip address (172.168.201.11) that is not responding. Shouldn't this be the ip address of your TV instead?

To Reproduce
Steps to reproduce the behavior:
run the following command:
python pylips.py --host <ip address> --user <user code> --pass <pass code> --command powerstate

Expected behavior
JSON reflecting the result of the powerstate command

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.