Part of my home automation project was to be able to control various components of my lounge AV set up. The main objective here was to be able to stop or pause whatever was playing when the doorbell rang, just for convenience. This could be taken to a much more complex scenario, such as detecting what’s being viewed, and if anyone’s actually at home, but that can be added later.
I managed to get speaking to a guy who had written some very simple scripts to be able to control a Sky+ HD box (there has since been support for SkyQ also).
If you’re good with terminal commands, you can get this up and running within minutes.
First you’ll need to install the script to your device (in my case this is a Raspberry Pi).
npm install -g sky-remote-cli
Once this has been installed, at this point I would recommend either setting a static IP for your Sky Box, or creating a DHCP reservation on your router (as you are required to supply the IP address of the Sky box for every command).
After supplying the IP address, you can then send a single command, or list of commands as you would by pressing buttons on the Sky remote. If several commands are sent, they will be sent in sequence.
As an example, to turn the Sky box on or off:
sky-remote-cli <ip-address> power
To pause what’s currently being viewed, and show the info screen:
sky-remote-cli <ip-address> pause i
To change channel to a specific channel number:
sky-remote-cli <ip-address> 1 0 1 select
Here’s a full list of available commands: