Projects and software by Matt Collinge @ www.mattcollinge.co.uk

Archive for the ‘HTPC’ Category

Controlling Power Sockets using a Raspberry Pi

leave a comment »

The subwoofer we had in our home cinema setup died a few weeks ago, so I did my research and found a nice replacement. The only thing I didn’t spot was the fact it never goes into standby if there’s no signal (unlike the old one). I tried using some eco plugs which turn off peripherals when the TV was turned off.. but it learns the TV remote signals, and completely turns the TV off as well.. meaning that you have to hit the power button twice to turn the TV back on; that doesn’t work well with the Harmony all-in-one remote we use.

What I decided to do was buy an Energenie socket, which can be switched on/off wirelessly from a Raspberry Pi. The kit comes with 2 sockets and a transmitter to attach to the GPIO headers on the Pi, and costs about £20.

In my subwoofer scenario I basically want it switched on when the TV is on, and off when the TV is off. The TV has a Chromecast plugged into it which is visible on my local network. If you’ve got a Smart TV on your network, maybe that’ll be visible in the same way. So when the TV/Chromecast appear on the network, we know to switch on the power socket.


Here’s the small Energenie transmitter attached to the GPIO headers on my B+.. it’s pretty tiny and the case I’ve got still fits over the top. Notice the small hole where you can attach an aerial.. if you want extra range, then you’ll need to solder one on.. I added a 135mm wire, since the range I got out of it just wasn’t enough to get from the dining room cupboard to the living room.


To put this together, we can use the Raspberry Pi Network Spy code I wrote in my previous blog posts on element14;

Raspberry Pi Network Spy – Part 1 – Initial Setup + d/b Schema
Raspberry Pi Network Spy – Part 2 – D/b Setup + PHP for the scanner

All we need is a new PHP page that’ll call one of the functions we’ve already written.. we need a list of the MAC addresses that are currently visible on the network, then check whether the Chromecast is there. Once we know whether the TV/Chromecast is on or off, we then call a Python script that will turn the Energenie socket on/off.

Here’s the PHP;


The Python script could follow the Energenie example script, but there’s actually an even more simple Python package which I’ve used in this project. To install it I did the following;

sudo apt-get install python-pip
sudo pip install energenie

Then I wrote this helper Python script (which we’ll call from PHP) that accepts a couple of parameters, like this callenergenie.py [on|off] [switch_number];


from energenie import switch_on, switch_off
import sys

if len(sys.argv)==1:
print ‘Please specify arguments like this callenergenie.py [on|off] [switch_number]’
print ‘eg. callenergenie.py on 1’
print ‘eg. callenergenie.py off 2′
on_or_off = sys.argv[1]
which_switch = int(sys.argv[2])

if (on_or_off==’on’):
print ‘Switching on ‘, which_switch

if (on_or_off==’off’):
print ‘Switching off ‘, which_switch

Now that we’ve written the PHP & Python, all we need to do is run the PHP every minute to scan the network and do the switching. We’ll do this using another cron job;

crontab -e

*/1 * * * * sudo /usr/bin/php /var/www/arp-chromecast.php

Written by Matt

March 14, 2015 at 8:39 pm

Streaming video from the Humax HDR-Fox T2 to Android and Blackberry Playbook

leave a comment »

One of the nice features of the Humax HDR-Fox T2 is that it’ll stream your standard definition recordings over your network to DLNA clients. I’ve had a it streaming video onto a PC running XBMC, but wanted something more portable for catching up with some TV whilst I’m getting ready in the morning.

As long as your Android phone is relatively recent, there are a bunch of DLNA clients.. the one I’ve had the best results with is Skifta. Then I’ve got MX Player installed which will handle video playback. The thing I like about MX Player is the gesture control for skipping through the program (swipe across), and adjusting volume (swipe up/down).

I’m running that on a Samsung Galaxy S3, and it works really well. It’s just slightly too small when it’s across the room. It would be better on a tablet, and I have a Blackberry Playbook (from their developer programme).. the only problem has been the lack of a DLNA client.. until just recently, when I found KalemSoft Media Player.

The app is currently being sold at £5, which was a bit more than I’m used to paying.. but the reviews were almost all really good, so I gave it a go. Here’s the app running with my Humax HDR-Fox T2;

As you can see, it’s really fast to browse the folders and start playing back video. It even manages HD if you’re running the auto-decode package, although I had buffering issues when trying to play it back over my network.

KalemSoft do a PC service which will share all your video from there too; I’ve found it works really well.. better than TVersity, and the built-in Windows media sharing stuff, both of which seemed to take ages to index my stuff, and then didn’t even work well after that. Apparently it can be configured to share stuff out over the Internet (password protected too), but I don’t need that feature. It can also stream live TV if you’ve got a TV card.

Written by Matt

January 26, 2013 at 1:33 pm

NZB-to-Server Automation

with one comment

The HTPC I’m using is also my download box. It started to get really tedious to VNC onto it & surf for NZB files, and manage things that way. Now I do it all from my laptop and use a relatively simple batch script to get the NZB files onto the server.

Here’s what’s involved;

Automatic Save Folder – Firefox Add-On

This useful Firefox add-on is used to save the NZB files to a specific folder without even prompting me where to put it. Saves a few clicks and having to re-select the same folder all the time.

Batch Script

One I’m done with the NZB files I then use this simple batch script to map a network drive to the server & move them into a specific folder. This script is then pinned into my Windows 7 Programs folder so that it’s simple to run with a few keystrokes.


c:\progra~1\7-zip\7z x "C:\Users\blah\Documents\_altbinz\nzbs\*.zip" -o"C:\Users\blah\Documents\_altbinz\nzbs"


del "C:\Users\blah\Documents\_altbinz\nzbs\*.zip"
del "C:\Users\blah\Documents\_altbinz\nzbs\*.nfo"


NET USE T: \\\htpc /Persistent:No


move "C:\Users\blah\Documents\_altbinz\nzbs\*.nzb" "t:\usenet\nzbs-import\"




Alt.Binz Auto-Import Feature

The alt.binz client allows you to automatically import NZB files from a speified folder. It does this automatically & can delete the NZBs after it’s done. This is perfect for what I’m attempting to do here.

Written by Matt

March 25, 2011 at 7:30 am

Posted in HTPC, Technical

Tagged with , , ,

Harmony 600 Replacement

leave a comment »

Due to a clash with a toddler and my Harmony 555 all-in-one remote I bought a Harmony 600 in September last year. In the last month it’s been repeatedly rebooting/restarting. A new set of batteries sorts the issue out, but only for a couple of weeks, and then it starts happening again. There’s a thread on Logitech’s support site which talks about the problem, so it’s not an isolated issue.

The good thing is, that after raising a support ticket on Sunday, it only took a couple of message exchanges before they said it was faulty & shipped a new remote. They don’t even ask for the old one back, since they can de-activate it on their servers so that it can never be updated online.. pretty much rendering it useless, because there’s no way to update it without using their online app.

Kudos to Logitech for sorting this out so quickly! Really impressive.

Written by Matt

March 23, 2011 at 7:05 am

Building a Zotac ION-based HTPC

leave a comment »

I’ve been looking to replace my ageing Xbox which has reliably run XBMC for over 7 years with a box that can handle HD content, as well as acting as a NAS & download server. The Zotac ION box caught my eye, since the latest media center apps now support hardware acceleration for video playback & the nVidia ION GPU is supported.


I bought the kit as a bundle from Mini-ITX.com and fitted a 32Gb SSD for the operating system, and a 1TB Western Digital Essentials HDD which would be attached via USB & powers down when not in use. The shopping list looks like this;

– Zotac ION-ITX-A Motherboard with Dual Core 1.6GHz Atom N330
– 2GB or 4GB DDR2 800 RAM included
– M350 Universal Mini-ITX Enclosure
(bundle costing £233 from Mini-ITX)

– OCZ Onyx 32GB SATA II 2.5in Solid State Disk
(about £50 from Amazon)

– 1TB Western Digital Essentials
(about £45 from Amazon)


For the OS I wanted to use Windows 7; that’s what I’m most comfortable writing scripts + code for. The Linux distros for XBMC Live look pretty good, but there was too much of a learning curve involved for adding in the extra features I wanted.

Installing OS From USB

Since there’s no optical drive, I opted to install Windows 7 from a USB key. I actually used a 4Gb SD card from my camera & a SD card reader, and followed these instructions to make it bootable & have the Windows 7 installation on it. Installation went without a hitch.

Media Player

After installing the OS, I updated with the latest nVidia drivers, and started installing apps like XBMC. The latest Dharma release of XBMC supports hardware acceleration using DXVA2, however I was unable to get it working with 1080p content & gave up after a couple of hours. I then tried Media Portal which worked perfectly with whatever I threw at it. There’s a brilliant guide on how to configure Windows 7 and MediaPortal by Rhys Jones, which is useful to follow if you want to optimise your HTPC setup.

Remote Control

Next up was getting the remote control working correctly. I had a cheapo CyberLink remote, plus a Harmony 600.. I used the Cyberlink IR Reciever & mapped up keys into the Harmony 600. Some of the buttons worked, some didn’t. I ended up re-mapping the numeric keys to certain MediaPortal features using one of the plugins. I also re-mapped the MCE Green Button so that it runs MediaPortal (see this guide.. scroll to the Green Button heading).


The HTPC also acts as a NAS + handles any downloads, so I’ve written a bunch of scripts to handle certain situtations.

– Timed execution of certain download tasks using Windows Scheduler. Making sure that the tasks don’t bring the HTPC out of sleep.
– Execution of scripts when the HTPC is brought out of sleep (like making sure MediaPortal is running)

Keyboard + Mouse Control

For times when I need a keyboard, I’m running Unified Remote on the HTPC and the client on my Android phone. This allows me to control most aspects of the HTPC via my phone, without having to buy extra hardware like a wireless mouse/keyboard.

Written by Matt

December 22, 2010 at 6:31 am


Get every new post delivered to your Inbox.