Keeping your HTPC Awake
Yesterday when we discussed how to make your HTPC use S3 standby I pointed out that my preference is use fairly aggressive idle timers on my client and server PCs, the downside to this approach is that it can cause some undesirable side effects. Today's topic is how to workaround some interesting design shortcommings in two popular applications to keep the PCs awake when you want.
One of the more frustrating moments in my Vista Media Center experience was the first time the PC when to standby 5 seconds after a show finished playing. As it turns out one of the features (and yes I was able to confirm that this behavior is "by design") is that VMC does not reset the display/system idle timers during playback. So if for example you watch a 60 minute show without interacting with the PC (and why would you if DTB is doing it's job) and the system is configured to standby after 30 minutes of inactivity the machine almost immediately turns the display off and goes into standby.
To workaround this issue, er feature, the DVRMSToolbox (DTB) addin has a configurable setting to reset the display idle timer during playback. Open up the DTB settings tool, then check "Keep Display On" on the "MC Addin" tab and you're all set.
The approach to keeping PC's with SageTV isn't as elegant as the MC one because when I started using Sage I wasn't familiar enough with how to extend the application from within, so this problem was addressed in LcdWriter as it was adapted to work with Sage. For those who don't have a HD44780 compatible display don't worry, a "NullWriter" is included so anyone can use it to keep the display active. One thing to note is that when using LcdWriter with Sage it is dependant on neilm's GetStatus pluggin so it must be installed on the client as well.
Walking through the setup for those without a real display. Select the NullWriter on the writer tab of the LcdWriter settings tool.
And check "Keep Display Active" on the "Sage" tab. Note that the "Watched Exe" will need to be changed to "SageTV.exe" or "SageTVClient.exe" depending on how you're running Sage.
Version 220.127.116.11 of DTB added a feature in the FileWatcher (FW) application to watch for a local process to launch and send requests to the instance of the FW on the server machine asking it to reset the idle timers.
The client FW has different capabilities depending on how it is run. When run as a WinForm (standard exe), it can not only base the messages back to the server on the process being open and the PC not being in away mode (available in Vista+), but also if the display is currently on. Personally I think this is the best option as it lets the server start its idle countdown when the the display turns off on the client (or the watched process closes). Unfortunately, it's not possible to detect if the display is on from a service, so if the FW is run in service mode only the process being active or away mode settings will work.
In the DTB settings tool go to the "Remote" tab and enter the name of your server PC in "Remote Host", the name of the process to watch for, and select the messaging behavior.