Skip to content

v0.4.1

Choose a tag to compare

@slippyex slippyex released this 16 Jun 11:06
· 9 commits to main since this release

A correctness fix to the surplus calculation, plus its observability. No breaking changes.

Fixed

  • The load-compensated surplus is now sun-aware: below PV_SUN_MIN_ELEVATION_DEG
    (default 3°) the compensation is disabled, so the heat pump is released after dark instead
    of being held ON on grid power. Previously the fixed + wp_nominal compensation could keep
    the SG-Ready relay ON past sunset (observed: relay still on at ~00:00 with the WP idle).

Added

  • PV_SUN_MIN_ELEVATION_DEG (default 3.0) to tune the elevation gate.
  • Gauge surplus_control_sun_elevation_deg; the UI "why" card shows "Sun below the horizon"
    when idle after dark.

[0.4.0] - 2026-06-16

Generic, vendor-neutral heat-pump telemetry. Breaking: the ViCare-specific service, DB table
and metric names are replaced by a generic contract behind a pluggable driver.

Changed

  • vicare-exporterheatpump-exporter with a HEATPUMP_DRIVER (vicare | mock) behind
    a HeatPumpDriver protocol — the heat-pump analogue of METER_DRIVER. ViCare is now one
    driver; a mock driver renders the heat-pump card in the zero-config demo.
  • DB table heatpump_vicareheatpump_telemetry (migration 003, data preserved).
  • Prometheus telemetry metrics vicare_*heatpump_* (vendor-API ops stay vicare_*).
  • control-ui is vendor-neutral; the heat-pump card name comes from HEATPUMP_LABEL.

Added

  • docs/heatpump-interface.md — the generic telemetry contract + "bring your own driver".

Upgrade

  • Apply migration 003 (the compose db-migrate one-shot does this automatically).
  • Switch the image vicare-exporter:0.3.xheatpump-exporter:0.4.0 with HEATPUMP_DRIVER=vicare
    (keep your existing VICARE_* secrets).
  • Update any custom Grafana panels / external scrapers from vicare_*/heatpump_vicare to
    heatpump_*/heatpump_telemetry. Set HEATPUMP_LABEL (e.g. Vitocal 250 A06).