diff --git a/fhem/FHEM/52_I2C_LM75A.pm b/fhem/FHEM/52_I2C_LM75A.pm index 31bfc03f2..20d70ef8b 100644 --- a/fhem/FHEM/52_I2C_LM75A.pm +++ b/fhem/FHEM/52_I2C_LM75A.pm @@ -196,9 +196,13 @@ sub I2C_LM75A_GetTemp ($$) { if(($raw[0] & 0x80) > 0) { $temperature = 0xffffff00; } - $temperature |= ($raw[0] & 0x7f) << 1; - $temperature |= (($raw[1] >> 7) & 1); - $temperature = $temperature / 2; +# $temperature |= ($raw[0] & 0x7f) << 1; +# $temperature |= (($raw[1] >> 7) & 1); + + my $temperature_11_bit = ($raw[0]<<8 | $raw[1]) >> 5; # Compute 11-bit temperature output value + $temperature = ($temperature_11_bit) * 0.125; # Compute temperature in °C + +# $temperature = $temperature / 2; Log3 $hash, 5, "temperature: $temperature"; $temperature = sprintf( '%.' . AttrVal($hash->{NAME}, 'roundTemperatureDecimal', 1) . 'f',