The TEMPer is an affordable (starting at under $20) USB digital thermometer that accurately senses temperatures from -55 to +125 degrees Celsius / -67 to +257 degrees Fahrenheit. This is an ideal addition to the server room to generate alerts should temperatures fall outside a safe threshold.

TEMPer devices work on all NEMS Linux hardware platforms. It will also work on the NEMS Linux virtual appliance, however you must connect the hardware to the virtual machine, which is beyond the scope of this documentation (please refer to the documentation for your hypervisor).

check_temper supports Critical and Warning states for both low (cold) and high (hot) temperatures.

For optimum accuracy, it is recommended to plug your TEMPer device into a short USB extension cord so the thermal data isn't impacted by the heat pulled from the USB port of your NEMS Server.

Setting up check_temper

Simply add check_temper_temp or check_temper_hum as a service to your NEMS host, having connected the TEMPer device to your NEMS Server's USB port. You may specify your temperature thresholds in either degrees Celsius or Fahrenheit. NEMS will automatically determine which you are using.

Sample check commands are already included in NEMS Linux 1.5.2+ in the demo config. If you're deploying a new NEMS Server, simply plug in your TEMPer device and these checks will automatically detect it and begin registering data.

Buy TEMPer Thermal Sensor

Supported Devices

Support is provided via temper.

NEMS Linux 1.5.x supports TEMPer temperature data. NEMS Linux 1.6+ also includes support for humidity sensors.

Product Id Firmware Temperature Humidity Sensor Location Notes
TEMPer 0c45:7401 TEMPerF1.4 Internal Metal
TEMPer 413d:2107 TEMPerGold_V3.1 Internal Metal
TEMPerHUM 413d:2107 TEMPerX_V3.1 Internal White plastic
TEMPer2 413d:2107 TEMPerX_V3.3 Internal or External White plastic
TEMPer1F 413d:2107 TEMPerX_V3.3 External White plastic
TEMPerX232 1a86:5523 TEMPerX232_V2.0 Internal or External White plastic

Terminal Output

To receive the JSON output, type nems-info temper

TEMPer devices seem to have an issue on low-powered systems (such as Raspberry Pi) where due to the low power to the USB port, temper.py will respond with errors such as:

  1. Cannot read firmware identifier from device
  2. Unknown firmware ld_V3.1 TEMPerGold_V3.1: b'80800f874e200000'

To remedy this, nems-info silently loops through the output multiple times until a good thermal reading is obtained. The errors are hidden and only the clean JSON output is generated. This all happens very quickly and transparently, resulting in good output every time, with no errors.

Adding to your NEMS NConf

TEMPer check commands are already pre-configured in the NEMS Linux 1.5.2+ demo data. If you have removed them, or are using an older version of NEMS Linux, you can add the checks yourself.

check_temper_temp (temperature check) and check_temper_hum (humidity check) allow you to add TEMPer devices to your NEMS Server. The check has 4 thresholds: Critical Low, Warning Low, Warning High, Critical High. The number you enter may be in either degrees Celsius or Fahrenheit in the case of check_temp_temp. The system will automatically detect which you are using. The OK temperature will be any temperature that falls between Warning Low and Warning High. This way, you can receive alerts from your NEMS Server should the room temperature be either too cold or too hot. For check_temp_hum, the thresholds are in percent (just enter the number, not the percent sign).

Configuring NEMS Linux 1.5

If you are running NEMS Linux 1.5.1 or higher, you do not need to do this.

TEMPer support was added to NEMS Linux 1.5 as a patch. If the NEMS Server was initialized before the rollout, some user customization is required. If you are initializing a new server, you likely will not need to take these steps. They are here only for those who initialized their NEMS Server before the patch was released.

  1. Edit the check_temper checkcommand
  2. Change params description to: Critical Low Temp,Warning Low Temp,Warning High Temp,Critical High Temp
  3. Change amount of params to: 4
  4. Submit
  5. Add check_temper as normal.

Humidity Sensor Support

Sample command line for humidity sensor:

/usr/lib/nagios/plugins/check_temper 20 35 65 80 hum

Check Commands

As of NEMS Linux 1.5.2, both the temperature and humidity sensors are supported, and check commands are included in NEMS NConf.

  • check_temper_temp
  • check_temper_hum


As of NEMS Linux 1.6, both the thermal sensor and humidity sensor can be calibrated within NEMS SST to ensure the highest level of accuracy.

  • hardware/temper.txt
  • Last modified: 2020/06/01 20:33
  • by Robbie Ferguson