Different temperature results for different sensors

I have been experimenting with various temperature sensors and have discovered that each sensor is giving a different reading.

On my breadboard I have 3 x DS180 and 1 x SHT30 and the temperature readings are
DS180 - 0 21.7 C
DS180 - 1 20.7 C
DS180 - 2 21.2 C
SHT30 - 22.0 C

I am using simple yaml
dallas:

  • pin: GPIO0
    update_interval: 10s

sensor:

  • platform: dallas
    index : 0
    name: “Work Room Temperature”
    id: d_temp

  • platform: dallas
    index : 1
    name: “Work Room Temp1”
    id: d_temp1

  • platform: dallas
    index : 2
    name: “Work Room Temp2”
    id: d_temp2

  • platform: sht3xd
    temperature:
    name: “Temperature”
    id: i_temp
    humidity:
    name: “Humidity”
    id: i_humid
    address: 0x45
    update_interval: 10s

Am I doing something wrong or is there a way to compensate the sensors?

Mike Paneth
Australia

I don’t you’re doing anything wrong. You’d be lucky to have three DS180 sensors reporting precisely the same temperature (i.e. variances are “normal” for this class of device).

It all depends on what you mean by “compensate”. You could add an offset to each reading (for example, add or subtract 0.5 C). However, this simple compensation scheme assumes the temperature reading is consistently off by the same amount over the entire temperature range. In fact, it may vary depending on the temperature (for example, more offset needed for lower temperatures and less offset for higher temperatures) in which case applying a constant offset wouldn’t be accurate. You may need to graph your three sensors over a wide temperature range to determine if a constant offset is the right solution.