AndroidTV Binding [3.2.0;4.2.0)

I haven’t upgraded yet, but I think this makes sense. New users will start on OH4, and it’s another good reason for existing users to upgrade.

Hi are you still interested in error logs?

I have a Sony Bravia and didn’t get it working. I got always the error Message GoogleTV Error Message 95:
The PIN Login seems to work well, but thats all. :slight_smile:

Here are my trace, maybe this helps or someone can help me to get my Sony working with openhab.

2023-08-27 14:35:24.209 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'androidtv:googletv:64FF0ADE6FFE' changed from OFFLINE: GoogleTV: Initializing to OFFLINE: Protocols Starting
==> /logs/openhab.log <==
2023-08-27 14:35:24.215 [TRACE] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - Initializing SSL Context
2023-08-27 14:35:24.231 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - Opening GoogleTV SSL connection to 192.168.178.22:6466 NORMAL
2023-08-27 14:35:24.295 [DEBUG] [l.googletv.GoogleTVConnectionManager] - Assuming server certificate is valid
2023-08-27 14:35:24.297 [TRACE] [l.googletv.GoogleTVConnectionManager] - Subject DN: CN=atvremote/64:FF:0A:DE:6F:FE, DNQ=BRAVIA_VH1_EU/BRAVIA_VH1/BRAVIA VH1
2023-08-27 14:35:24.299 [TRACE] [l.googletv.GoogleTVConnectionManager] - Issuer DN: CN=atvremote/64:FF:0A:DE:6F:FE, DNQ=BRAVIA_VH1_EU/BRAVIA_VH1/BRAVIA VH1
2023-08-27 14:35:24.301 [TRACE] [l.googletv.GoogleTVConnectionManager] - Serial number: 1677007425919
2023-08-27 14:35:24.309 [DEBUG] [l.googletv.GoogleTVConnectionManager] - Returning empty certificate for getAcceptedIssuers
2023-08-27 14:35:24.351 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - Connection to 192.168.178.22:6466 NORMAL successful
2023-08-27 14:35:24.353 [TRACE] [nternal.AndroidTVTranslationProvider] - Translated: offline.initializing as Initializing
2023-08-27 14:35:24.355 [TRACE] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - Starting Reader Thread for 192.168.178.22:6466
2023-08-27 14:35:24.364 [TRACE] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - Starting Sender Thread for 192.168.178.22:6466
2023-08-27 14:35:24.366 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - Message reader thread started 6466
2023-08-27 14:35:24.367 [TRACE] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - Checking for PIN MODE for 192.168.178.22:6466 NORMAL
2023-08-27 14:35:24.367 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - Command sender thread started 6466
2023-08-27 14:35:24.369 [TRACE] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - Not PIN Mode 192.168.178.22:6466 NORMAL
2023-08-27 14:35:24.371 [TRACE] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - readerThreadJob message length 84
2023-08-27 14:35:24.373 [TRACE] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - GoogleTV Message: 84 540a5208ef04124d0a0a425241564941205648311204536f6e791801220231302a24636f6d2e676f6f676c652e616e64726f69642e74762e72656d6f74652e73657276696365320d352e322e343733323534313333
2023-08-27 14:35:24.374 [TRACE] [tocol.googletv.GoogleTVMessageParser] - 64FF0ADE6FFE - Received GoogleTV message - Length: 84 Message: 0a5208ef04124d0a0a425241564941205648311204536f6e791801220231302a24636f6d2e676f6f676c652e616e64726f69642e74762e72656d6f74652e73657276696365320d352e322e343733323534313333
2023-08-27 14:35:24.375 [DEBUG] [tocol.googletv.GoogleTVMessageParser] - 64FF0ADE6FFE - 0a5208ef04124d "BRAVIA VH1" "Sony" 10 com.google.android.tv.remote.service 5.2.473254133
2023-08-27 14:35:24.375 [TRACE] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - Raw GoogleTV command decodes as: 590a5708fe0412520a08534d2d4739393855120773616d73756e671801220231332a19636f6d2e676f6f676c652e616e64726f69642e766964656f73321c342e33392e3634342e3533343836353739392e332d72656c65617365
2023-08-27 14:35:24.395 [TRACE] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - readerThreadJob message length 95
2023-08-27 14:35:24.397 [TRACE] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - GoogleTV Message: 95 5f1a5d080312590a5708fe0412520a08534d2d4739393855120773616d73756e671801220231332a19636f6d2e676f6f676c652e616e64726f69642e766964656f73321c342e33392e3634342e3533343836353739392e332d72656c65617365
2023-08-27 14:35:24.399 [TRACE] [tocol.googletv.GoogleTVMessageParser] - 64FF0ADE6FFE - Received GoogleTV message - Length: 95 Message: 1a5d080312590a5708fe0412520a08534d2d4739393855120773616d73756e671801220231332a19636f6d2e676f6f676c652e616e64726f69642e766964656f73321c342e33392e3634342e3533343836353739392e332d72656c65617365
2023-08-27 14:35:24.400 [WARN ] [tocol.googletv.GoogleTVMessageParser] - 64FF0ADE6FFE - GoogleTV Error Message: 1a5d080312590a5708fe0412520a08534d2d4739393855120773616d73756e671801220231332a19636f6d2e676f6f676c652e616e64726f69642e766964656f73321c342e33392e3634342e3533343836353739392e332d72656c65617365
2023-08-27 14:35:24.401 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - Disconnecting GoogleTV
2023-08-27 14:35:24.403 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - Command sender thread exiting 6466
2023-08-27 14:35:24.405 [DEBUG] [l.googletv.GoogleTVConnectionManager] - 64FF0ADE6FFE - Message reader thread exiting 6466
2023-08-27 14:35:24.511 [DEBUG] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS discovery notified of GoogleTV mDNS service: \024bt=64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.512 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service qualifiedName: SONY KD-75XH9005._androidtvremote2._tcp.local.
2023-08-27 14:35:24.512 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service ipAddresses: [/192.168.178.22] (1)
2023-08-27 14:35:24.513 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service selected ipAddress: 192.168.178.22
2023-08-27 14:35:24.514 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service property macAddress: 64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.517 [DEBUG] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS discovery notified of GoogleTV mDNS service: \024bt=64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.518 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service qualifiedName: SONY KD-75XH9005._androidtvremote2._tcp.local.
2023-08-27 14:35:24.519 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service ipAddresses: [/192.168.178.22] (1)
2023-08-27 14:35:24.520 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service selected ipAddress: 192.168.178.22
2023-08-27 14:35:24.521 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service property macAddress: 64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.522 [DEBUG] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS discovery notified of GoogleTV mDNS service: \024bt=64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.525 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service qualifiedName: SONY KD-75XH9005._androidtvremote2._tcp.local.
2023-08-27 14:35:24.530 [DEBUG] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS discovery notified of GoogleTV mDNS service: \024bt=64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.531 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service qualifiedName: SONY KD-75XH9005._androidtvremote2._tcp.local.
2023-08-27 14:35:24.532 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service ipAddresses: [/192.168.178.22] (1)
2023-08-27 14:35:24.533 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service selected ipAddress: 192.168.178.22
2023-08-27 14:35:24.534 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service property macAddress: 64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.526 [DEBUG] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS discovery notified of GoogleTV mDNS service: \024bt=64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.537 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service qualifiedName: SONY KD-75XH9005._androidtvremote2._tcp.local.
2023-08-27 14:35:24.540 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service ipAddresses: [/192.168.178.22] (1)
2023-08-27 14:35:24.543 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service selected ipAddress: 192.168.178.22
2023-08-27 14:35:24.539 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service ipAddresses: [/192.168.178.22] (1)
2023-08-27 14:35:24.546 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service selected ipAddress: 192.168.178.22
2023-08-27 14:35:24.547 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service property macAddress: 64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.548 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service property macAddress: 64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.550 [DEBUG] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS discovery notified of GoogleTV mDNS service: \024bt=64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.551 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service qualifiedName: SONY KD-75XH9005._androidtvremote2._tcp.local.
2023-08-27 14:35:24.556 [DEBUG] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS discovery notified of GoogleTV mDNS service: \024bt=64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.559 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service ipAddresses: [/192.168.178.22] (1)
2023-08-27 14:35:24.537 [DEBUG] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS discovery notified of GoogleTV mDNS service: \024bt=64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.561 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service qualifiedName: SONY KD-75XH9005._androidtvremote2._tcp.local.
2023-08-27 14:35:24.562 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service ipAddresses: [/192.168.178.22] (1)
2023-08-27 14:35:24.563 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service selected ipAddress: 192.168.178.22
2023-08-27 14:35:24.564 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service property macAddress: 64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.560 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service qualifiedName: SONY KD-75XH9005._androidtvremote2._tcp.local.
2023-08-27 14:35:24.543 [DEBUG] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS discovery notified of GoogleTV mDNS service: \024bt=64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.568 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service qualifiedName: SONY KD-75XH9005._androidtvremote2._tcp.local.
2023-08-27 14:35:24.569 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service ipAddresses: [/192.168.178.22] (1)
2023-08-27 14:35:24.572 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service selected ipAddress: 192.168.178.22
2023-08-27 14:35:24.574 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service property macAddress: 64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.569 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service ipAddresses: [/192.168.178.22] (1)
2023-08-27 14:35:24.580 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service selected ipAddress: 192.168.178.22
2023-08-27 14:35:24.571 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service selected ipAddress: 192.168.178.22
2023-08-27 14:35:24.582 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service property macAddress: 64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.583 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service property macAddress: 64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.588 [DEBUG] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS discovery notified of GoogleTV mDNS service: \024bt=64:FF:0A:DE:6F:FE
2023-08-27 14:35:24.589 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service qualifiedName: SONY KD-75XH9005._androidtvremote2._tcp.local.
2023-08-27 14:35:24.591 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service ipAddresses: [/192.168.178.22] (1)
2023-08-27 14:35:24.593 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service selected ipAddress: 192.168.178.22
2023-08-27 14:35:24.594 [TRACE] [scovery.GoogleTVDiscoveryParticipant] - GoogleTV mDNS service property macAddress: 64:FF:0A:DE:6F:FE

Regards,
Tobias

@tobiloeb Does this jar fix it? It works-ish on 3.x (you’ll need to do a text based thing config).

https://github.com/morph166955/openhab-addons/releases/download/androidtv-beta/org.openhab.binding.androidtv-4.1.0-SNAPSHOT-fixlogin3.jar

There is a pending PR right now that resolves this issue and I’m working on a new marketplace drop which will include it as well as the PhilipsTV protocol.

I’m putting this out as an almost ready to go jar for anyone feeling adventurous.

This jar provides two things

I’ll be updating the main thread to include either this jar or one very close to it in a few days. This in theory should be compatible with 3.x. To note, there is a dependency on upnp now because of PhilipsTV. This is satisfied either by having another binding that uses upnp installed (e.g. sonos or upnpcontrol), or by adding the necessary jar files to addons.

Please let me know if you have any issues, or more hopefully successes!

https://github.com/morph166955/openhab-addons/releases/download/androidtv-beta/org.openhab.binding.androidtv-4.1.0-SNAPSHOT-d52ef14.jar

1 Like

Good afternoon @everyone!

I am VERY pleased to announce the addition of the PhilipsTV protocol to the AndroidTV binding. For those who haven’t been following the other thread, the binding was originally written in 2019 by bennYx0x. The original author (whom credit is duly given) is no longer able to support it directly and it was never merged into the code base. As the Philips TVs since ~2016 have been AndroidTV based it naturally fit inside of the AndroidTV binding. The code was adapted and added in a similar way to the ShieldTV.

Some things to note:

  • KeyPress now has a fall through mechanism to support both the main GoogleTV interface as well as the vendor specific interfaces. For example, you can still type KEY_UP, or you can use any of the commands here: https://jointspace.sourceforge.net/projectdata/documentation/jasonApi/1/doc/API-Method-input-key-POST.html on the Philips TV. The binding will first check against the GoogleTV command list, and if nothing matches it will pass the command along to the vendor protocol.
  • There is a condition observed when powering on the Philips TV using the Wake-on-LAN function where the TV may not power up after coming out of low power mode. In some cases it takes the TV as long as 20 seconds to wake up which is beyond the current timers. The fix to this is to simply send the power again when the thing comes back into an online state. This is a todo item that I hope to have fixed in the next few days.
  • This update also includes the fix for [androidtv] Fixes GoogleTV Login Error by morph166955 · Pull Request #15453 · openhab/openhab-addons · GitHub which has been plaguing some users.
  • The App channel is not yet normalized for PhilipsTV versus ShieldTV in respect to starting an app by name. On ShieldTV, this channel accepts the “com.google.android.youtube.tv” reference where the PhilipsTV accepts the “YouTube TV” reference. This is also an open todo item. Eventually, both bindings will accept the “com.xyz” on the App channel and “App Name” on the AppName channel.
  • There is a significant amount of code changes that have been made between this version and the current merged version. At present there is approximately 5700 lines of new code with changes to both GoogleTV and ShieldTV. Please report any issues so we can resolve them before this gets merged.
  • With the addition of PhilipsTV we now add a requirement for upnp. There have been instances where users have reported an exception because “org.openhab.core.config.discovery.upnp” is missing. There are two ways to resolve this. 1) Install another binding that uses upnp, this will install the proper dependences or 2) Install the jupnp.org and org.openhab.core.config.discovery.upnp jar files for your specific release. As this changes per OH release it’s not possible for me to build a kar that would work for everyone (from what I understand at least).

