quicklycosmic
New Member
CentOS 5.2, ELK-M1G
Sources
Code:
cd /opt
wget http://voxel.dl.sourceforge.net/sourceforge/elkm1control/ElkM1-Control-0.02.tar.gz
tar xzvf ElkM1-Control-0.02.tar.gz
cd ElkM1-Control-0.02
less README
perl Makefile.PL
make
make test
make install
cpan
> install Net::SSLeay
> install IO::Socket::SSL
quit
Code:
#!/usr/bin/perl
use ElkM1::Control;
my $elkhost = '192.168.1.5';
my $elkport = '2601'; #2101
my $elkssl = 1; #0
my $elkdebug = 0;
my $units = "F";
my @zonelist = ('one','two','three','four');
my $elk = ElkM1::Control->new('host' => $elkhost, 'port' => $elkport, 'use_ssl' => $elkssl, 'debug' => $elkdebug);
my $msg;
while(1) {
$msg = $elk->readMessage();
if(!defined($msg)) {
sleep .5;
} else {
switch(ref($msg)) {
case 'ElkM1::Control::Message::ZoneChangeUpdateReport' {
$zonenumber = $msg->getZone;
$zoneloc = $zonelist[$zonenumber+1];
$zonestate = $msg->getState;
print $zoneloc." zone (".$zonenumber.") is now ".$zonestate."\n";
}
case 'ElkM1::Control::Message::TemperatureReply' {
$groupname = $msg->getGroupName;
$groupnumber = $msg->getGroup;
$groupdevice = $msg->getDevice;
$temperature = $msg->getTemperature;
print $groupname." ".$groupnumber." ".$groupdevice.": ".$temperature.$units."\n";
}
else {
print "Message not known. ".$msg->toString." ".ref($msg)."\n";
}
}
}
}
@zonelist;
$elk->disconnect;
Sources
- http://www.cocoontech.com/index.php?showtopic=8920
- http://search.cpan.org/dist/IO-Socket-SSL/SSL.pm
- http://www.charmedquark.com/vb_forum/showthread.php?t=6516
- http://forum.homesecuritystore.com/index.php?topic=7014.msg34304
- http://www.linuxha.com/ElkM1/index.html