If you are in need of a temperature sensor / thermometer that's USB based and plays well with Linux, there's a decent option for just $14 USD.

While not a new device, only recently I became interested in getting a USB temperature sensor that works well with Linux. I wanted to add support to the Phoronix Test Suite for providing ambient temperature readings of a room as an optional feature when engaging in also monitoring the CPU/GPU/system temperatures. Plus I am looking at making a module too for Phoromatic that could delay the Wake-On-LAN process of benchmark machines if the room temperature detected by the Phoromatic Server (using a USB thermometer) was over a given threshold. When looking for Linux-friendly USB thermal devices, the Temper devices are what have kept appearing and have been around for a few years.

There are various websites selling the Temper USB thermometer and the TEMPer v1.4 devices have been re-branded by many different companies. The unit I ended up buying was the Ebest New USB Thermometer and it cost just $14 USD from Amazon.com with free Prime shipping. On the Amazon product page it mentioned Windows, Linux, and Mac support.

This Ebest-branded USB thermometer arrived right on time thanks to Amazon. Not only was Linux mentioned on the Amazon product page, but there's also a penguin and Linux mentioned directly on the product packaging too. Sure enough, once plugging it into my main Fedora 23 development box and using one of the many TEMPer v1.4 utilities, the USB thermometer was working.

This Ebest USB Thermometer was indeed identified as a "RDing TEMPerV1.4" and "Microdia TEMPer Temperature Sensor" with an idVendor of 0c45 and idProduct of 7401.

There are a few Python projects around for interacting with the TEMPER devices or also the temperv14.c program. I ended up using the temperv14 program for my purposes. This C program works fine and took care of all my needs, but I did end up changing the usb_close() call in the code to usb_reset() otherwise the program only runs once before hitting USB read failures and needing to re-plug the device. If using usb_reset, no issues. I've already added a basic plugin to the Phoronix Test Suite where if having the device and temperv14 program, if running the Phoronix Test Suite and using MONITOR=ambient.temp as one of the arguments it will log and graph these temperature readings.

So far this Ebest USB thermometer has been working out fine for me under Linux. The device does appear to report its temperature 1~2C higher than what it is, perhaps due to heat from the device itself or being close to other heat-generating sources unless using a long USB extension cable, but at least it's a consistent offset. If you are looking for a USB thermometer, you can find the Ebest thermometer for $14 on Amazon.