v0.77.0 — Total Cups fix on Nivona + stats alignment
Closes the remaining bug reported in #15.
Fixed
- Total Cups sensor no longer registers on Nivona. The legacy
MelittaTotalCupsSensorreads HR id 150 — a Melitta-specific register that doesn't exist on Nivona, so the sensor stayedunknownforever (reported in #15 for NIVO 8101). Nivona users see the equivalent via the capability-driventotal_beveragesstat 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_milk→hot_milk(vendor labels this counter "Heisse Milch" / hot milk). - 1030/1040 family, id 201:
lungo→coffee(vendor labels this counter "Coffee", not Lungo).
Existing entity registry entries migrate automatically — HA's long-term statistics follow the rename.
- 8000 family, id 206:
-
1030/1040 id 224
beverages_via_kannetitle 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) andtests/test_sensor.py(brand gating). - 3 new tests in
tests/test_init.py::TestMigrateEntryV2ToV3covering both renames + Melitta no-op. - Full suite: 963 passed (was 956 on v0.76.1).
🤖 Generated with Claude Code