#!/usr/bin/perl
###########################################
# lamp -- Switch lamp on and off via x10
# Mike Schilli, 2004 (m@perlmeister.com)
###########################################
use warnings;
use strict;

use Device::SerialPort;
use ControlX10::CM11;

my $UNIT_CODE  = "F";
my $HOUSE_CODE = "1";

my %cmds = (
    "on"  => "J",
    "off" => "K",
);

die "usage: $0 [on|off]" if @ARGV != 1 
   or $ARGV[0] !~ /^(on|off)$/;

my $onoff = $1;

die "You must be root" if $> != 0;

my $serial = Device::SerialPort->new(
    '/dev/ttyS0', undef);
$serial->baudrate(4800);

    # Adress unit
ControlX10::CM11::send($serial, 
    $UNIT_CODE . $HOUSE_CODE);

    # Send command
ControlX10::CM11::send($serial, 
    $UNIT_CODE . $cmds{$onoff});
