Home Automation with Perl and X10 Mike Schilli, Yahoo! 06/25/2007.
-
Upload
jovan-ferrett -
Category
Documents
-
view
213 -
download
0
Transcript of Home Automation with Perl and X10 Mike Schilli, Yahoo! 06/25/2007.
What’s X10?
• Sender sends signals over power lines
• Receiver switches electrical devices on/off
• Cheap Technology – Sender $10 – Receiver $10
What can you do with X10?
Examples include …
• Water your plants
• Reboot your cable modem
• Control any device via Gaim/Jabber
X10 CM11 Control Unit
• Serial plug connects to PC
• Power plug injects X10 signals into power line
• < $10 plus shipping on Ebay
• Don’t have a serial port? Buy a PCI card (ttyS4/5)
• Alternatively: CM17 (RF)
Protocol
• One four-bit house code (A-P)
• One or more four-bit unit code(s) (1-16)
• One four-bit command
• Example:“House Code K”, “Unit 9”, “Turn on”
Protocol
• 1110 Starting sequence
• Binary 1: Presence, Absence
• Binary 0: Absence, Presence
• Each signal sent twice
• Overall data transfer: 20 bits/sec
Setting up a serial port
• Init serial port:use Device::SerialPort;
my $serial = Device::SerialPort->new(
“/dev/ttyS0”, undef);
$serial->baudrate(4800);
• Send command:use ControlX10::CM11;
ControlX10::CM11::send($serial,
$house_code . $unit_code);
ControlX10::CM11::send($serial,
$house_code . “J”); # J=ON K=OFF
Receivers
• Lamp Module:– Triac Solid State– On/Off/Dimming– No Appliances or electronic devices
• Appliance Module:– Relay switches On/Off– Maintains last state during power outages
Example 2: X10 Console
• YUI components for ajaxed web console
• Reboot routers, print servers, DSL modem
Example 3: Water your Plants
• Aquarium Pump in Water container
• Switched on/off by X10
• Host checks weather report (Weather::Com) to determine amount of water
• Secured by external timer
X10::Home
use X10::Home;
my $x10->X10::Home->new();
# Address services by name
$x10->send("bedroom_lights", "on");
# Also remembers status
X10::Home
#x10.conf sample file
module: ControlX10::CM11device: "/dev/ttyS0“receivers: - name: office_lights code: K10 desc: Office Back Lights
- name: water code: K11 desc: Plant Sprinkler
Problems with X10
• No security on the X10 level
• No feedback with cheap units
• Signals get lost
• Power outages might affect outcome
• Two senders: Collisions
• Slow (1 sec/command)
Precautions
• Use Fail Safe strategies
• Limit potential damage
• Consider additional autonomous devices like digital timers
References
• X10 YUI Console http://www.linux-magazin.de/heft_abo/ausgaben/2007/04/heimschaltwarte
• http://www.linux-magazine.com/issue/50/Perl_Building_a_Jabber_Bot.pdf
• ftp://ftp.x10.com/pub/manuals• http://misterhouse.net• Moshe Bar, “Home Automation with Perl”, TPJ,
02/2003