DS18B20 over modbus rtu and precision of reading

Hello,

i have ds18B20 conected to arduino with modbus rtu library and temperature is displayed on openhab2 but only integer, i wont to display one number after comma, my configuration:

modbus.cfg:

#LightSensor && Temperature
modbus:serial.slave2.connection=/dev/ttyUSB0:19200:8:none:1:rtu
modbus:serial.slave2.type=holding
modbus:serial.slave2.id=1
modbus:serial.slave2.start=1
modbus:serial.slave2.length=2

item:

Number Temperature  "Temperature [%.1f °C]" { modbus="slave2:1" }

sitemap:

 Text item=Temperature icon="temperature"

arduino sketch is well because when i print temperature on the serial i see for example 21.75

void CheckTemp()
{ sensors.setResolution(12);
  sensors.requestTemperatures();
 if (millis() - lastTempRequest >= delayInMillis)
  {
    
    for (int i=0; i<SENSORS_NUM; i++) {
      float temperature = sensors.getTempCByIndex(i);
      if (lastTemperature[i] != temperature && temperature != -127.00 && temperature != 85.00) {
            lastTemperature[i]=temperature;
           
      }
      lastTempRequest = millis();
    }
  }   
}

in openhab2 i see for example 21.0 and alweys after coma is 0

I think I remember reading that there is a known bug right now that is causing the formatting not to work right now.

Your code as written, in particular the label “[ ]” part looks correct to me.

1 Like