#! /usr/bin/perl -w use v5.10; use strict; use warnings; use Device::Plugwise; use Data::Dumper; use IO::File; # ABSTRACT: Example Perl script to control Plugwise devices # PODNAME: plugwise.pl if ( scalar @ARGV < 2 ) { die "Please pass device and command as parameters"; } my $device = $ARGV[0]; my $command = $ARGV[1]; print "Sending $command..."; my $plugwise = Device::Plugwise->new( device => $device ); my $msg; if ( $command eq 'listcircles' ) { my $status = $plugwise->status(); say "Known Circles on the network are:"; foreach ( keys %{ $status->{circles} } ) { say $_; } exit(0); } $plugwise->command( $command, $ARGV[2] ); # Ensure to process all reads PROCESS_READS: do { $msg = $plugwise->read(2); print "Response: " . Dumper($msg) if defined $msg; } while ( defined $msg ); __END__ =pod =head1 NAME plugwise.pl - Example Perl script to control Plugwise devices =head1 VERSION version 0.4.1 =head1 SYNOPSIS This script enables simple control of individual Circles as follows ./plugwise.pl Example: ./plugwise.pl /dev/ttyUSB0 on ABCDEF will switch circles with address ABCDEF on =head1 AUTHOR Lieven Hollevoet =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2012 by Lieven Hollevoet. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut