Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / plugins / sensors / ip_thermo_125 @ ef960abc

Historique | Voir | Annoter | Télécharger (1,38 ko)

1 361ac8c0 Yuriy Sabov
#!/usr/bin/perl
2
#
3
# Copyright (C) 2008 Yuriy Sabov
4
# Version 0.1 
5
#
6
# Plugin to fetch temperature from "IP Thermo 125" ethernet thermometer
7
# available at http://www.procontrol.hu/GyartasFejlesztes/Termekeink/IPThermoSimple/IPThermo125_eng.htm
8
# This version supports only one temperature sensor per server!
9
#
10
#
11
# Parameters supported:
12
#
13
#       config
14
#       autoconf
15
#
16
17
18
my ($hostname, $port, $line, $telnet);
19
20
# "C" = Celsius, "F" = Fahrenheit
21
my $unit  = $ENV{unit}    || "C";     
22
23
$hostname = "10.10.10.10";
24
$port = 23;
25
26
use Net::Telnet ();
27
28
29
if ($ARGV[0] and $ARGV[0] eq "autoconf")
30
{
31
  print "yes\n";
32
  exit 0;
33
}
34
35
if (defined $ARGV[0] and $ARGV[0] eq "config")
36
{
37
  print "graph_title IP Thermo 125\n";
38
  print "graph_args --base 1000 -l 0\n";
39
  print "graph_category sensors\n";
40
  print "graph_info This graph shows temperature using IP Thermo 125 server.\n";
41
	
42
  if ($unit =~ /F/)
43
  {
44
    print "graph_vlabel temp in °F\n";
45
  }
46
  else
47
  {
48
    print "graph_vlabel temp in °C\n";
49
  }
50
    print "temperature.label temperature\n";
51
		         
52
  exit 0
53
}
54
55
$telnet = new Net::Telnet (Telnetmode => 0);
56
57
# create telnet connection to temperature server
58
$telnet->open(Host => $hostname, Port => $port);
59
60
# read line from server.
61
$line = $telnet->getline;
62
63
# get measurement of first sensor from received data
64
$value1 = substr(substr($line, 0, 20), -4, 4);
65
print "temperature.value ";
66
print "$value1\n";
67