MisterHouse : Setting up “modes”

MisterHouse is a fantastic home automation software with an impressive out-of-the-box feature set, and it only gets better if you know a bit of Perl.

You can conveniently set “modes”, which are settings with states you can define and use. You can then fire events upon state change, and so are they very useful to define some sort of macros.

A few examples :

  • the “Security” mode could be “on” or “off” : setting it “on” would close the shutters and activate the alarm system; setting it “off” would do the opposite;
  • the “Heating” mode could be “day”, “night”, “frost protection only” : setting it on “day” would set the target temperature to 20⁰C, “night” to 15⁰C and “frost protection only” to 7⁰C
  • the “Cinema” mode could be “on” or “off” : setting it to “on” would close the blinds and dim the lights; “off” would bring those back to their former states.

This post will show how to setup a mode, we’ll use the “Heating” mode described above as an example.

Continue reading MisterHouse : Setting up “modes”

Perl : Using the Finance::Quote module to get your stock prices

Finance::Quote is a Perl module which can be used to obtain stock information from various internet sources. I thought I’d rather share this code snippet as an example showing how easy it is to use, before I turn it into a bloatware with an SQL backend to compute average price per share and what not 🙂

So here is a simple snippet demonstrating how to get the price of a stock :
Continue reading Perl : Using the Finance::Quote module to get your stock prices

Perl : Convert time from Epoch to local time


This little Perl one-liner can get handy when you need to translate “time in seconds since the Epoch” (for example in logs) to local time :
% perl -e 'print scalar(localtime(1202484725)), "\n";'
Fri Feb 8 16:32:05 2008

This was pretty useful today when browsing through Nagios event logs, where times are given in seconds from the Epoch.

By the way, the Epoch is defined as 00:00 UTC on January, 1st, 1970.

Perl : A module to play with a GSM mobile

As you might have read in my previous post about accessing your cell phone with the AT-commands under Linux.

If not, you might want to start there for a little context.

I finally wrote and released on CPAN a Perl module which will help to automate cell phone operations such as saving/restoring the phonebook or sending an SMS.

Examples are included in the documentation. I believe I made it easy to use, but let me know if I’m wrong 😀 .

Features will be added on demand (if possible of course 🙂 ).

The module is Device::Modem::GSM.

Linux + GSM : How to access your cell phone innards with Linux

This article explores your options to access your GSM cell phone from a linux system, and manipulate SMS and phonebook entries.

Doesn’t provide hints about how to unlock a GSM cell phone though 😉

Continue reading Linux + GSM : How to access your cell phone innards with Linux

Perl : Optimizing pattern searches with Regexp::Assemble

When you perform a pattern matching with multiple “or” (|) clauses, such as /pattern1|pattern2|pattern3/, Perl regexp engine will try to match each of them one after the other in sequence, resulting in poor performance if you have a long list of “or” clauses.

In order to optimize such a pattern matching, you can use the Regexp::Assemble module.

Continue reading Perl : Optimizing pattern searches with Regexp::Assemble