Commit 28daf07d1ad727826ae360987a4436794953df4b
1 parent
2349fc1a
fixed scaling issue for Raspberry Pi CPU temperature
Showing
1 changed file
with
6 additions
and
4 deletions
plugins/check_temperature
1 | #! /usr/bin/env python | 1 | #! /usr/bin/env python |
2 | # | 2 | # |
3 | -# check_temperature - Nagios temperature check for DS18B20 sensor on RaspberryPi | 3 | +# check_temperature - Nagios temperature check for RaspberryPi-connected sensors |
4 | # | 4 | # |
5 | # Version 1.2, latest version, documentation and bugtracker available at: | 5 | # Version 1.2, latest version, documentation and bugtracker available at: |
6 | # https://gitlab.lindenaar.net/scripts/nagios-plugins | 6 | # https://gitlab.lindenaar.net/scripts/nagios-plugins |
@@ -32,11 +32,13 @@ PROG_NAME=splitext(basename(__file__))[0] | @@ -32,11 +32,13 @@ PROG_NAME=splitext(basename(__file__))[0] | ||
32 | PROG_VERSION=PROG_NAME + ' ' + VERSION | 32 | PROG_VERSION=PROG_NAME + ' ' + VERSION |
33 | 33 | ||
34 | CPU_SENSOR_DEV = '/sys/class/thermal/thermal_zone0/temp' | 34 | CPU_SENSOR_DEV = '/sys/class/thermal/thermal_zone0/temp' |
35 | +CPU_SENSOR_SCALE=1000 | ||
35 | I2C_MCP9808_CONFIG_ADDR=0x1 | 36 | I2C_MCP9808_CONFIG_ADDR=0x1 |
36 | I2C_MCP9808_CONFIG = [ 0x00, 0x00 ] # continuous conversion (power-up default) | 37 | I2C_MCP9808_CONFIG = [ 0x00, 0x00 ] # continuous conversion (power-up default) |
37 | I2C_MCP9808_PRECISION_ADDR=0x08 | 38 | I2C_MCP9808_PRECISION_ADDR=0x08 |
38 | I2C_MCP9808_PRECISION=3 # 0=0.5, 1=0.25, 2=0.125, 3=0.0625 degr. C | 39 | I2C_MCP9808_PRECISION=3 # 0=0.5, 1=0.25, 2=0.125, 3=0.0625 degr. C |
39 | I2C_MCP9808_TEMP_ADDR=0x05 | 40 | I2C_MCP9808_TEMP_ADDR=0x05 |
41 | +I2C_MCP9808_SENSOR_SCALE=16 | ||
40 | W1_SENSOR_DEV_DIR = '/sys/bus/w1/devices/' | 42 | W1_SENSOR_DEV_DIR = '/sys/bus/w1/devices/' |
41 | W1_SENSOR_DEV_PREFIX = '28-' | 43 | W1_SENSOR_DEV_PREFIX = '28-' |
42 | W1_SENSOR_DEV_SUFFIX = '/w1_slave' | 44 | W1_SENSOR_DEV_SUFFIX = '/w1_slave' |
@@ -116,9 +118,9 @@ def read_rpi_cpu_temp(args): | @@ -116,9 +118,9 @@ def read_rpi_cpu_temp(args): | ||
116 | logger.debug('Temperature sensor data read from %s: %s', f.name, lines) | 118 | logger.debug('Temperature sensor data read from %s: %s', f.name, lines) |
117 | 119 | ||
118 | temp_read = int(lines[0]) | 120 | temp_read = int(lines[0]) |
119 | - temp = args.converter[0](temp_read) | 121 | + temp = args.converter[0](temp_read, CPU_SENSOR_SCALE) |
120 | logger.debug('Temperature sensor value %d is %.2f%s', temp_read, | 122 | logger.debug('Temperature sensor value %d is %.2f%s', temp_read, |
121 | - temp, args.converter[1]) | 123 | + temp, args.converter[1]) |
122 | return temp, 1 | 124 | return temp, 1 |
123 | 125 | ||
124 | 126 | ||
@@ -157,7 +159,7 @@ def read_i2c_mcp9808_temp(args): | @@ -157,7 +159,7 @@ def read_i2c_mcp9808_temp(args): | ||
157 | if temp_read > 4095 : | 159 | if temp_read > 4095 : |
158 | temp_read -= 8192 | 160 | temp_read -= 8192 |
159 | 161 | ||
160 | - temp = args.converter[0](temp_read, 16) | 162 | + temp = args.converter[0](temp_read, I2C_MCP9808_SENSOR_SCALE) |
161 | logger.debug('Temperature sensor value %d is %.2f%s', | 163 | logger.debug('Temperature sensor value %d is %.2f%s', |
162 | temp_read, temp, args.converter[1]) | 164 | temp_read, temp, args.converter[1]) |
163 | return temp, 1 | 165 | return temp, 1 |