[mythtv-users] Methods for waking a STB from standby w/IR only

Erik Sejr esejr at wildroseinternet.ca
Sat May 18 01:20:36 UTC 2013


Ever since I moved to Ottawa I've been fighting a battle with Rogers'
crappy STB, specifically a Cisco (SA) Explorer 8642. This thing turns
its self off after 7 or 8 hours of inactivity (I don't know the exact
number) but even worse, Rogers does frequent late night firmware updates
which always cause the device to reboot and come up powered off.

The result, black recordings with no means of getting feedback about the
state of the STB as firewire does not work and there is no discrete
power ON IR command, only a toggle.

For a while I tried a modified version of ingenious script on the wiki
which dd's a few seconds from the recorder, splits it into frames with
ffmpeg, converts those to "ascii" then checks to see if they are
"black". Unfortunately, while I was able to modify this script to work
with the HD-PVR it seems that the act of using dd to copy data right out
of /dev/video0 somehow causes the hd-pvr and/or the driver to become
unstable. The only fix I found was to rmmod the driver, reboot the
hdpvr, and then reload reload the driver.

I gave up on the above method and tried to use the event bindings in
mythtv instead - turn the power on when the "recording pending" event
fires, let myth run the channel change script then turn it off when the
"recording finished" event fires. This has actually been working quite
well and has the added bonus of not leaving the STB on all the time and
potentially saving a few watts.

The remaining problem then is with LiveTV. When MythTV starts a regular
recording the events seem to occur in this order:

1. Recording Pending (STB comes on)
2. Change Channel
3. Recording End (STB goes off)

But with Live TV, if you change the channel from one to another the
events occur in a different order:

1. Recording End (STB goes off, was turned on when LiveTV first started)
2. Change Channel
3. Recording Pending (STB comes on)

The result of this is that the backend tries to change the channel with
the STB off. It would be nice if 2 and 3 were reversed for this purpose
but I don't know if the devs would consider doing this. It would make it
more consistent with the order of the events for recording:

1. Recording Pending
2. Change Channel
3. Recording Started

As a way around this I was thinking that I could make the channel change
script a little smarter if only I knew if MythTV was currently in the
LiveTV mode. Does anyone know if there is any way to get that
information via Python or Perl bindings? Or anything else really?

I was thinking that I could do a wget of
http://127.0.0.1:6544/Status/GetStatusHTML and parse the output, but i'm
unsure if it will return something about "LiveTV" after the recorder has
stopped while trying to change channels. I was really hoping someone
here might have a "cleaner" solution.

Thanks!


More information about the mythtv-users mailing list