Skip to content

Breeze 2.2.6

Choose a tag to compare

@monikapurpl3 monikapurpl3 released this 16 Aug 16:34
· 7 commits to main since this release

The outdoor sensor, finally used

Your units report an outdoor temperature — the diagnostics have been printing it all along — and the app was throwing it away. The control screen now reads:

I: 27.0 °C  /  O: 33.0 °C

…with a slim bar underneath showing how indoor, outdoor and target relate to each other.

One rule, not three

The bar could be described as three separate behaviours, which is exactly how such things drift apart. It's implemented as one:

The warmest of indoor / outdoor / target sets the top of the scale. The other two are drawn from the floor as overlapping fills — the warmer of them lighter, the cooler darker on top.

  • Cooling (outdoor 33, indoor 27, target 24) — outdoor is the ceiling, indoor the lighter fill, target the darkest.
  • Heating (outdoor 5, indoor 20, target 23) — the target becomes the ceiling and the outdoor reading the darkest fill.
  • Indoor below target — the shades swap by themselves, because warmer is always lighter. No special case.

Failsafes

A temperature sensor has many ways to lie, and every one of these is covered by a test:

  • A unit without an outdoor probe may report a sentinel instead of null, so anything outside −50…80 °C is treated as missing. A bar scaled to 255 °C would render as an empty sliver with no clue why.
  • NaN and infinities are dropped the same way.
  • Below-zero outdoors extend the scale floor beneath 0 °C rather than clamping the reading to nothing — which would look like a dead sensor every winter.
  • Fewer than two real readings isn't a relationship: the numbers still show, the bar doesn't.
  • Two readings draw a single full-strength fill; the pale shade only makes sense when something darker sits on it.
  • Identical readings still get a 1 °C span, so nothing divides by zero.
  • Genuine extremes are kept — 45 °C on a sun-baked outdoor unit and −30 °C in a real winter are weather, not faults.

Geometry is computed in Celsius whatever the display unit, so °F users see identical proportions.

Requires a Breeze Core server on your network. Also on the package host: https://bolero.salataputarica.hr.eu.org/android/