Incorrect negative temperatures


#1

What could be the reason when ruuvi shows quite weird negative temperatures especially in raw mode?

Example: in url-mode temperature is -3.0. Switch to raw mode and temperature is -131.51.

Also wondering why ruuvi shows only -3.0 or -4.0 when other thermometers at the same spot show something like -7 or -8. I opened the case but it didn’t make any difference in 30 minutes. Ruuvi has been outside for weeks, so it has cooled enough. I tried this with other ruuvi as well and the same thing. When temperature drops under 0, raw value goes under -100. I need to add 128 to the value? But it is still couple of degrees off.

When compared to other thermometers, positive values seem to be within one degree.


#2

Hello,

Which firmware and software version you’re using?


#3

This could be wrong assumption, but either way it may help someone having similar problem:
It sounds like you are using a firmware that uses data format 3, and you try to parse the temperature as a signed Two’s complement when in reality the Data formats 2, 3 and 4 treat the number slightly differently with a “separate” sign bit. The data format 5 will treat the temperature as a two’s complement to be more clear. :slight_smile:


#4

Ruuvi Firmware (weather-station 1.0.1) and ttu’s library https://github.com/ttu/ruuvitag-sensor on Raspberry pi 3.

Just noticed a problem in my wireless thermometer. Without going into too much details I would say that wireless thermometer started to show too low values. After reset they show same values (within an error of margin). So in url mode ruuvi shows correct negative values (Eddystone url and ttu’s library show the same value and also two digital thermometers).

I guess the problem with raw might be that Python library. I had 0.8.0 and when I checked changelog, I noticed 0.8.1: Fix Data Format 3 temperature decode for negative values. Upgraded to the latest (0.9.0) but still the same.

Using print_to_screen.py from https://github.com/ttu/ruuvitag-sensor/tree/master/examples
url mode:
Sensor - C1:0D:5F:DB:46:1D
Temperature: -4.0 C
Humidity: 68.0
Pressure: 1010.0

raw mode:
Sensor - C1:0D:5F:DB:46:1D
Temperature: -132.64 C
Humidity: 69.0
Pressure: 1010.95

I guess it’s not a ruuvi problem.


#5

Thank you for the report.

I’ll be implementing support for the RawV2 protocol on python libs soon (February), and I’ll fix this unless someone else beats me to it.


#6

Facepalm. This is embarrassing :flushed: I just noticed I had library installed globally and also for user. I updated global version but didn’t notice there was old one for user. After removing old one raw values work fine.