by on Dec.18, 2007, under Linux

Misterhouse is an open source home automation program.  It’s fun, it’s free, and it’s entirely geeky.  Written in Perl, it fires events based on time, web, socket, voice, and serial data.  Perl subroutines and objects are used to give a powerful programming interface.  Features include:

  • Executes actions based on voice input, time of day, file data, serial port data, and socket data. Serial and speech data can also be read or written to proxies on remote boxes.
  • It has a web interface to allow control and feedback from any browser, either on a local intranet or on the internet. Check the Winter’s house at
  • On Windows systems, it uses OLE calls to the free MS VR and TTS engines for voice recognition and text->speech. The high quality AT&T NaturalVoices TTS engine may also be used. If using IE, you can enable remote VR and TTS using an MS Agent.
  • On Unix systems, it uses the free Festival, flite, IBM ViaVoice and non-free AT&T NaturalVoices TTS speech engines for text->speech and on Linux IBM’s ViaVoice engine for voice recognition. These engines can also be called from Windows version of mh.
  • Reads/writes any data from any serial attached device.
  • Speaks the speed, course, and position of vehicles, by interfacing to a ham radio modem.
  • (TNC). Brian Klier wrote has a nice article about it. You can see our car position logs here.

  • Sends/receives X10 data from the X10 CM11 (ActiveHome) interface.
  • Sends wireless X10 data using the X10 CM17 (Firecracker) interface.
  • Send/receive data to the Ibutton family of devices, including the weather station.
  • Reads/writes data from the JDS interfaces (Stargate, Time Commandar, HomeBase) interface.
  • Reads/writes data from the HomeVision interfaces.
  • Reads/writes serial port data from the Weeder Technologies PIC kits that can process X10, digital, analog, callerID, and outgoing phone data.
  • Reads/writes to Applied Digital’s CPU-XA and Ocelot interfaces via the cpuxad socket deamon.
  • Reads data from IRman infrared receiver serial interface and writes to X10 IR Commander wireless interface.
  • Code has been written for DSC Alarm pannels, Stargate LCD displays, Slinke IR send/receive, Marrick X10, RCI X10 sprinklers, Xantech preamps, ISDN modems, voice modems, ComPool and Aqualink pool equipment.
  • Reads and writes from the lcdproc server which interfaces to inexpensive LCD modules and keypads.
  • Shares a modem for caller ID and paging.
  • Reads/writes internet mail, http, and ftp files unattended.
  • Sends/receive instant messages using AIM, MSN, or Jabber.
  • Reads MS Outlook, Unix ical, or the built in Organizer calendar for event reminders and VCR programing.
  • Uses free internet TV web pages to allow for VCR programing and show reminders.
  • Has an entertaining ‘chatbox’ web page that will listen to all your problems.
  • Can monitor NetGear RT311 / RT314 or LinkSys syslog router traffic, so you can track stuff like incoming web hits and online game time.
  • Uses Voice XML to interface to To try it, dial 1-800-555-Tell, then after you ear ‘tellme more’, enter 1-46630 (1-HOME0). With a XML browser (e.g. IE), you can see a test vxml menu here.
  • Use simple menu templates to generate menus for LCD, VXML, or WAP phones. If you have a WAP phone or WAP browser, you can see this test menu with this url: You can also walk the menus with an html browser with a frames version or a a simpler version . These menus can also be controled with a single switch (e.g. air sip switch for the disabled), using audible feedback to select items/states.
  • Logs weather data to the wunderground personal weather project. Here’s weather logs from my house
  • Here is a list of some users written code files along with standard code files that demonstrate some other MisterHouse features.
  • You can use RSS readers to track various data, like phone or speak logs.

See the online documentation for more information.


The latest release using debconf to configure basic fucntionality:

The last stable release that did not use debconf:

Changes from Original Source

  • Separate code/libraries/binaries to the appropriate places (see README.Debian).
  • Created wrapper scripts, init files, etc.
  • Created man pages.
  • Created a default configuration that is compatible with Debian/FHS.
  • Added debconf templates for common code activation and some basic functionality.
:, ,
3 comments for this entry:
  1. Toby

    Hello – I’m trying to get mh running on a brand new 64-bit install of Jaunty. I was excited to find your package, but for me, it’s erring out at the end of the process, saying:

    Setting up misterhouse (2.104-2) …
    Applying initial configuration settings…
    /var/lib/dpkg/info/misterhouse.postinst: 107: let: not found
    dpkg: error processing misterhouse (–install):
    subprocess post-installation script returned error exit status 127
    Processing triggers for man-db …
    Errors were encountered while processing:

    Is there any hope for me?

  2. Russ

    Looks like I have a bash-ism in the postinst script. I’ll have to fix that, but you can get around it by editing /var/lib/dpkg/info/misterhouse.postinst and changing the first line from “#!/bin/sh” to “#!/bin/bash”.

  3. Russ

    Broken links fixed. Sorry about that. I need to refresh these packages at some point. I do still use this old thing.

Leave a Reply


Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact me.

Sites that interest me

A few highly recommended friends...