Too much capacitance?

I have a simple circuit to obtain the temperature from a DS18B20 one-wire sensor. Per every reference I've seen for wiring in non-parasitic mode, you use a 100nF ceramic capacitor across the VCC and GND pins, and a 4.7k resistor across the VCC and signal pin. I've got it wired up on a board getting its power from a standard USB plug, so 5VDC. The MCU is an ATtiny85. It works great.

I've heard that good practice for many circuits is to use a 10 uF electrolytic capacitor across your VCC and GND somewhere in the circuit to reduce the resistance of batteries providing power, and also to use a 100nF ceramic capacitor as close to the ATtiny85 VCC pin as possible, one end connected to the VCC pin and the other to ground. Just for giggles, I soldered in both of these capacitors on my board to see if there's a difference in performance. Surprisingly (to me), the temperature sensor now provides readings that are lower than actual. Granted, I'm not running it off of batteries, but from the USB port on my laptop.

Question: why would having extra capacitance in the circuit suddenly throw the DS18B20 reading off? Code attached below.

Thanks!
Tom

#include <avr/sleep.h>
#include <avr/wdt.h>
#include <OneWire.h>
#include<DallasTemperature.h>

#define WDTO_2S   7  // secret code for defining a watchdog timer for 2 seconds, to be used with wdt_enable()
#define WDTO_4S   8  // secret code for defining a watchdog timer for 4 seconds, to be used with wdt_enable()

// Data wire is plugged into D3 on the ATtiny85, physical pin 2
#define ONE_WIRE_BUS 3

// Define output LED pins
const int redPin = 0;   // analog out, to PB0 for red LED, pin 5 on ATtiny85
const int bluePin = 1;  // analog out, to PB1 for blue LED, pin 6 on ATtiny85
const int greenPin = 4; // analog out, to PB4 for green LED, pin 3 on ATtiny85

const int LL = 23; // Lower Limit of acceptable temperature range; below this the light is blue
const int UL = 25; // Upper Limit of acceptable temperature range; above this the light is red

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors (&oneWire);

void setup()
{
  pinMode(bluePin, OUTPUT);
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(ONE_WIRE_BUS, INPUT);
  wdtSetup();  // this sets up the watchdog timer
  sensors.begin(); // Start up the library
}

void loop()
{
  int TempC;
  
  pinMode(ONE_WIRE_BUS, OUTPUT);
  
  // call sensors.requestTemperatures() to issue a global temp request to all devices on the bus
  sensors.requestTemperatures();
  
  pinMode(ONE_WIRE_BUS, INPUT);
  TempC = sensors.getTempCByIndex(0);
    
 // NOW LIGHT THE LED BASED ON THE TEMPERATURE READ
  if (TempC < LL) // then light the blue LED - it's cold!
  {
    analogWrite(greenPin, 0);
    analogWrite(redPin, 0);
    GlowLightOnce(bluePin);
  }
  else if (TempC >= LL && TempC <= UL) // then light the green LED
  {
    analogWrite(bluePin, 0);
    analogWrite(redPin, 0);
    GlowLightOnce(greenPin);
  }
  else // light the red LED
  {
    analogWrite(bluePin, 0);
    analogWrite(greenPin, 0);
    GlowLightOnce(redPin);
  }
  
  // DEFINE SLEEP MODE
  wdt_enable(WDTO_4S);  // Set and start the WDT for the argument's duration
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);  // choose your preferred sleep mode for the chip
  sleep_enable(); // this puts the chip into, sleep mode, but doesn't command it to sleep yet.
  // energy saving move: change pin modes to input
  pinMode(bluePin, INPUT);  
  pinMode(redPin, INPUT);
  pinMode(greenPin, INPUT);
  sleep_mode();  // Last statement of loop() - this command actually puts the chip to sleep.
}

// Watchdog Timer Interrupt
ISR (WDT_vect) {
}

void GlowLightOnce(int bulb)  // subroutine applies one fade in - fade out blink of an LED
{
  int brightness = 0;
  int fadeAmount = 5;
  int totalcount = 0;

  do
  {
    analogWrite(bulb, brightness);
    brightness = brightness + fadeAmount;
    totalcount++;
    if (brightness == 255)
    {
      fadeAmount = -fadeAmount;
    }
    IdleChip(35);
  } while (totalcount < 103);
  //IdleChip(1000);
}

void IdleChip(unsigned long duration)
{
  unsigned long start = millis();
  set_sleep_mode(SLEEP_MODE_IDLE);  // choose idle mode for the chip
  sleep_enable();                              // this puts the chip into sleep mode, but doesn't command it to sleep yet
  while (millis() - start <= duration) {
    sleep_mode();  // put chip in idle mode
  }
  sleep_disable();
}

void wdtSetup() // Set up watchdog timer
{
  cli(); // disable all interrupts
  MCUSR = 0;  // Reset Micro Controller Unit Status Register
  // WDTCR register gives you access to the ATtiny85 WDT.
  // Bit 4 = Watchdog Change Enable.  Must be cleared to change or clear the WDE bit.
  // Bit 3 = WDT bit.  Must be cleared to set WDP3 through WDP0.
  WDTCR |= B00011000; // clear WDTCSR register bits 3 & 4
  WDTCR = B01000111;  // Set the WDP3 through WDP0 bits, to set the WDT prescale to two seconds.
  sei(); // enables all interrupts
}

My experience with the DS18B20 is that if the capacitance and/or the pullup resistor on the data line is incorrect, the readings will be obviously faulty or the device can't be read at all. It seems unlikely that the capacitors you've added would simply affect the temperature reading, but if you have doubts, remove the added capacitors to see if the original situation is restored.

And be aware that the normal black epoxy DS18B20 is sensitive to both air temperature
and radiated heat from your body (since it is black and absorbs heat radiation efficiently).
This makes it poor for measuring air temperature unless you use a fan. You'll get
more reliably readings in a liquid, or if the device is mounted inside a metal tube which
reflects heat radiation.

I found that with forced air cooling you can have a dozen of them all reading to
within a standard deviation of about 0.05 deg C