Skip to main content

Messenger HomeHub

I'm in the process of planning my home automation and media centre setup for my new house and one of the problems I thought about on the train to work this morning was how to pervade my single MSN Messenger presence throughout my digital home.
  • Media Centre in living room
  • Media Centre in bedroom
  • Media Centre in kitchen
  • Laptop/TabletPC roaming wirelessly
Why so many media centre installations? Well I could just use media extenders but I also want internet, office and IM capability where ever I am in the house.

The problem
I have multiple locations within my house to receive IM traffic but a single IM account on peoples contact list.

The solution
Create new Messenger accounts for each location (living room, bedroom, kitchen etc) and then write an application to act as a conversation "hub" - automatically forwarding the conversation to each individual location (possibly using presence information such as the status to help decide). Messenger HomeHub is born....

As a bonus this allows me to piggy back work I've done previously with dotMSN and on other automated messenger "bot" systems. I also decided that this has a lot more potential than just directing Messenger conversations. Imagine your house has an automated Messenger system "hub" to direct requests for information; An application architecture such as the one I used in my NAntService allows for any number of extensions into other systems such as home automation, security, calendar/scheduling....kinda like a "Digital Jeeves". I particularly like the calendar/scheduling one and it's a pretty simple one to implement too by hooking into Outlook.

Messenger HomeHub Application
As I write this post I've yet to write a line of code - my goal will be for v0.1 to allow the basic conversation forwarding from one address to a set of addresses using an "auto-conference" feature. I'll be using Microsoft .NET 2005 and the dotMSN library wrapped in a Windows Service to ensure it is always logged in and ready to accept conversations. Of the top of my head I think a plugin architecture utilising an "Observer" pattern would produce a suitable application.

I'll keep you posted as to progress - I'd like to get v0.1 up and running as a proof of concept ASAP. If you are interested in this idea then drop me a line/comment and it would be cool to discuss any improvements/ideas you have.

As a final point I would like to predict big big things for digital home hubs this year but I think that there is a lot of work to do to make them fit seamlessly into peoples lives and home and the messenger location/presence problem above is a good example. I also think that Tablet PC's or rather portable touch screen displays (MS Smart displays?!) will be big...Rather then get a laptop to roam round the house I'm going to get a Tablet PC to allow me to write notes and draw pictures, this is a much more natural way to communicate I think.


Owen Cutajar said…
Good luck mate! It's not a trivial task, and while it may be technically possible to receive a message and relay it to a pertinent endpoint, I think the biggest difficulty you face is determining which location the message should be sent to. This could be compounded by the fact that the intended target may be moving from one room to another.

One solution may be to have an "agent" side to the solution; whereby if a message is received but not acknowledged, the message window will be closed and a request placed on the hub to re-target the message. Interesting problem though and as you say; bought to be an area of interest in the future.
Owen Cutajar said…
Erm .. last line should read "bound to be an area of interest in the future" ...
James Simmonds said…
Hey Owen - thanks for the feedback and I think the "agent" idea is great. I was going to simply spam out the conversation to the internal messenger accounts from the hub account, the danger is flooding an unattended PC with hundreds of dead conversation windows...maybe a cleanup service to close these windows....oi, its getting complicated!

Popular posts from this blog

Walk-Thru: Using Wolfpack to automatically deploy and smoke test your system

First, some history... The advent of NuGet has revolutionised many many aspects of the .Net ecosystem; MyGet, Chocolatey & OctopusDeploy to name a few solutions building upon its success bring even more features to the table.

I also spotted that NuGet could solve a problem I was having with my OSS System Monitoring software Wolfpack; essentially this is a core application framework that uses plugins for extension (Wolfpack Contrib) but how to unify, standardise and streamline how these plugins are made available? NuGet to the rescue again - I wrapped the NuGet infrastructure (I deem NuGet to be so ubiquitous and stable that is has transcended into the software "infrastrucuture" hall of fame) with a new OSS project called Sidewinder. Sidewinder allows me to wrap all my little extension and plugins in NuGet packages and deploy them directly from the Wolfpack application - it even allows me to issue a new version of Wolfpack and have Wolfpack update itself, sweet huh?


Geckoboard Countdown Widget v2

v2 is here, now with added colours! This time using the RAG Numbers widget to display your date countdown - as you get nearer the date the number will change from green to amber then red.

The new url is:!
Note 1: notice the new /rag/ path and the msg querystring param.
Note 2: the original v1 url still works

To use this on your Geckoboard add a new "Custom Widget/RAG Numbers" widget. By default the number will turn amber at 10 or less days to go and red at 3 or less days to go however you can change these with the querystring (see below).

Required querystring params
date: "yyyy-mm-dd" format, this is the target date to countdown totz: timezone offset in hours from GMT that you are in. Can be negative if you are behind GMT
Optional querystring params
msg: the label that appears next to the number of days (remember to encode spaces as +). The default is "Days Remaining" if you…

Resharper add-in idea - highlight IDisposable vars

[Update 18th July 2013]
@RobGibbens and Greg Hurlman picked up on this - Rob pointed out that there is an FxCop rule that can do this and Greg suggested a Visual Studio extension. I've had a quick look at the Visual Studio options and it looks like an "Editor Extension" is a good fit....hmmm, Project New, click...doh...dammit I really don't have time for this but it looks a fun little diversion! I'll update here if I get anything working.

[Original Post]
Had an interesting idea for a Visual Studio Resharper add-in the other day but don't have the time to implement it so thought I would put it out might already exist (and hopefully someone can point me in the right direction) or someone will build it (Darren Voisey where are you?!).

The idea is very simple really - when you have a variable for an object that implements IDisposable it gets highlighted or a tell-tale is displayed to let you know it should be disposed or should be wrapped in a using sta…