github oyvindwe/connectlife-ha v0.33.0
0.33.0 Inheritance

9 hours ago

Highlights

  • Property inheritance lands for feature override files — subtypes inherit base fields, and an immediate cleanup pass trims ~512 lines of redundant YAML across 55 files.
  • Breaking: the runtime auto-default of state_class: measurement for numeric sensors is gone. ~80 real measurements get explicit state classes; ~1075 hidden properties lose long-term statistics, with a one-click bulk-clear repair to clean up orphaned stats.
  • Device firmware version (oem_host_version) now shows in Home Assistant's device info panel via DeviceInfo.sw_version.
  • Refreshed icons across washers, dryers, dishwashers, ovens, and fridges to align with HA core integrations; refrigerator (026) opaque integer sensors hidden by default; Dutch washing-machine error code translations.

Improvements to existing devices

  • 025 (washing machines): added missing error codes and translations for F03–F24 faults #464 by @createthisnl
  • 026 (refrigerators): hide opaque integer sensors (running_status, mainboard_type, mainboard_version, sf_sr_mutex_mode), change vibration_alarm device class from problem to vibration, and drop the redundant 026-1b0470z0026j override #466 by @oyvindwe
  • 009-104: override f_electricity to expose actual power #331 by @jmigual
  • 009: relabel f_electricity since the unit varies across devices #468 by @oyvindwe
  • Icon consolidation across 015, 025, 027, 030, 032 and others — mdi:sync for spin speed, mdi:door for door status, mdi:clock-end for remaining time, mdi:tshirt-crew for washer program, mdi:tumble-dryer for Natural_Dry, etc., aligned with miele/home_connect/smartthings; shared icons hoisted to base files via inheritance #475 by @oyvindwe

Bug fixes

  • Fix state_class on cumulative consumption sensors: StandardElectricitConsumption/StandardWaterConsumption in 025/030 now declare total_increasing (the auto-measurement fallback was rejected by HA for energy/water device classes); the four Total_* lifetime counters in 015 switch from total to total_increasing so resets are detected correctly #470 by @oyvindwe
  • Honor unknown_value: 0 in Climate, Sensor, and WaterHeater parsers — a truthy check was silently dropping unknown_value: 0, so 023 oven meat probe and oven temperature sensors reported 0 °C instead of "Unknown" #472 by @oyvindwe
  • Fix hide/disable parser bug where hide: false was being interpreted as True, and prevent base placeholder visibility flags (hide: true, entity_category: diagnostic) from silently propagating to subtypes that upgrade the property to a real entity — affected ~20 entities #474 by @oyvindwe

Breaking changes

  • Removed the runtime auto-default of state_class: measurement for numeric sensors. ~1075 hidden properties across washing machines, dryers, ovens, and fridges lose long-term statistics; ~80 real measurements (currents, voltages, temperatures, humidities, weights) now declare state_class: measurement explicitly. A new CRITICAL-severity Repair entry appears on upgrade and offers a one-click bulk-clear of orphaned LTS; choose Ignore to handle HA's per-entity repairs individually instead. Note: HA's per-entity recorder repairs only re-validate when you visit Developer Tools → Statistics, not on a periodic cycle. #476
  • Property inheritance (#471) may change behavior for custom or locally-edited mapping files. If a feature override redeclared a property that the base file had marked hide: true, disable: true, or entity_category: diagnostic, those flags previously did not carry over — the override stood alone. With inheritance, unspecified fields now inherit from base, so the override silently picks up the base's visibility flags. Fix: add explicit hide: false, disable: false, or entity_category: null (or the desired category) to the override. The bundled mappings were audited and corrected in #474; this only affects out-of-tree mappings.

General improvements

  • Property inheritance in feature override files: subtypes inherit unspecified fields from the same-named base property, with collection-replace-whole semantics, platform-replace on platform change, and explicit null to opt out of an inherited field. Empty subtype files are now treated as the explicit "base mapping is sufficient" marker (no more spurious "No data dictionary found" warnings). Includes a new Sensor.state_class_explicit flag and inheritance-aware gen_strings.py. #471 by @oyvindwe
  • Trim 512 redundant lines across 55 feature override files now that inheritance is available — 50 fully-redundant property entries deleted, 96 partial overrides reduced to only the differing fields, and 006-201.yaml/007-406.yaml converted to comment-only markers #473 by @oyvindwe
  • Expose device firmware version (oem_host_version) via DeviceInfo.sw_version, centralized so new device types pick it up automatically without per-YAML stubs #469 by @oyvindwe
  • New cross-cutting validate_mappings check rejects sensors with entity_category: config, applied to merged base+subtype properties to catch inheritance-propagation cases #474 by @oyvindwe
  • Update bump-version and release-notes developer skills #463 by @oyvindwe

Translation improvements

  • Dutch translations for washing machine error codes (F01, F03–F07, F13–F18, F23, F24) #464 by @createthisnl

Documentation improvements

  • Improve mapping documentation in data_dictionaries/README.md and CLAUDE.md #467 by @oyvindwe

Contributors

The following have contributed to changes in this release — thank you very much!
@createthisnl
@jmigual

Full Changelog: v0.32.0...v0.33.0

Don't miss a new connectlife-ha release

NewReleases is sending notifications on new releases.