What's Changed
Added
- DpActionNumber support: New
AioHomematicActionNumberentity 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 existingDpActionSelectpattern. Entities are filtered byDP_ACTION_NUMBER_WHITELIST(currently empty;DURATION_VALUEprepared but commented out). - CombinedDataPoint support: New
AioHomematicCombinedNumberentity forCombinedDataPointProtocoldata 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 asEntityCategory.CONFIGnumber entities with min/max/unit from the combined data point. Sensor platform filters outCombinedDataPointProtocolinstances to prevent duplicate read-only entities. - 15 new WebSocket commands for the Integration and OpenCCU panel tabs (
homematicip_local/integration/*andhomematicip_local/ccu/*)
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-selectcompatibility with Home Assistant 2026.3.0+.
Dependencies
Bump aiohomematic to 2026.3.1
- DpActionNumber data points: New
DpActionFloatandDpActionIntegergeneric data point types for write-only FLOAT/INTEGER parameters. These provide number entities in Home Assistant (with MIN/MAX validation) while remaining write-only at the protocol level. Previously, all write-only numeric parameters were mapped toDpAction(no HA entity). The resolver now maps write-only FLOAT toDpActionFloatand write-only INTEGER toDpActionInteger. - DpActionBoolean and DpActionString data points: New
DpActionBooleanandDpActionStringgeneric data point types for write-only BOOL/STRING parameters. These complete the DpAction hierarchy so that every CCU write-only parameter type has a type-safe handler. Previously, write-only BOOL and STRING parameters fell through to the genericDpActionfallback withAnyvalue type.DpActionnow only handlesTYPE=ACTIONparameters (triggers without type information). - Type-correct custom data point fields: Replaced
DpActionwith specific types in custom data points where pydevccu paramset data shows a concrete TYPE:MANU_MODE(TYPE=FLOAT) →DpActionFloat,CONTROL_MODEon HmIP (TYPE=INTEGER) →DpActionInteger,DISPLAY_DATA_COMMIT(TYPE=BOOL) →DpActionBoolean,DISPLAY_DATA_STRING/COMBINED_PARAMETER/LEVEL_COMBINED(TYPE=STRING) →DpActionString.DpActionremains only for genuine TYPE=ACTION parameters (AUTO_MODE,BOOST_MODE,COMFORT_MODE,LOWERING_MODE,STOP,OPEN). - CombinedDataPoint for timer value+unit pairs: Introduced
CombinedDataPointbase class andCombinedDpTimerActionconcrete implementation inaiohomematic/model/combined/. This new data point type combines multiple underlying data points (e.g., timer value + unit) into a single writable entity with automatic unit conversion (seconds to S/M/H). Replaced the ephemeralTimerField/TimerAccessorpattern with theCombinedTimerFielddescriptor. For the IP Siren (HmIP-ASIR), the duration combined data point is exposed as a visible HA number entity with automatic unit conversion, replacing the rawDURATION_VALUEnumber entity. Applied across all custom data points with timer parameters: lights, sirens, switches, and valves. RemovedTimerUnitMixin,OnOffActionMixin,TimerAccessor, andTimerField. - CombinedDpHsColor for hue+saturation pairs: New
CombinedDpHsColorcombined data point that encapsulates HUE + SATURATION into a singletuple[float, float]value with automatic saturation scaling (CCU 0.0–1.0 ↔ HA 0.0–100.0). AddedCombinedHsColorFielddescriptor. SimplifiedCustomDpIpRGBWLightandCustomDpIpDrgDaliLightby replacing boilerplatehs_colorproperty andturn_on()conversion logic with delegation to the combined data point. - Unified field visibility in profile configs: Merged 6 field dictionaries (3 pairs of hidden/visible) in
ChannelGroupConfiginto 3 dictionaries where each entry carries its own visibility viahidden()/visible()helper functions. Removedvisible_fields,visible_channel_fields, andvisible_fixed_channel_fieldsfrom bothChannelGroupConfigandRebasedChannelGroupConfig. - Siren duration unit conversion:
CustomDpIpSiren.turn_on()now properly converts the duration value using automatic unit conversion (seconds → minutes → hours) before sending to the device. Previously, the raw duration was sent with the default unit, causing incorrect behavior for large duration values (>16343s). - Siren duration: The siren's
DURATION_VALUEparameter is now exposed as a visible number entity in Home Assistant, allowing users to set a default duration.turn_on()uses this value as fallback when no explicit duration is provided, fixing the issue wheresiren.turn_onwithout parameters activated the siren for 0 seconds. - Duration translations: Added German and English translations for the
DURATION_VALUEcombined data point parameter. - Fix scheduler busy-loop at 100% CPU during connection issues: When
has_connection_issuewas True, the scheduler entered a busy-loop because skipped jobs never advanced theirnext_run, causing the sleep calculation to computedelay = 0.0. The sleep calculation now only considers jobs eligible to run in the current state, and skipped jobs advance their schedule to prevent a burst of simultaneous execution on recovery.