Author Topic: MisterHouse is an open source home automation program written in PERL.  (Read 2202 times)

0 Members and 1 Guest are viewing this topic.

Software Santa

  • Administrator
  • *****
  • Posts: 4262
MisterHouse is an open source home automation program written in PERL. Unsupported Binaries Compiled for older Windows Systems.

MisterHouse -- It Knows Kung-Fu

MisterHouse is an open source home automation program. It's designed for environmental control modules. 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. It currently runs on Windows 95/98/NT/2k/XP and on most Unix based platforms, including Linux and Mac OSX.

Perl subroutines and objects are used to give a powerful programming interface. Here is some example code:

   $fountain = new X10_Item 'B1';
   set $fountain ON if time_now '6:00 PM';

   $movement_sensor = new Serial_Item 'XA2', 'stair';
   play(file => 'stairs_creek*.wav') if state_now $movement_sensor eq 'stair';

   $v_bedroom_curtain = new Voice_Cmd '[open,close] the bedroom curtains';
   curtain('bedroom', $state) if $state = said $v_bedroom_curtain;

Here is some example speech output:

    * Turning furnace heat off after 20 minutes at 69.1 degrees
    * Notice, the sun is bright at 32 percent, and it is cold outside at 24 degrees, so I am opening the curtains at 8:07 AM
    * The van is traveling north at 58 mph 0.8 miles west of Walmart.
    * The car is parked at Friedell School.
    * Email account nick has 1 new email message from accountmanager.
    * Notice, Nick has been on the computer for 2.1 hours today.
    * The front door has been left open.
    * Phone call from Mal and Beth Winter from Montana.
    * Notice, there is 1 favorite show starting now: Dilbert on channel 8.
    * 8:58 PM. VCR recording will be started in 2 minutes for Southpark on channel 47.
    * Notice, there were 668 web hits from 74 clients in the last day.

What OSes can it run on?

It has been tested on Windows 95, 98, NT 4.0, and 2K. On Unix, it has been run on Linux, AIX, and Sun.

In theory, any OS that runs perl should be able to run mh. In practice, some platforms will likely have strange Serial Interfaces (e.g. Mac?), so the Serial IO related function would take some work.

Some MisterHouse features

Check here for a list of hardware in Bruce's house.

    * 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. 
    * 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, Alpha BetaBrite LED 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. 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. You can also drive menus with an SSH client, like this phone example
    * 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.
    * Control of RoboSapien, ESRA, and ER1 robots. Some pictures and videos are in
    * Uses the rrd program to generate weather graphs.
    * Support for xAP and xPL home automation protocols.
« Last Edit: March 23, 2014, 03:37:57 PM by Software Santa »


Welcome Visitor: