// We consumed this reading pair.
//id(solar_out_fails) = id(solar_in_fails) = 1;
- // We believe the output sensor is reading slightly lower than the
- // input sensor. We see a fair amount of hysteresis, and the bypass
- // kicks in before the output reports lower than the input... but
- // the roof temperature continues to rise. When it gets high enough,
- // the bypass turns off again and the warm water is pumped out. But
- // then the reported output temperature is lower than the input again
- // and it switches off again. Repeatedly, each 5 minutes over the
- // course of an hour or so.
+ // The sensors are not perfectly calibrated. We believed the original
+ // input sensor was reading slightly higher than the output sensor,
+ // and we saw a fair amount of hysteresis. The bypass opened when the
+ // output *reported* lower than the input... but the temperature in
+ // the roof continued to rise. When it got high enough, the bypass
+ // closed again and the warm water was pumped out. But then the
+ // reported output temperature was lower than the input again and it
+ // switched off again. Repeatedly, each 5 minutes over the course of
+ // an hour or so.
//
- // By adjusting the output sensor up by about 0.1°C we attempt to
- // reduce this hysteresis. Overcorrection would mean that we keep
- // pumping heat into the sky for longer than we should, which is
- // much worse than a little bit of hysteresis when the heat *is*
- // actually accumulating in the water on the roof even while we
- // vacillate.
+ // By adjusting the input sensor down by about 0.1°C we attempted to
+ // reduce this hysteresis. Overcorrection would mean that we we keep
+ // pumping heat into the sky for longer than we should, which is much
+ // worse than a little bit of hysteresis when the heat *is* actually
+ // accumulating in the water on the roof even while we vacillate.
//
- outtemp += 0.2;
+ // Having replaced the valve assembly in 2024, the new input sensor
+ // seems to be reading *lower* than the output by about 0.2°C, so we
+ // end up pumping heat into the sky, especially in the evenings. So
+ // we now make the correction in the opposite direction.
+ intemp += 0.2;
if (outtemp == intemp)
return;