01 #!/usr/bin/perl 02 ########################################### 03 # lamp -- Switch lamp on and off via x10 04 # Mike Schilli, 2004 (m@perlmeister.com) 05 ########################################### 06 use warnings; 07 use strict; 08 09 use Device::SerialPort; 10 use ControlX10::CM11; 11 12 my $UNIT_CODE = "F"; 13 my $HOUSE_CODE = "1"; 14 15 my %cmds = ( 16 "on" => "J", 17 "off" => "K", 18 ); 19 20 die "usage: $0 [on|off]" if @ARGV != 1 21 or $ARGV[0] !~ /^(on|off)$/; 22 23 my $onoff = $1; 24 25 die "You must be root" if $> != 0; 26 27 my $serial = Device::SerialPort->new( 28 '/dev/ttyS0', undef); 29 $serial->baudrate(4800); 30 31 # Adress unit 32 ControlX10::CM11::send($serial, 33 $UNIT_CODE . $HOUSE_CODE); 34 35 # Send command 36 ControlX10::CM11::send($serial, 37 $UNIT_CODE . $cmds{$onoff});