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.

Media Center:

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.



SageTV:

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.

LCD Writer

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. 

SageTV Client


Server:

Version
1.2.1.6 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.

DTB Settings