github SukramJ/homematicip_local 2.4.0b1

pre-release6 hours ago

What's Changed

Added

  • DpActionNumber support: New AioHomematicActionNumber entity for write-only FLOAT/INTEGER data points (BaseDpActionNumber). Values are stored locally (not sent to device) and persisted in a dedicated storage file (homematicip_local.action_number.{entry_id}), analogous to the existing DpActionSelect pattern. Entities are filtered by DP_ACTION_NUMBER_WHITELIST (currently empty; DURATION_VALUE prepared but commented out).
  • CombinedDataPoint support: New AioHomematicCombinedNumber entity for CombinedDataPointProtocol data points (e.g. CombinedDpTimerAction). These combined data points merge multiple underlying parameters (e.g. timer value + unit) into a single writable number entity with automatic unit conversion. Exposed as EntityCategory.CONFIG number entities with min/max/unit from the combined data point. Sensor platform filters out CombinedDataPointProtocol instances to prevent duplicate read-only entities.
  • 15 new WebSocket commands for the Integration and OpenCCU panel tabs (homematicip_local/integration/* and homematicip_local/ccu/*)

Fixed

  • Fix sensor entities not created for non-DpSensor data points: The isinstance(data_point, DpSensor) filter added to exclude CombinedDataPointProtocol instances also excluded CalculatedDataPoint instances (e.g. OperatingVoltageLevel / Betriebsspannungspegel) and forced-sensor GenericDataPoint instances (e.g. LEVEL / Ventilöffnungsgrad on HmIP-eTRV). The filter now excludes only CombinedDataPointProtocol instead of requiring specific subclasses.
  • Fix CombinedDataPoint number entities not created on dynamic discovery: The async_add_combined_number dispatcher in the number platform listened on DataPointCategory.SENSOR but CombinedDpTimerAction (e.g. siren duration on HmIP-ASIR-2) has _category = DataPointCategory.ACTION_NUMBER. Changed the signal to ACTION_NUMBER so combined number entities are correctly created during dynamic device discovery.

Changed

  • Python 3.14 minimum: Dropped Python 3.13 support. CI, mypy, pylint, ruff, Dockerfile, and all documentation updated to target Python 3.14+.
  • Minimum Home Assistant version: Raised from 2025.10.0 to 2026.3.0.

Config Panel

  • Integration dashboard tab: New "Integration" tab in the config panel providing a consolidated view of the integration's operational state:

    • System health with central state and health score
    • Device statistics with per-interface breakdown (total, unreachable, firmware-updatable)
    • Command throttle monitor per interface (interval, queue size, throttled/burst counts)
    • Incident log with severity-colored entries and clear action
    • Cache management (clear all cached data)
  • OpenCCU dashboard tab: New "OpenCCU" tab for CCU-specific information and management:

    • System information (name, model, version, serial, hostname, CCU type, available interfaces)
    • Hub messages (service and alarm message counts)
    • Install mode control for HmIP-RF and BidCos-RF with activation buttons and remaining time display
    • Signal quality table with sortable columns (RSSI, signal strength, battery, reachability per device)
    • Firmware overview table with sortable columns and update-available highlighting
    • CCU backup creation with download to backup directory
  • Tab navigation: The config panel now features a tab bar (Devices / Integration / OpenCCU) for switching between views. Tab state is persisted in the URL hash.

  • Link config editor fix: Fixed false dirty state when opening the link config editor without making changes.

  • HA 2026.3 compatibility: Fixed ha-select compatibility with Home Assistant 2026.3.0+.

Dependencies

Bump aiohomematic to 2026.3.3

  • DpActionNumber data points: New DpActionFloat and DpActionInteger for write-only FLOAT/INTEGER parameters with MIN/MAX validation
  • DpActionBoolean and DpActionString data points: Complete the DpAction hierarchy for write-only BOOL/STRING parameters. DpAction now only handles TYPE=ACTION parameters
  • Type-correct custom data point fields: Replaced DpAction with specific types (DpActionFloat, DpActionInteger, DpActionBoolean, DpActionString) in custom data points based on pydevccu paramset TYPE
  • CombinedDataPoint for timer value+unit pairs: New CombinedDpTimerAction combines timer value + unit into a single writable entity with automatic unit conversion (seconds to S/M/H). Replaces TimerField/TimerAccessor pattern. Siren duration exposed as visible number entity with automatic unit conversion
  • CombinedDpHsColor for hue+saturation pairs: Encapsulates HUE + SATURATION into a single tuple[float, float] value with automatic saturation scaling. Simplifies RGBW and DALI light custom data points
  • Unified field visibility in profile configs: Merged 6 field dictionaries into 3 with per-entry visibility via hidden()/visible() helpers
  • Siren duration fix: turn_on() now properly converts duration with unit conversion and uses stored default when no explicit duration is provided
  • Duration translations: Added German and English translations for DURATION_VALUE
  • Fix scheduler busy-loop at 100% CPU during connection issues: Skipped jobs now advance their schedule to prevent busy-loop and burst on recovery
  • Security hardening: ReGa script injection prevention, device address validation, password field protection, authorization header sanitization, ReGa script path traversal prevention, firmware URL scheme validation, restrictive temp file/directory permissions, RPC background task limit (1000 max), cryptographic RNG for address anonymization
  • Performance: Pre-sorted EventBus handlers, parallel device finalization/client refresh/interface operations, weakref.finalize for subscription cleanup, slots=True for dataclasses, optimized multi-channel group check

Bump aiohomematic-config to 2026.3.2

  • Add device_active_profile_index field to ClimateScheduleData for active profile index from device
  • Add device_icon field to FormSchema with icon filename from CCU device database
  • Add description field to FormParameter with Markdown-formatted parameter help text
  • Python 3.14 minimum: Dropped Python 3.13 support

Don't miss a new homematicip_local release

NewReleases is sending notifications on new releases.