#!/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";