In respect to the hybrid 3.x/4.x jars, they seem to be working again for the moment after some trial and error. This is getting more and more complex as 4.x updates dependencies. As I’ve said before, my goal is to keep the hybrid jars until 4.1 is released and then sunset if that’s possible. Once that happens, I will likely transition the marketplace to only include new features that are not merged into the current snapshot and release one final 3.x jar that aligns with 4.1 release. If the hybrids break again, we may just be stuck

For those interested in tracking the PR, [androidtv][WIP] Add PhilipsTV protocol to AndroidTV by morph166955 · Pull Request #15352 · openhab/openhab-addons · GitHub is submitted in draft currently. I have a few more check list items to close out before pushing it for a review. My goal is for this to be merged in for the 4.1 release.

Finally, thank you to @michaeljoos for all of his testing over the past few weeks!

4 Likes

@morph166955 I am having an issue with OH 3.4.5 I no longer see the binding in the binding list nor as an available binding in the openhab distribution. Is there any issue with this version of OH? Do you have a copy of previous jar files I could simply add in the addons?
Thank you for your help and great work.

I haven’t changed anything on the main post. You can grab the jar from there too.

EDIT: There seems to be an issue with the marketplace itself.

My issue was caused by two problems: the firts the authorisation to the folders (I had to restore my OH 3.4.4 backup as OH 4.1.0 M1 is still having issues with the Sonoff binding) and the second the market place itself. Tried this morning upgrading the AndroidTv binding (I am on July 6 release) and although it seemed to have installed, the Shield was no longer working, so simply copied the old binding in the bundle folder and all went back to normal.

I had some issues with the versioning on some of my rule templates. I’m using [4.0.0.0;4.9.9.9] successfully now.

I don’t necessarily see anything wrong with what you have now but I didn’t see anything wrong with what I had either.

I haven’t changed that in a year now minus moving 4.0 to 4.1. There was a few issues posted about the marketplace having issues, not sure what the fix was.

Right, but now OH 4.1 snapshots and milestones are released. That version range will definitely exclude all the 4.1 versions I think (IIRC the ) is exclusive not inclusive). The snapshots and milestones are not treated as < 4.1.0.

Not sure to have understood your answer fully. Are you saying that 4.1.0 milestone will not make use of the binding in the same way 4.0.0 will?

This binding works exactly the same on all versions from 3.2 through 4.1. Marketplace is confirmed to be working on all versions of the marketplace through the most current snapshot of 4.1 as well.

For anyone who is tracking the PhilipsTV updates, I have submitted the PR for review in hopes that we get it merged in for the 4.1 release later this year.

1 Like

I finally set this up with 3 Nvidia Shields and I have a couple issues.

  1. After rebooting OH, the Google PIN process on 2 of the units is needed again and the Google Thing is OFFLINE. Even though it says it’s logged in after the reboot.
2023-12-04 07:28:35.282 [INFO ] [v.internal.protocol.googletv.GoogleTVMessageParser] - 7e6100df - Login Successful
2023-12-04 07:28:35.363 [INFO ] [v.internal.protocol.shieldtv.ShieldTVMessageParser] - 7e6100df - Login Successful to Shield_LivingRoom
2023-12-04 07:28:44.397 [INFO ] [v.internal.protocol.googletv.GoogleTVMessageParser] - 090a14fa - Login Successful
2023-12-04 07:28:44.704 [INFO ] [v.internal.protocol.shieldtv.ShieldTVMessageParser] - 090a14fa - Login Successful to Shield_Basement

Is this normal?

  1. My oldest Nvidia Shield doesn’t react to the Google PIN process. It’s running 9.1.1 version of the OS. I have confirmed Google TV is installed on this device via my phone seeing it.

I’m running this version of the binding → 4.1.0.202308281751

Best, Jay

I would need to see a debug log to see what’s happening. What version of OH are you on? Login showing successful is the trigger for the device to go online. What is the thing status saying?

As far as the old one, please make sure it’s updated. Are you getting any error messages? If you are getting one that says the following then you are running an old version of the googletv protocol.

2023-09-19 15:21:32.864 [INFO ] [tocol.googletv.GoogleTVMessageParser] - livingroom - Unknown payload received. 35 7b2270726f746f636f6c5f76657273696f6e223a312c22737461747573223a3430307d

I’m running OH 4.0.4

Is there a newer version of the binding I can grab vs. using the marketplace version?

Best, Jay

4.0 has the app merged. Does that version work?

Just to mention that some AndroidTV have 6467 actively blocked (like mine)
Its a Hitachi branded cheap QLED AndroidTV. GoogleTV is installed and running while pairing request but LAN scanner shows 6467 as blocked.
Anyway, the only purpose to connect to the TV was to get a status whether to turn on/off background light. I can do this with network availability, so no big thing for me.

Does the GTV app work with it?