Skip to content

v0.77.0 — Total Cups fix on Nivona + stats alignment

Choose a tag to compare

@dzerik dzerik released this 28 May 07:08
· 52 commits to main since this release
b714b5e

Closes the remaining bug reported in #15.

Fixed

  • Total Cups sensor no longer registers on Nivona. The legacy MelittaTotalCupsSensor reads HR id 150 — a Melitta-specific register that doesn't exist on Nivona, so the sensor stayed unknown forever (reported in #15 for NIVO 8101). Nivona users see the equivalent via the capability-driven total_beverages stat sensor (id 213 on 8000-family, id 215 on 1030-family). Melitta installs unchanged.

Changed

  • Stat slugs renamed to align with vendor terminology:

    • 8000 family, id 206: warm_milkhot_milk (vendor labels this counter "Heisse Milch" / hot milk).
    • 1030/1040 family, id 201: lungocoffee (vendor labels this counter "Coffee", not Lungo).

    Existing entity registry entries migrate automatically — HA's long-term statistics follow the rename.

  • 1030/1040 id 224 beverages_via_kanne title prefixed (experimental) — register not confirmed by vendor reference data; kept until field-confirmed.

Added — new diagnostic sensors for NIVO 8000 family

All four are read-only HR register polls from the extended vendor register set:

  • id 211 grinding_count ("Anz_Mahlung")
  • id 212 reserve_count ("Anz_Reserve")
  • id 602 descale_status ("Entkalken_Status")
  • id 630 frother_rinse_needed ("SpuelenAufsch_Notwendig")

Added — 1030/1040 family

  • id 210 my_coffee ("Anz_Bezuege_MyCoffee") — was missing entirely.

Migration

Config entry version 2 → 3. async_migrate_entry handles the renames; restart HA after upgrade and history continues seamlessly.

Tests

  • 5 new tests in tests/test_brands.py (sizes + register-set alignment) and tests/test_sensor.py (brand gating).
  • 3 new tests in tests/test_init.py::TestMigrateEntryV2ToV3 covering both renames + Melitta no-op.
  • Full suite: 963 passed (was 956 on v0.76.1).

🤖 Generated with Claude Code