Skip to content
A python based remote control for Sky+HD boxes updated to Picasso
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
README.md
skyRemote.py

README.md

SkyRemote

A python based remote control for Sky+HD boxes updated to Picasso.

Based on Craig Heffner's Miranda, which is currently on Google Code http://code.google.com/p/miranda-upnp/ and licensed under GPLv3.

How does it work?

Since Sky's Picasso update for Sky+HD boxes earlier this year, the Sky+HD box (DRX890 and DRX895, at present) boxes expose a DNLA server which, until the recent iPad application, was for an unknown reason.

This DNLA server exposes 5 control endpoints that can be used to control the Sky+ box over IP.

Miranda is a UPnP browser that lets you browse a UPnP client, and while the Sky+HD box requires a few specific changes to work with it, it pretty much does the job of browsing available methods, and lets you send things to it.

SkyRemote makes this a bit easier, by completely automating the detection of a Sky+HD box and loading the relative xml files to provide the data, and giving a simple "control" command which allows you to perform any of the "SkyPlay" control endpoint methods.

To run the script, you'll need python installed. You already have this if you're on a mac, and probably on linux too. Then you can run:

python skyRemote.py

These available "control" commands are currently:

  • GetMediaInfo_Ext
  • X_NDS_SetUserPIN Send the user's PIN (Used to unlock pre-watershed channels and recorded programming)
  • Play Equivalent of "Play" button (prompts for play speed, can be used to fast forward)
  • Pause Equivalent of "Pause" button
  • GetPositionInfo
  • GetMediaInfo
  • GetTransportInfo
  • Stop Equivalent of "Stop" button
  • GetDeviceCapabilities
  • Next
  • X_NDS_GetCACondition
  • SetAVTransportURI
  • GetTransportSettings
  • Seek
  • GetCurrentTransportActions
  • Previous

Please excuse any undocumented functions, I'm still figuring all this out. You'll be prompted for any required arguments.

So, for example, if you wanted to send a "Pause" command, you can just run:

control pause

Advanced

If you understnad these things, you can view the full, complete list of endpoints which are exposed by this using the command:

host details 0

You can then send a raw command with:

host send 0 SkyControl [SkyPlay|SkyRC2|SkyCM2] <command>

More information on the Sky DNLA Remote service is on my blog, at http://www.gladdy.co.uk/blog

Help

Check the FAQ on the Wiki

You can’t perform that action at this time.