Listing 1. Refrigerator Temperature Controlling Script #!/usr/bin/perl my $temp_min = 67; my $temp_max = 69; use 5.010; use strict; use warnings; use Carp; use Device::USB; use Device::USB::PCSensor::HidTEMPer::Device; use Device::USB::PCSensor::HidTEMPer::NTC; use Device::USB::PCSensor::HidTEMPer::TEMPer; use lib; use Device::USB::PCSensor::HidTEMPer; my $pcsensor = Device::USB::PCSensor::HidTEMPer->new(); my @devices = $pcsensor->list_devices(); my $logfile = '/var/log/temper.log'; my $time = localtime(); my $temperature; foreach my $device ( @devices ){ $temperature = $device->internal()->fahrenheit(); } die unless $temperature; open LOG, ">> $logfile" or die "Can't open $logfile: $!\n"; # B4 = Fridge power, B5 = Heater power # turn on heater if I'm 1F below the low temp if($temperature < ($temp_min - 1)){ system('/usr/local/bin/br --port /dev/ttyUSB0 B5 ON'); system('/usr/local/bin/br --port /dev/ttyUSB0 B4 OFF'); print LOG "$time\t$temperature\tHON\n"; } elsif($temperature < $temp_min){ system('/usr/local/bin/br --port /dev/ttyUSB0 B4 OFF'); system('/usr/local/bin/br --port /dev/ttyUSB0 B5 OFF'); print LOG "$time\t$temperature\tOFF\n"; } elsif($temperature > $temp_max){ system('/usr/local/bin/br --port /dev/ttyUSB0 B4 ON'); system('/usr/local/bin/br --port /dev/ttyUSB0 B5 OFF'); print LOG "$time\t$temperature\tCON\n"; } else{ print LOG "$time\t$temperature\t\n"; } close LOG;