1. The Purpose (Mission)
- Build full featured Media Center
- Achieve high WAF (Wife Acceptance Factor) through ease of use
- Integrate other home appliances into this system, as part of Smart Home concept (whatever that may be...)
2. Components
- Small form-factor PC case and mainboard by Shuttle
- MediaPortal software running on top of Windows 7
- Everything is controlled by a single Logitech Harmony 700 remote
3. Progress Report
3.1. Hardware
- Shuttle Mini-PC XH61V
- DVB-T Tuner card
- Logitech Harmony 700 remote
3.2. Remote Control
Initially, I used MCE remote receiver that came with my Hauppauge tuner card. It mostly worked, but I wasn't entirely happy with it. Mainly, I wanted more control over button behavior, repeat timings and separate ON and OFF buttons. So, I built my own IR receiver!
The receiver is based on Arduino Micro emulating USB keyboard. This is possible because Micro's controller has a USB module built into the chip, making it possible to run USB HID stack. In order to implement USB SLEEP and WAKEUP functionality, I used code from this pull request: https://github.com/arduino/Arduino/pull/1488 by MikeT. Here is his discussion thread. However, the source code in these files is based on quite old version of Arduino. Therefore, after extensive cutting, pasting and merging, I came up with a version that worked with my Arduino 1.5.6-r2.
Here are the modified USB files: modified_1488_for_1.5.6.zip
Next step was to figure out which remote button is to assign to what USB code in order to generate what Media Portal action. All of this is documented in this spreadsheet: MP_Keymap.xslx
Finally, Arduino sketch that ties it all together: Remote.ino
I found a nice way to hide Arduino Micro board under flip panel of my Shuttle PC, with IR sensor sticking out inconspicuously at the bottom:
3.3. Viewer for my Energy Monitor
The goal was to have access to the dashboards of my Home Energy Monitoring System while sitting on the couch in front of the TV. Here's how I did it:
- Install BrowseTheWeb plugin into MediaPortal
- The current version of this plugin (1.5.0.1) does not support entering IP address in the URL. So, I created a local domain name for my RaspberryPi IP address by modifying hosts file in C:\Windows\System32\drivers\etc\
- My EmonCMS is running under HTTPS, using a self-signed certificate. This created an error in XULRunner engine, that the plugin is based on. To get around this, I followed steps outlined here: http://forum.devolutions.net/topic1006-allow-embed-firefox-to-access-ssl-winvalid-certs.aspx#post5355 and here: https://developer.mozilla.org/en-US/docs/Cert_override.txt
Comments
Not ideal, I know. Eventually, I am thinking of perhaps writing a plug in for that.
What do you think?
RSS feed for comments to this post