JPersson77 / LGTVCompanion

Power On and Off WebOS LG TVs together with your PC
MIT License
923 stars 39 forks source link
cplusplus eventlog lg namedpipe networking service vcpkg webos websocket windows10 windows11 windowsservice winsocket

LGTV Companion

Download and install instructions

The installer for the latest version can be downloaded from the Releases page.

Please note that Windows Defender SmartScreen may block the download. There is no way for developers to directly influence which apps will show up on SmartScreen. If the installer will not download you must therefore instruct your web browser to download it regardless and if the installer does not run you must unblock the installer. Unblocking is done by right clicking the downloaded installer, clicking on properties, under general and at the bottom security section check the "Unblock" checkbox. You can help prevent this in the future by reporting this application as safe to Microsoft when downloading the installer.

Alternatively you can use Winget via Windows Terminal/PowerShell: winget install LGTVCompanion

Overview

This application (UI and service) controls LG WebOS TVs and displays.

This application aim to be a set and forget application to provide:

Background

With the rise in popularity of using OLED TVs as PC monitors, it is apparent that standard functionality of PC-monitors is missing. Particularly turning the device on or off in response to power events in windows. With OLED monitors this is particularly important to prevent "burn-in", or more accurately pixel-wear.

What other people say

Installation and usage

  1. Important prerequisites:
    • Power ON all TVs and ensure they are connected to your local area network via Wi-Fi or cable.
    • Ensure that the TV can be woken via the network. For the CX line of displays this is accomplished by navigating to Settings (cog button on remote)->All Settings->Connection->Mobile Connection Management->TV On with Mobile, and then enable 'Turn On via Wi-Fi'. For C1, C2 and C3 it's All Settings->General->Devices->External Devices->TV On With Mobile->Turn on via Wi-Fi. NOTE! This step is needed regardless of using WiFi or a cable.
    • Open the administrative interface of your router, and set a static DHCP lease for your WebOS devices, i.e. to ensure that your devices always have the same IP-addresses on your LAN.

HOT TIP! While in the settings of the TV, ensure that the device automatic power off is set long enough to not interfere with your sessions with the PC, f e 8 hours. Note that for the C2 displays this setting can be found here: All settings->General->OLED Care->Device Self-Care->Energy Saving->Auto Power off. The LGTV Companion app will manage the power state of the display and the less interference the better.

  1. Download the latest version of the setup package from the releases page ( Click here ) and install it. This will install and start the service (LGTVsvc.exe), install the user interface (LGTV Companion.exe) as well as the desktop user mode daemon (LGTVdaemon.exe).
  2. Open the user interface from the Windows start menu, it is called "LGTV Companion".

l_main

  1. Click the 'Scan' button to let the application try and automatically find network attached WebOs devices (TVs) (This button is called 'Configure' in the screenshot above). If the 'Scan' feature does not work properly you will be able to add your devices manually.
  2. Optionally, click the drop down button to manually add, remove, configure devices and the parameters of the respective device, this includes the network IP-address, the physical address, i.e. the MAC(s). This information can easily be found in the network settings of the TV. Also, the default wake-on-lan network options should work for most configurations, but if your TV has difficulties powering on then try the other options.

HOT TIP! Clicking the 'What's this?' links will show you more information about all options throughout the UI.

l_dev

  1. In the main application window, ensure the 'Manage this device' checkbox is checked so the application will automatically respond to power events (shutdown, restart, suspend, resume, idle) for the respective devices.
  2. Optionally, tweak the global options, by clicking on the hamburger icon button (options).

HOT TIP! The "User Idle Mode" works seprately from all other windows power options and can be really useful to provide maximum protection against screen burn-in and also some additional power savings.

l_opt

if your OS is not localised in english, you must in the 'additional options' dialog click the correct checkboxes to indicate what words refer to the system restarting/rebooting (as opposed to shutting down). This is needed because there is no better (at least known to me) way for a service to know if the system is being restarted or shut down than looking at a certain event in the event log. But the event log is localised, and this approach saves me from having to build a language table for all languages in the world. Note that if you don't do this on a non-english OS the application will not be able to determine if the system is being restarted or shut down. The difference is of course that the displays should not power off when the system is restarted.

  1. Click Apply, to save the configuration file and automatically restart the service.

  2. At this point your respective WebOS TV will display a pairing dialog which you need to accept.

All systems are now GO! :+1:

  1. Please go ahead and use the drop down menu again and select 'Test', to ensure that the devices properly react to power on/off commands.

  2. You can now close the main UI. The service will continue running in the background.

Limitations

Troubleshooting

If your display has trouble powering on, these are the things to check first:

HOT TIP! Aim to configure the app to cover your use case and let the remote be, and also set a long enough timeout for the device built-in automatic power-off to never interfere with the length of your typical session with the PC.

If your display has trouble powering off it is most likely because:

If User Idle Mode is not working as expected with some controllers/joysticks it might be because of a long-standing microsoft issue that has now been resolved with KB5022845

HOT tip! Enable the built in logger and check the output, it can be very useful for understanding where problems are.

System requirements

Commandline arguments

'LGTV companion.exe" can accept hundreds of command line arguments for controlling the application and managed devices. Please see the documentation for all command line arguments here: Command line documentation

License

Copyright © 2021-2024 Jörgen Persson

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Discussions

Discord: https://discord.gg/7KkTPrP3fq

Please use the Github issue tracker for potential bug reports and/or feature requests

Thanks to

Donations

This is free software, but your support is appreciated and there is a donation page set up over at PayPal. PayPal allows you to use a credit- or debit card or your PayPal balance to make a donation.

paypal

Copyright

Copyright © 2021-2024 Jörgen Persson