Corrective release for v2026.8.2. Two ways the same rain was counted wrongly, one of them reported within hours of that release going out.
Nobody needs to change anything to get the benefit, and if your automatic weather data update interval is 1 hour, the default, nothing about your numbers changes.
Fixed
Rain covered by a bucket reset was credited again at the next calculation (#811). reset_bucket is the last step of the documented irrigation automation and says the soil is at field capacity now. It dropped the bucket but not the weather data collected since the last calculation, and the calculation window spans the moment of the reset, so rain that fell before it landed in the bucket after it.
With 8 mm of overnight rain, a 12 mm deficit and 4 mm of evapotranspiration the following day:
| closed loop (observed watering) | open loop (reset_bucket) |
|
|---|---|---|
| bucket after the run | -12 + 4 applied = -8 | 0 (reset) |
| next calculation | -8 + 8 - 4 = -4 | 0 + 8 - 4 = +4 |
| what it should be | -4 | -4 |
The open loop was over-credited by exactly the rainfall, and the zone then skipped watering until that surplus had burned off, roughly two extra dry days here. The maximum bucket does not help, since with its default of 24 mm the surplus never reaches it.
Setting a bucket value now records the rain collected up to that moment and the next calculation subtracts it. Rain falling after the reset counts as usual, and nothing changes for observed watering or direct valve control, where the bucket is credited by the water applied rather than asserted, and the running balance already came out right.
This predates v2026.8.2: watering the full 12 mm and resetting gives the same +4. Shortening the run did not create it, it only made it visible by using the same rain twice in a way one could see. Found by @Megalos, who also spotted that the reasoning published alongside v2026.8.2 only held for the closed loop.
A coarse update interval multiplied the rain it did see. The weather services report the rain of the last hour only, so one sample accounts for one hour however far apart the samples are. Averaging them across the whole calculation interval extrapolated the hours that were never looked at. Measured on a day where 6 mm fell in a single hour:
| Update interval | v2026.8.2 | now |
|---|---|---|
| 1 hour | 6 mm | 6 mm |
| 2 hours | 12 mm | 6 mm |
| 3 hours | 18 mm | 6 mm |
| 6 hours | 36 mm | 6 mm |
Only the hours actually observed are credited now. A coarse interval still misses rain that fell in an hour nothing looked at, which is unavoidable, but it no longer scales up what it happened to catch. Hourly collection, the default, was exact before and still is, and remains the recommended setting.
Full Changelog: v2026.8.2...v2026.8.3