Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
JPersson77 authored Jan 19, 2023
1 parent c320fc0 commit 9ab3c36
Showing 1 changed file with 26 additions and 20 deletions.
46 changes: 26 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
This application (UI and service) controls LG WebOS TVs and displays.

This application aim to be a set and forget application to:
- provide automatic management for your WebOS display, to shut off and turn on in reponse to to the PC shutting down, rebooting, entering low power modes and when user is afk (idle) as well as in response to changes in the windows monitor topology, in a multi-monitor environment.
- provide automatic management for your WebOS device (TV), to shut off and turn on in reponse to to the PC shutting down, rebooting, entering low power modes and when user is afk (idle) as well as in response to changes in the windows monitor topology, in a multi-monitor environment.
- provide the user with a command line tool to turn displays on or off.

## 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 display 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.
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

Expand All @@ -23,50 +23,55 @@ With the rise in popularity of using OLED TVs as PC monitors, it is apparent tha
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 and C2 it's All Settings->General->Devices->External Devices->TV On With Mobile->Turn on via Wi-Fi.
- HOT TIP! While in the settings of the TV, ensure that the display automatic power off is set long enough to not interfere with youur 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 app will manage the power state of the display and the less interference the better.
- Open the administrative interface of your router, and set a static DHCP lease for your WebOS devices, i.e. to ensure that the displays always have the same IP-address 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 youur 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.
- 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.
2. Download the latest version of the setup package from the releases page ( [Click here](https://github.com/JPersson77/LGTVCompanion/releases) ) 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).
3. Open the user interface from the Windows start menu, LGTV Companion.
3. Open the user interface from the Windows start menu, it is called "LGTV Companion".

![LGTV1](https://user-images.githubusercontent.com/77928210/149317271-cb162f6d-148c-4808-8e7a-ef22cd187371.png)
![l_main](https://user-images.githubusercontent.com/77928210/213521847-31f66061-629f-4808-a20c-1bb7bbf441ca.jpg)

4. 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)
5. Optionally, click the drop down button to manually add, remove, configure the parameters of respective devices, 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 try the other options. Click the 'What's this?' link in the app to read more.
4. 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.
5. 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 try the other options.

![LGTV2](https://user-images.githubusercontent.com/77928210/149317470-e4f417ef-6186-4f41-9a46-331e1399ca64.png)
HOT TIP! Clicking the 'What's this?' links will show you more information about all options throughout the UI.

![l_dev](https://user-images.githubusercontent.com/77928210/213522732-ee6c737c-c12e-4f32-b638-863e875151e2.jpg)

6. 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.
7. Optionally, tweak additional settings, by clicking on the hamburger icon. Note that enabling logging can be very useful if you are facing any issues. Also, consider enabling the option to "automatically blank displays..."as this option works seprately from all other windows power options and can be really useful to provide maximum protection against screen burn-in and also some power savings.
7. Optionally, tweak the additional settings, 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 power savings.

![LGTV3](https://user-images.githubusercontent.com/77928210/149317572-fb2a459f-0d01-49cd-998d-8fa6d141f3f2.png)
![l_opt](https://user-images.githubusercontent.com/77928210/213523626-e54dc98e-9ea2-4f3c-ac55-fe2ad7c1088e.jpg)

>if your OS is not localised in english, you must in the 'additional settings' 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.
>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.
8. Click Apply, to save the configuration file and automatically restart the service.

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

**All systems are now GO!** :+1:

10. Please go ahead and use the drop down menu again and select 'Test', to ensure that the displays properly react to power on/off commands.
10. 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.

## Limitations
- LG OLED displays can sometimes not be turned on via network when an automatic pixel refresh is being performed. You can hear an internal relay click after the pixel refresh, when the display is actually powered down, at which point it can be turned on again at any time by this application.
- The WebOS displays can only be turned on/off when both the PC and the display is connected to a network.
- LG OLED displays can sometimes not be turned on via network when an automatic pixel refresh is being performed. You can on some models hear an internal relay click after the pixel refresh, when the display is actually powered down, at which point it can be turned on again at any time by this application.
- The WebOS device can only be turned on/off when the PC and the device are both connected to a network.
- The TV cannnot be on a different subnet/VLAN from your PC. This is because the TV is powerd on by means of broadcasting a magic packet, aka Wake-on-lan, which is restricted to layer 2, i.e. same subnet only. There are ways to bypass this limitation but it is outside the scope of this application, even though you can probably make it work. Let me know if you need help to make it work for you.

## Troubleshooting
If your display has trouble powering on, these are the things to check first:
- When connecting the TV via Wi-Fi it seems some users must enable "Quickstart+" (up to 2021 models) or "Always ready" (2022 and forward models) and disable "HDD Eco mode" to avoid the NIC becoming inactive. (physical network cable does not seem to need this)
- Try reconfiguring the device and use one of the other wake-on-lan network options, primarily use option two, send to IP-address.
- Confirm that the device is properly configured (i e IP and MAC) and try to use one of the other wake-on-lan network options, primarily use option two, send to IP-address.
- Ensure the network is not dropping WOL-broadcasts.
- The MAC-address configuration for the device in the application is erroneous.
- In the case of Wi-Fi, if the connection between the TV and the Wi-Fi access point is lost for any reason (e.g. router reboot, power outage, firmware update, etc.) while the TV is off, the TV will not automatically reconnect and therefore won't react to attempts to turn it on via Wi-Fi. You will need to turn the TV on manually at least once so that it can reconnect to your Wi-Fi network.
- In case of issues with devices not turning on in response to changes in the windows monitor topology configuration ensure that "Quickstart+" (up to 2021 models) or "Always ready" (2022 and forward models) is enabled.
- Also note that a manual power off via remote and/or automatic display power off (Settings->General->OLED Care->Device Self-Care->Energy Saving->Auto Power off) can sometimes cause a situation where you also need to power on the display with the remote. Consider not using the remote, and setting a long enough timeout for the display built-in automatic power-off to never interfere with the length of your typical session with the PC.
- In case of issues with devices not turning on in response to changes in the windows monitor topology configuration ensure that "Always ready" (2022 and forward models) is enabled.
- Also note that a manual power off via remote and/or automatic display power off (Settings->General->OLED Care->Device Self-Care->Energy Saving->Auto Power off) can sometimes cause a situation where you also need to power on the display with the remote.

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:
- The IP configuration might be erroneous. Please check the configuration and make sure the TV has a static DHCP lease in your routers admin pages.
- The IP configuration might be erroneous. Verify the configuration and make sure the TV has a static DHCP lease in your routers admin pages.
- The application has not yet received a pairing key. Try removing the device in the UI, click apply and then re-add the device to force re-pairing.

HOT tip! Enable the built in logger and check the output, it can be very useful for understanding where problems are.
Expand Down Expand Up @@ -115,6 +120,7 @@ Please use the Github issue tracker for potential bug reports and/or feature req
- Boost libs - Boost and Beast https://www.boost.org/
- @Maassoft for initial helpi with understanding the WebOS comms - https://github.com/Maassoft
- @mohabouje - Mohammed Boujemaoui - Author of WinToast https://github.com/mohabouje/WinToast
- OpenSSL - https://www.openssl.org/
- Contributors
- Donors and supporters

Expand Down

0 comments on commit 9ab3c36

Please sign in to comment.