69 lines
1.4 KiB
Plaintext
69 lines
1.4 KiB
Plaintext
|
#!/usr/bin/perl
|
||
|
#
|
||
|
# Copyright (C) 2008 Yuriy Sabov
|
||
|
# Version 0.1
|
||
|
#
|
||
|
# Plugin to fetch temperature from "IP Thermo 125" ethernet thermometer
|
||
|
# available at http://www.procontrol.hu/GyartasFejlesztes/Termekeink/IPThermoSimple/IPThermo125_eng.htm
|
||
|
# This version supports only one temperature sensor per server!
|
||
|
#
|
||
|
#
|
||
|
# Parameters supported:
|
||
|
#
|
||
|
# config
|
||
|
# autoconf
|
||
|
#
|
||
|
|
||
|
|
||
|
my ($hostname, $port, $line, $telnet);
|
||
|
|
||
|
# "C" = Celsius, "F" = Fahrenheit
|
||
|
my $unit = $ENV{unit} || "C";
|
||
|
|
||
|
$hostname = "10.10.10.10";
|
||
|
$port = 23;
|
||
|
|
||
|
use Net::Telnet ();
|
||
|
|
||
|
|
||
|
if ($ARGV[0] and $ARGV[0] eq "autoconf")
|
||
|
{
|
||
|
print "yes\n";
|
||
|
exit 0;
|
||
|
}
|
||
|
|
||
|
if (defined $ARGV[0] and $ARGV[0] eq "config")
|
||
|
{
|
||
|
print "graph_title IP Thermo 125\n";
|
||
|
print "graph_args --base 1000 -l 0\n";
|
||
|
print "graph_category sensors\n";
|
||
|
print "graph_info This graph shows temperature using IP Thermo 125 server.\n";
|
||
|
|
||
|
if ($unit =~ /F/)
|
||
|
{
|
||
|
print "graph_vlabel temp in °F\n";
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
print "graph_vlabel temp in °C\n";
|
||
|
}
|
||
|
print "temperature.label temperature\n";
|
||
|
|
||
|
exit 0
|
||
|
}
|
||
|
|
||
|
$telnet = new Net::Telnet (Telnetmode => 0);
|
||
|
|
||
|
# create telnet connection to temperature server
|
||
|
$telnet->open(Host => $hostname, Port => $port);
|
||
|
|
||
|
# read line from server.
|
||
|
$line = $telnet->getline;
|
||
|
|
||
|
# get measurement of first sensor from received data
|
||
|
$value1 = substr(substr($line, 0, 20), -4, 4);
|
||
|
print "temperature.value ";
|
||
|
print "$value1\n";
|
||
|
|
||
|
|