Skip to content

v0.4.0-beta.1

Pre-release
Pre-release

Choose a tag to compare

@NaanyaBiz NaanyaBiz released this 04 Jul 23:00
9864f0a

Pre-release for community validation. Solar generation support (#128)
has not yet been confirmed against a live solar contract, and the
"pending" interval filter (#126) awaits confirmation from an affected
ToU account. Install via HACS with "Show beta versions" enabled.

Added

  • Solar generation (feed-in) support (#128). Contracts that report
    hasSolar in /v3/overview now also fetch the ElectricitySolar Hourly
    endpoint each cycle and write two new statistics series per contract:
    • haggle:generation_<contract> — exported kWh (unit_class="energy"), an
      Energy-dashboard "Return to grid" source
    • haggle:generation_credit_<contract> — AUD feed-in credit
      Values come from the response's feedIn block (outer quantity/amount,
      same schema as consumption — documented from a real capture provided on
      #128). Two new sensors, Solar generation (cumulative kWh) and Solar
      feed-in credit
      (cumulative AUD), register only on solar contracts;
      non-solar installs are unchanged. Backfill, trailing-rewindow self-healing,
      and the earliest-fetched-hour baseline rule all apply to the new series.
      If solar is added to a contract later, the integration detects the
      hasSolar flip on the next poll and reloads to add the sensors.

Fixed

  • Parser now filters consumption.type = "pending" intervals (#126). AGL
    returns "pending" (distinct from "none") for 30-min and daily slots where
    the AEMO meter read exists in their system but has not yet been delivered to the
    BFF — confirmed via proxy trace. These slots carry non-zero quantity/amount
    values that look real but are preliminary estimates; letting them through caused
    phantom readings in the statistics that were never overwritten once the real AEMO
    value arrived (unlike the zero-on-zero placeholder case). Both
    parse_interval_readings and parse_daily_readings now skip "pending" the
    same way they skip "none".

Changed

  • Platform floor raised to Home Assistant 2026.7.0 (was 2026.6.3); hacs.json
    minimum bumped to match. Test harness pinned to
    pytest-homeassistant-custom-component>=0.13.344,<0.13.345 (which pins
    homeassistant==2026.7.0 and pytest==9.0.3); ruff>=0.15.20.
    pytest stays at >=8.0phcc==0.13.344 pins pytest==9.0.3 exactly, so
    the Dependabot pytest>=9.1.1 bump (#120) is unsatisfiable alongside phcc and
    is excluded from this rollup.
    aiohttp remains at >=3.13.5 — HA still pins aiohttp==3.13.5, so
    Dependabot PR #106 (aiohttp>=3.14.1) is left open until HA moves upstream.
  • GitHub Actions rolled forward (all SHA-pinned):
    actions/checkout v7.0.0, actions/setup-python v6.3.0,
    github/codeql-action v4.36.3.