Version 2.7.2 (2026-05-29)
May 29, 2026 · View on GitHub
What's Changed
Integration
- Dependency-bump release; no behavioral changes in the integration itself
- Rebuilt bundled frontend (
homematic-config.js) against the latesthomematicip-local-frontendcommit for HA 2026.6 compatibility
Dependencies
Bump aiohomematic to 2026.5.11
- Fix Switch/cover/valve schedule round-trip when the CCU paramset advertises fields the device category doesn't support (#3198):
ramp_time/level_2/durationare now cleared forSWITCH,LIGHT,COVER,VALVE,LOCKso reads no longer emit entries that the subsequentset_schedule()rejects - Fix blocking file I/O in the event loop on first easymode access: the gzip archive (
openccu_data/data/easymode_extract.json.gz) was loaded lazily viaread_bytes()on the firstget_*()call, triggering HA's blocking-call warning duringws_get_form_schema— archive is now loaded eagerly at import time, all later lookups are pure dict reads
Bump aiohomematic-config to 2026.5.0
- Tracks the
aiohomematic2026.5.10 /openccu-data2026.5.0 minimums; no API or behavior changes for the integration
homematicip-local-frontend (last commit "HA 2026.6 Compatibility — ha-radio Removal")
- Replaces the removed
ha-radioelement (gone in HA 2026.6) inform-parameterandadd-linkto keep the config panel working on 2026.6
Version 2.7.1 (2026-05-06)
What's Changed
Integration
- Fix
homematic.device_availability/device_errorevents silently dropped whenevent.device_namewas empty (fallback to HA device-registry name) - Auto-remove orphaned entity-registry entries (incl. disabled) on startup (#3176) — replaces the "enable → reload → delete" workaround
- Fix orphan cleanup deleting hub-backed entities (
system_update,inbox,service/alarm_messages,install_mode, metrics, connectivity, program buttons) on every restart: sweep now aggregates all hub singleton/mapping DPs fromhub_coordinator; delay reduced 120 s → 60 s
Dependencies
Bump aiohomematic to 2026.5.9
- Fix climate
activityreportingHEATin cooling mode (HmIP-WTH-1 + HmIP-FALMOT-C12) - Fix RF dimmer flicker during ramps —
LEVEL_REALis now the authoritative status source - Fix HM
LOWBATnot propagated toMaintenanceData.low_bat - Fix
HmIP-RGBW/HmIP-DRG-DALIturn_offwithtransitionrejected by CCU (regression from 2026.4.7) - Three follow-up fixes for residual dimmer flicker during/after ramps (#3177): in-flight command tracking, recency-based
_effective_levelfallback - Fix HmIP dimmer brightness showing state-channel summary instead of commanded value (#3181): #3166 mirror logic restricted to RF dimmers (
LEVEL_REAL); HmIP falls back to action channel - Expose
inbox_dpandupdate_dpasDelegatedPropertyonHubCoordinator - Fix automatic reconnect after startup failure when the CCU is not yet reachable (#3183):
EventBus.publish()/publish_batch()now merge key-specific and wildcard subscribers instead of short-circuiting — theConnectionRecoveryCoordinator's heartbeat retry loop now actually runs when HA starts before the CCU is ready - Fix central stuck in
FAILEDafter a startup-failure recovery succeeds (#3183 follow-up): heartbeat recovery path now hops throughRECOVERINGand keeps_active_recoveriespopulated so the final_transition_to_running()/_transition_to_degraded()actually fires — previously entities stayed unavailable until reload even though every interface reconnected
aiohomematic-config remains at 2026.4.7
- No API or behavior changes for the integration since 2.7.0
homematicip-local-frontend (last commit unchanged since 2.7.0)
- Latest commit "Schedule Card — Valve as Binary, Duration Limits (#57)", already shipped with 2.7.0
Version 2.7.0 (2026-04-22)
What's Changed
Integration
- Per-channel schedule enable/disable support for non-climate week profiles (WebSocket endpoint + sensor attribute)
- Schedule switch entities are now disabled by default in the entity registry
- Schedule entities (week profile sensor, schedule switch) now consistently use "Zeitplan"/"Schedule" in their name, both with and without sub-devices enabled
- Fixed schedule sub-device naming: schedule devices now correctly include "Schedule"/"Zeitplan" in their name when sub-devices are enabled
- Added configurable
command_retry_max_attemptssetting in advanced config (default: 3, range: 0-10) for the new command retry mechanism - Added
retryparameter toset_device_value,put_paramset, andput_link_paramsetservices (default: true) to leverage the new command retry mechanism in aiohomematic - Added missing config flow translations (EN/DE) for
command_retry_max_attempts - Fixed KeyError when
command_retry_max_attemptsis absent from existing config entries - Enabled parallel test execution via pytest-xdist (
-n auto --dist loadscope) - Internal code quality: aligned linter configuration with aiohomematic / HA core
- Ruff: bumped target to Python 3.14, modernized
[tool.ruff.lint]section syntax, enabled rule familiesA,ASYNC,BLE,FURB,PTH, fullS(bandit),SLF,TC,TIDand additionalB/RUFchecks; lowered mccabe complexity from 25 to 15; added banned-api entries forasync_timeoutandpytz; explicitpep257docstring convention - Mypy: enabled
possibly-undefinedandunused-awaitableerror codes - Pylint: added
pylint_per_file_ignoresplugin, enableduseless-suppression, removed deprecatedextension-pkg-whitelist - Pytest: added
log_format,asyncio_debug, custom markers andfilterwarnings - Coverage: enabled branch coverage and extended
exclude_linesfor protocol stubs and abstract methods - Pre-commit: bumped
python-typing-updateto--py314-plusand included integration sources; bandit no longer scans test fixtures
- Ruff: bumped target to Python 3.14, modernized
- Refactored
async_migrate_entryinto a dispatch table of pure data-only migrations (per-version helpers) - Split
_on_system_statusinto per-detail handlers (central / connection / client / callback / issues) - Moved blocking
Path.mkdir/Path.write_bytesoff the event loop in CCU backup paths (button, services, update, websocket_api)
Blueprints
- Modernized all blueprints: replaced deprecated
service:withaction:, simplified condition templates to shorthand syntax - Added
homeassistant.min_version: "2026.3.0"to all blueprints - Added multi-device support to all button blueprints (2, 4, 6, 8-button)
- Added CCU direct-link detection to all button blueprints: optional warning notification and action skip when CCU direct connections exist for the pressed button (based on community contribution by @hosswald)
- Added configurable delay to all reactivate-device blueprints (default: 10 seconds)
- Updated all blueprint versions to v2026-04-14
- Added comprehensive blueprint test suite (171 tests): schema validation, input validation, template substitution, full-flow end-to-end tests including direct-link detection and all button-subtype mappings
Dependencies
Bump aiohomematic to 2026.5.0
- Added device profile for HmIP-UDI-SMI55
- Added
ScheduleChannelSwitchdata point for per-channel schedule enable/disable - Per-channel schedule enable/disable via
COMBINED_PARAMETER(atomic bitmask + mode write) - Load
WEEK_PROGRAM_CHANNEL_LOCKSvalue at startup (fixes delayedschedule_enabledattribute) - Command retry mechanism for transient failures (automatic retry with backoff for temporarily unreachable devices)
- Lock schedule support for HmIP-DLD and HmIP-DLP (door lock mode, user permission mode, domain validation)
- Extract MASTER paramset metadata from CCU WebUI dialog functions
- Support non-climate link roles (HmIP-RCV-50 virtual remote and other non-climate devices now linkable via "Add Direct Link" wizard)
- Added
WeekProfile.supported_schedule_fieldsexposing theScheduleFields the device advertises; forwarded as entity attribute so frontends can hide non-functional schedule inputs (e.g. HmIP-DLD) - Validate schedule writes against paramset description (
check_against_pd=True) — unsupportedWP_*parameters now raise a clearClientExceptioninstead of being silently rejected - Schedule duration encoding now uses natural Homematic time bases and promotes to a coarser base only when the factor would overflow the CCU's
factor=30cap, so requests like"40min"no longer get silently clamped to 31 minutes on the device SimpleScheduleEntryrejects unrepresentable durations (e.g."31h","301s", sub-100ms) at validation time with a clearValueErrorinstead of letting the CCU clamp them; useduration=Nonefor "permanent"- Fixed schedule target channels for multi-config lock devices
- Fixed missing DURATION_UNIT/DURATION_VALUE in putParamset for turn_on and turn_off (HmIP-BSL, HmIP-RGBW, HmIPW-WRC6, HmIP-DRG-DALI)
- Fixed RAMP_TIME_TO_OFF usage for RGBW and DRG-DALI lights
- Fixed siren duration always sent on turn_on
- Fixed HmIP-RCV-50 (and similar devices) missing from the panel device list due to empty CHILDREN entries
- Fixed HmIP-DLD silently rejecting schedule updates by filtering unsupported schedule fields before
put_paramset - Improved logging for unsupported JSON-RPC methods (warning instead of error) and for devices with failing configurable-channel lookup
- Internal code quality: stricter linter configuration (ruff
S/BLE/PTH, lowered mccabe complexity, additional bandit checks, mypypossibly-undefined/unused-awaitable), migration of filesystem operations topathlib, narrowed broad exception handlers, and refactored complex functions for readability - Adopt the new openccu-data package as the source-of-truth for CCU translation and easymode metadata; dropped the vendored
aiohomematic/ccu_data/tree (public API unchanged)
Bump aiohomematic-config to 2026.4.7
- Per-channel
schedule_enabledfield onDeviceScheduleData - Added
supported_schedule_fieldsonDeviceScheduleDataexposing whichScheduleFields the device advertises - Use
get_ui_label_translation()from aiohomematic - Fall back to the locale-aware "Other Settings" label for metadata parameter groups without
label_keyor populatedlabelmapping (prevents raw group ids likegroup_5from leaking to the UI) - Tightened code quality tooling (ruff/mypy/pylint/bandit/pytest) in line with aiohomematic and HA core
- Adopt the new openccu-data package as the source-of-truth for easymode link-profile data; dropped the vendored
aiohomematic_config/profiles/directory (public API unchanged)
Bump homematicip-local-frontend
- Per-channel schedule enable/disable as clickable channel chips
- Added schedule support for lock devices
- Improved the schedule card layout to reduce vertical space usage
- Removed misleading "Update verfügbar" badge from CCU dashboard System Information card
- Device schedule editor now hides unsupported schedule fields (e.g. for HmIP-DLD) based on
supported_schedule_fields - Fixed lock schedule editor labels and translations
- Fixed cards showing "Konfigurationsfehler" in Firefox
- Config panel now available for all backends (CCU and Homegear); OpenCCU tab only shown for CCU backends
- Fixed cards showing infinite loading spinner in HA Card Picker and on dashboards
- Fixed device icons invisible or poorly visible in dark mode
- Schedule card: switched the
valvedomain from a 0–100% slider to a binary on/off control to match CCU semantics for water valves (HmIP-WSM / ELV-SH-WSM); selecting <100% no longer accidentally closes the valve - Schedule editor enforces the CCU's
DURATION_FACTOR/RAMP_TIME_FACTORcap of 30 per unit (≤30 fors/min/h, ≤3000 in 100 ms steps forms); invalid values are rejected upfront instead of being silently clamped on the device, and switching units clamps to the new unit's max - Added a "Permanent"/"Dauerhaft" toggle in the device schedule editor that sets
duration=null(no auto-revert); the schedule list now displays "Permanent"/"Dauerhaft" instead of-for these entries
Version 2.6.0 (2026-04-09)
What's Changed
New Frontend Cards
All frontend cards are now delivered directly through the integration — no separate HACS installation required. Cards are automatically available once the integration is loaded. Existing standalone HACS installations are detected and skipped with a console warning.
- Climate Schedule Card (
homematicip-local-climate-schedule-card): Visual weekly thermostat schedule editor with profile switching, copy/paste, and import/export. Edit heating schedules conveniently right from your Home Assistant dashboard. - Schedule Card (
homematicip-local-schedule-card): Schedule editor for switches, lights, covers, and valves with fixed-time and astronomical conditions (sunrise/sunset). Supports multiple switching points per day with different values. - Status Cards (
homematicip-local-status-card) — three new cards in one bundle:homematicip-system-health-card: System health score, device statistics, Duty Cycle/Carrier Sense levels per radio module, optional incidents listhomematicip-device-status-card: Device status overview with filtering (all/problems/unreachable/low battery/config pending)homematicip-messages-card: Service and alarm messages with acknowledge buttons
Integration
- HmIP-DLP support: Added entity descriptions for door lock panel — door sensor (binary sensor), sabotage sensors, lock state reason (sensor), auto-relock and permission state (switches)
- Non-admin schedule editing: Non-admin users can edit device schedules via the schedule cards when enabled in Options Flow. Backend enforces permissions via
@require_scopedecorator (WebSocket) andcheck_service_permission()(service calls). Newget_user_permissionsWebSocket endpoint for frontend permission queries.
Dependencies
Bump aiohomematic to 2026.4.4
- Additional data points for HmIP-DLP (door state, permission, lock state reason, auto-relock, sabotage)
- Channel name exposed in configurable device channels, device links, and linkable channels
- Multi-channel detection cache for additional data points
- Synthesize missing parameter name translations from value entries
- Clamp schedule level_2 to [0.0, 1.0]
- Always populate unconfirmed value on set (fixes unknown state after setting same value)
- Fixed multi-channel postfix for data point names
- Fixed spurious optimistic rollbacks for CUxD/CCU-Jack devices
Bump aiohomematic-config to 2026.4.1
operationsfield onFormParameterexposing the raw OPERATIONS bitfield from the paramset description- Receiver type alias resolution for shared easymode profiles (e.g.
OPTICAL_SIGNAL_RECEIVER→DIMMER_VIRTUAL_RECEIVER) - Easymode metadata enrichment: conditional visibility, presets, subset groups
- Cross-validation constraints model and semantic parameter grouping
- Master profile store for MASTER paramset easymode profiles
- HmIP channel type resolution for correct CCU translations
Bump homematicip-local-frontend
- Integration-bundled cards: climate schedule card, schedule card, and three new status cards
- Non-admin permissions (Phase 2): backend-enforced permission scopes, read-only mode
- UX Review — Full CCU Parity & Mobile Optimization (57 items resolved)
- Redesigned device schedule list: three-line card layout
- OpenCCU dashboard: Inbox, Service Messages, Alarm Messages
- Easymode support for paramset editor
- Integration dashboard: system health, device statistics, throttle stats, incidents
- HA 2026.3.0+/2026.4.0+ compatibility
- Improved mobile layout across all packages
Version 2.5.2 (2026-03-30)
What's Changed
Breaking Changes
- Removed SysVar entities for alarm/service messages: The system variables
${sysVarAlarmMessages}(ID 40) and${sysVarServiceMessages}(ID 41) are no longer auto-enabled and renamed. These are superseded by the dedicated hub sensorsHmAlarmMessagesSensorandHmServiceMessagesSensor. Users who have automations referencing the old SysVar-based entity IDs (sensor.*_sysvar_alarm_messages/sensor.*_sysvar_service_messages) must update them to use the new hub sensor entities (sensor.*_hub_alarm_messages/sensor.*_hub_service_messages).
Integration
- Hub data WebSocket API:
ws_get_hub_datanow reads alarm/service message counts directly from the dedicated hub data points instead of iterating over system variable data points - SubscriptionGroup: Event bus subscriptions managed via
SubscriptionGroupinstead of manual callback tracking - Device name from events: Event handlers (
_on_device_trigger,_on_optimistic_rollback,_fire_device_availability_event) now useevent.device_namefrom aiohomematic, falling back to HA device registry only for user-overridden names - DataPointType-based platform routing:
get_new_data_points()usesDataPointTypeenum instead of concrete class types, decoupling platform setup from aiohomematic model internals - Unified subscription architecture: Entity-level subscriptions migrated from
subscribe_to_data_point_updated()/subscribe_to_device_removed()to EventBusSubscriptionGroup.subscribe()withDataPointStateChangedEvent/DeviceRemovedEvent. Data point registration viaregister()/unregister()replacescustom_idownership - State transition handlers: Central state transitions (RUNNING/RECOVERING) handled via
CentralStateChangedEventsubscription; DEGRADED/FAILED remain onSystemStatusChangedEventfor access to failure details - Exclude message attributes from recorder:
AioHomematicSysvarSensorexcludesalarm_1..alarm_99andmessage_1..message_199attributes from recorder to prevent database bloat
Config Panel
- Easymode support for paramset editor — conditional visibility, preset dropdowns, and subset groups for context-dependent device configuration forms
- Cross-validation translations (en/de) for min/max, level range, and threshold constraints
- Active climate profile indicator — profile dropdown now shows which profile is active on the device (e.g. "Profil 1 (Aktives Profil)")
- Device detail improvements: RSSI Peer always shown, Duty Cycle and Reachability displayed as Yes/No
- Device icons displayed in device list, device detail, and channel config views (via CCU proxy endpoint)
- Parameter help text with Markdown formatting below each parameter
- MASTER paramset time presets — unit/value parameter pairs displayed as a single preset dropdown (13 standard Homematic presets, 100ms–15 minutes)
- Dropdown and radio options now use translated labels from the backend
- HmIP-specific parameter translations — config panel now resolves HmIP channel types for correct CCU translations (e.g.
SHUTTER_CONTACT→SHUTTER_CONTACT_HMIP) - OpenCCU dashboard: sub-tab navigation (General, Messages, Signal Quality, Firmware); all table columns sortable; filter bars for Signal Quality and Firmware tables (shown when >10 devices)
- OpenCCU dashboard: Messages tab with Inbox (accept devices with rename and auto-confirm), Service Messages (acknowledge), and Alarm Messages (acknowledge) — badge shows total count
- Climate and device schedule editors now use shared
@hmip/schedule-uicomponents - Semantic parameter grouping from easymode metadata with locale-aware labels
- Cross-parameter validation exposed via
CrossValidationConstraintmodel - Fixed
ha-sliderandha-selectevent handling in paramset and schedule editors (slider changes not registering, event leaking, dropdown closing dialogs) - Fixed device schedule entries without target channels not being shown; target channels are now optional
- Fixed UTF-8 link names showing as mojibake (e.g. "Küchenblock" instead of "Küchenblock")
- Fixed editor dialog closing on save when validation errors exist
- Fixed copy/paste schedule icons overflowing at narrow widths
Dependencies
Bump aiohomematic to 2026.4.0
- Fixed forced-to-sensor data points not publishing events: Data points with
force_to_sensor()(LEVEL on HmIP-eTRV and HmIP-HEATING) published events with the internal_unique_idinstead of theunique_idproperty, causing key mismatches and orphaned subscriptions (memory leak) - Fixed false channel identification for hub data points: Renamed
rega_idtoise_idto correctly identify hub data point channels - Fixed acknowledge for alarm messages: ReGa script for acknowledging alarm messages corrected
- Message enrichment:
ServiceMessageDataandAlarmMessageDatainclude pre-resolved fields (message_code,display_name,msg_type_name) with i18n support (en/de) - Individual message attributes: Message sensors expose each message as individual extra state attribute (
alarm_1,message_1, ...) with human-readable display names - ServiceMessageType enum extended: Added
ALARM,UPDATE_PENDING, andCOMMUNICATIONtypes - DST-safe health checks: Replaced
datetime.now()withtime.monotonic()for callback alive and connection checks, preventing false timeouts during DST transitions - Alarm messages fix: Fixed ReGa script not returning active alarm messages for system alarms with sentinel trigger data points
- Service messages hub sensor: New sensor exposing active CCU service messages — count as state, full message details as attribute
- Alarm messages hub sensor: New sensor exposing active CCU alarm messages (Alarmmeldungen) — count as state, full message details as attribute
- Acknowledge messages: Support for acknowledging service and alarm messages via ReGa scripts
- CCU data gzip consolidation: CCU-sourced data (easymode metadata, translations) consolidated into gzip archives — 95% package size reduction (~11 MB → ~516 KB)
- CCU easymode metadata extraction: Channel-level easymode metadata for MASTER paramset profile enrichment
- Hidden/device-level channels in configuration: Device-level, internal, and invisible channels with MASTER paramset are now included in configurable channels
- Read-only MASTER parameters: Read-only configuration values are now displayed in device configuration
- TLS certifi CA bundle: TLS context now loads the
certifiCA bundle when available, ensuring trusted certificates work out-of-the-box in Home Assistant - Skip optimistic updates for action data points: Action data points (ACTION, ACTION_NUMBER, ACTION_SELECT, BUTTON) never receive CCU confirmations — the optimistic timer now skips them, preventing spurious rollback warnings
- Skip duplicate optimistic sends: Identical value sends are deduplicated to avoid unnecessary device writes
- Additional parameter translations: Extracted more parameter translations for improved config panel localization
- Connection recovery: Heartbeat timer now starts correctly after CCU reboots
- HmIP channel type resolution:
resolve_channel_typefor HmIP-specific translation lookups - New device: HmIP-DLP (IP Door Lock Pro)
- SysvarDpSwitch turn_on/turn_off: Direct
turn_on()/turn_off()methods for system variable switches - DataPointType enum: Canonical data point type for downstream platform routing without isinstance checks
- SubscriptionGroup: Collective subscription lifecycle management via
event_bus.create_subscription_group() - Device name in events: Human-readable device names on
DeviceTriggerEvent,DeviceLifecycleEvent,OptimisticRollbackEvent, andDataPointStateChangedEvent - State transition callbacks:
central.on_state_transition()for targetedCentralStatetransition handling - Extended query facade:
get_data_points()withdata_point_typefilter;get_devices()with interface/availability filters;get_schedule_capable_devices() - System variable creation:
create_system_variable_bool(),_float(),_enum()for creating system variables on the CCU - Link info read/write:
get_link_info()/set_link_info()for link metadata management - Service message suppression:
suppress_service_message()/get_suppressed_service_messages() - Quittable flag based on trigger datapoint: Service message quittable check now uses
OPERATION_WRITEon the trigger datapoint, matching CCU WebUI behavior - Acknowledge only writable messages:
acknowledge_messagerefuses non-quittable messages instead of silently acknowledging them - Removed auto-enable of alarm/service SysVars:
${sysVarAlarmMessages}and${sysVarServiceMessages}no longer force-enabled — superseded by dedicated hub sensors - Exposed message DPs on HubCoordinator:
alarm_messages_dpandservice_messages_dpaccessible viaHubCoordinatorfor direct downstream access - Event tier enforcement: Internal events separated from public API;
__all__exports only public events - Unified subscription architecture: DataPoint subscriptions routed through EventBus;
subscribe_to_data_point_updated()/subscribe_to_device_removed()andcustom_idremoved;register()/unregister()for consumer lifecycle;SubscriptionGroup.add()replaced bySubscriptionGroup.subscribe(); typedget_data_points_by_type()query method
Bump aiohomematic-config to 2026.3.5
- Easymode metadata enrichment: conditional visibility, option presets, subset groups, and metadata-based parameter ordering
- Cross-parameter validation in config sessions
MasterProfileStorefor MASTER paramset easymode profiles- HmIP channel type resolution via
is_hmipparameter device_active_profile_indexfield for active profile index from devicedevice_iconfield with icon filename from CCU device database- Parameter
descriptionfield with Markdown-formatted help text - TCL profile parsing improvements (variable resolution,
substhandling,sourceincludes) - New receiver profiles (door lock, universal light, RGBW DALI)
CrossValidationConstraintmodel andcross_validationfield onFormSchema- Semantic parameter grouping from easymode
parameter_groupsmetadata with locale-aware labels
Bump homematicip-local-frontend
- HA 2026.3.0+ / 2026.4.0+ compatibility
- Removed frontend message enrichment — display names and message codes now provided by aiohomematic
- OpenCCU Messages tab: Inbox (accept devices), Service Messages (acknowledge), Alarm Messages (acknowledge) with badge counts
- Acknowledge only quittable messages in service and alarm message cards
Version 2.4.1 (2026-03-11)
What's Changed
Fixed
- Install mode availability: The install mode status WebSocket response now includes an
availablefield indicating whether each interface (HmIP-RF, BidCos-RF) actually supports install mode. Previously, unavailable interfaces were indistinguishable from inactive ones.
Config Panel
- Added auto-polling to Integration dashboard — refreshes every 5s during initialization, every 30s once stable
- Added auto-polling to OpenCCU dashboard — refreshes all data (system info, hub/service/alarm messages, signal quality, firmware, install mode) every 30s; loading spinner only shown on initial load
Dependencies
Bump aiohomematic to 2026.3.8
- Fix connection recovery after startup failure: Heartbeat timer now starts correctly after CCU reboots, preventing central from getting stuck in
FAILEDstate - PayloadProtocol: New protocol interface for
config_payload,info_payload, andstate_payloadproperties across devices, channels, data points, and central - Property
alt_namesupport: Property decorators accept optionalalt_namefor alternative payload keys (e.g.address→serial_number,firmware→sw_version) - Capabilities reclassified:
capabilitiesproperties moved frominfo_propertytoconfig_property(immutable device features)
Bump aiohomematic-config to 2026.3.2
- Add
device_active_profile_indexfield toClimateScheduleDatafor active profile index from device - Python 3.14 minimum, dropped Python 3.13 support
Version 2.4.0 (2026-03-05)
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/*)
Fixed
- Fix sensor entities not created for non-DpSensor data points: The
isinstance(data_point, DpSensor)filter added to excludeCombinedDataPointProtocolinstances also excludedCalculatedDataPointinstances (e.g.OperatingVoltageLevel/ Betriebsspannungspegel) and forced-sensorGenericDataPointinstances (e.g.LEVEL/ Ventilöffnungsgrad on HmIP-eTRV). The filter now excludes onlyCombinedDataPointProtocolinstead of requiring specific subclasses. - Fix CombinedDataPoint number entities not created on dynamic discovery: The
async_add_combined_numberdispatcher in the number platform listened onDataPointCategory.SENSORbutCombinedDpTimerAction(e.g. siren duration on HmIP-ASIR-2) has_category = DataPointCategory.ACTION_NUMBER. Changed the signal toACTION_NUMBERso 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-selectcompatibility with Home Assistant 2026.3.0+.
Dependencies
Bump aiohomematic to 2026.3.4
- DpActionNumber data points: New
DpActionFloatandDpActionIntegerfor write-only FLOAT/INTEGER parameters with MIN/MAX validation - DpActionBoolean and DpActionString data points: Complete the DpAction hierarchy for write-only BOOL/STRING parameters.
DpActionnow only handlesTYPE=ACTIONparameters - Type-correct custom data point fields: Replaced
DpActionwith specific types (DpActionFloat,DpActionInteger,DpActionBoolean,DpActionString) in custom data points based on pydevccu paramset TYPE - CombinedDataPoint for timer value+unit pairs: New
CombinedDpTimerActioncombines timer value + unit into a single writable entity with automatic unit conversion (seconds to S/M/H). ReplacesTimerField/TimerAccessorpattern. 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
- Fix health tracker central state sync:
sync_central_state()synchronizes cached central state after_evaluate_central_state()completes - Performance: Pre-sorted EventBus handlers, parallel device finalization/client refresh/interface operations,
weakref.finalizefor subscription cleanup,slots=Truefor dataclasses, optimized multi-channel group check
Bump aiohomematic-config to 2026.3.2
- Add
device_active_profile_indexfield toClimateScheduleDatafor active profile index from device - Add
device_iconfield toFormSchemawith icon filename from CCU device database - Add
descriptionfield toFormParameterwith Markdown-formatted parameter help text - Python 3.14 minimum: Dropped Python 3.13 support
Version 2.3.2 (2026-03-01)
What's Changed
Changed
- Backup agent stores only CCU backups: The backup agent no longer inherits from
LocalBackupAgentand no longer writes the HA backup tar file. It now extendsBackupAgentdirectly and only stores the CCU backup (.sbk) and metadata (.json) in the backup directory. The HA backup tar is managed by HA core. CCU backup failures (unavailable CCU, no data, connection error) now raiseBackupAgentErrorinstead of being silently logged, allowing HA to properly report per-agent backup failures. Orphaned metadata from previous versions is automatically cleaned up on load.
Config Panel
- Device icons: Device list, device detail, and channel config views now display device images from the CCU via proxy endpoint. Graceful fallback when icon is unavailable.
- Parameter help texts: Markdown-formatted help texts for ~165 MASTER paramset parameters (e.g.
BUTTON_LOCK,TEMPERATURE_OFFSET,VALVE_OFFSET) are now displayed below each parameter in the configuration panel - Device schedule fix: Schedule entries without target channels are now correctly displayed (dimmed). Removed frontend
target_channelsvalidation (CCU allowsTARGET_CHANNELS = 0). Auto-selects first device in schedule view when no matching device is found. - Bug fixes: Fixed
ha-sliderevent handling (firesvalue-changedinstead of nativechange), fixedha-selectevent leaking corrupting pending changes state, fixedha-selectdropdown closing the device schedule editor dialog, fixed editor dialog closing on save when validation errors exist
Dependencies
Bump aiohomematic to 2026.3.0
- Device icons: Extract device model to icon filename mapping from CCU's
DEVDB.tcl(525 entries). Newget_device_icon()inccu_translationsandiconproperty onDeviceexpose the filename relative toimg/devices/250/for downstream consumers. - Profile-specific parameter translations: Extract ~550 additional parameter translations from CCU easymode profile localization files (e.g.
COLOR_TEMP,MAX_COLOR_TEMP,SWITCH_DIRECTION), merged with lowest priority into the existing parameter translation output. - Parameter help texts: Extract and expose Markdown-formatted help texts for ~165 MASTER paramset parameters from the CCU WebUI. The HTML content is converted to Markdown, template variables are resolved, and the result is available via
get_parameter_help()and as adescriptionproperty onBaseParameterDataPoint. - Fix device link encoding: Fix garbled UTF-8 characters in device link names and descriptions retrieved via XML-RPC. The CCU stores user-defined strings as UTF-8 but the XML-RPC transport decodes them as ISO-8859-1, causing multi-byte characters to be misinterpreted (e.g.
ü→ü). Newfix_xml_rpc_encodingutility reverses the double-encoding. - Fix spurious optimistic update rollbacks:
apply_optimistic_value()was called before theis_state_change()check in the direct send path. When sending a value identical to the current state (e.g. turning off an already-off switch), the optimistic timer started but no RPC was sent to the CCU, making confirmation impossible. After 30 seconds the timer fired a spurious rollback with warning logs andOptimisticRollbackEvent. The state change check now runs first so optimistic tracking is only activated when an RPC call actually occurs. - Fix install mode: Use interface-specific client instead of primary client for install mode buttons. Previously, activating install mode for one interface (e.g. HmIP-RF) could incorrectly target another interface (e.g. BidCos-RF).
- Fix non-climate schedules with empty target channels: Schedules without explicit target channels were incorrectly filtered as inactive because
is_schedule_active()required both weekdays and target channels. The CCU handles default channel assignment when no explicit channels are configured, so the activity check now only requires at least one weekday.
Bump aiohomematic-config to 2026.3.1
- Add
device_active_profile_indexfield toClimateScheduleDatafor active profile index from device - Add
device_iconfield toFormSchemawith icon filename from CCU device database - Add
descriptionfield toFormParameterwith Markdown-formatted parameter help text - Use
get_parameter_help()from aiohomematic to populate help texts (locale-aware, with LINK prefix stripping) - Fix URL-encoded umlauts in profile names and descriptions (
%D6→Ö) by addingurllib.parse.unquote()beforehtml.unescape() - Fix profile matching to prefer most specific profile when multiple profiles match (highest fixed-constraint count wins)
- Resolve TCL
$variablereferences in easymode profile constraints (e.g.$NOP,$RAMP_ON) - Handle TCL
[subst {...}]wrappers in easymode profile constraint parsing - Follow TCL
sourceincludes to resolve profiles defined in shared files (e.g.profiles.tcl,profilesTunableWhite.tcl) - Add profiles for new receiver types:
AUTO_RELOCK_TRANSCEIVER,DOOR_LOCK_TRANSCEIVER,UNIVERSAL_LIGHT_RECEIVER_LSC,UNIVERSAL_LIGHT_RECEIVER_RGB(W),UNIVERSAL_LIGHT_RECEIVER_RGBW_DALI,UNIVERSAL_LIGHT_RECEIVER_TW
Version 2.3.1 (2026-02-26)
What's Changed
Fixed
-
Fix panel registration failure on integration reload: Separated static HTTP route registration from frontend panel registration. The static route (which cannot be removed by aiohttp) is now tracked independently and only registered once per HA process lifetime. Previously, reloading the integration or an automatic retry after a transient error would attempt to re-register the static route, causing a
RuntimeErrorthat cascaded into all platform setups failing with "has already been setup". -
Fix entity translations for LEVEL sensors: LEVEL sensors on thermostats and other devices (e.g. valve opening, cover level, light level, tilt level) now show translated names and correct icons again. The translation_key from entity descriptions was incorrectly filtered by a whitelist, causing both the local translation and the icon mapping from
icons.jsonto be lost. Added translations forpipe_level,cover_level,light_level, andcover_tiltin all locales.
Config Panel
- Migrated all UI elements to Home Assistant built-in components
- MASTER paramset: Unit/Value parameter pairs (e.g.
*_UNIT+*_VALUE) are now displayed as a single preset dropdown instead of two separate rows, matching the CCU behavior - 13 standard Homematic time presets (100ms–15 minutes) with localized labels (EN/DE)
- "Custom value" / "Wert eingeben" option reveals the original unit and value fields for manual entry
- Automatic detection: if current values match a preset, the preset is shown; otherwise custom mode with detail fields
Dependencies
Bump aiohomematic to 2026.2.27
- Fix channel-specific translation lookup: The
channel_typeparameter was not lowercased before lookup, causing channel-specific translations (e.g.maintenance|low_bat→ "Batterie") to never match when the channel type came from device descriptions in uppercase. Both lookup functions now normalizechannel_typeto lowercase. - Option value translations from options.tcl: ~65 new entries per locale for MASTER paramset dropdown parameters (
POWERUP_JUMPTARGET,LOGIC_COMBINATION,FLOOR_HEATING_MODE,HEATING_MODE_SELECTION,MIOB_DIN_CONFIG,DALI_EFFECTS, etc.). Parameters that previously showed raw VALUE_LIST values now display human-readable labels in the UI.
Version 2.3.0 (2026-02-23)
What's Changed
Breaking Changes (Schedule Services)
-
All schedule services have been migrated from entity-based to device-based. Services now use
device_idordevice_addressinstead of targeting entities. Existing automations using old service names must be updated. -
Renamed services:
get_schedule_simple_profile→get_schedule_profileget_schedule_simple_schedule→get_scheduleget_schedule_simple_weekday→get_schedule_weekdayset_simple_schedule→set_scheduleset_simple_schedule_profile→set_schedule_profileset_simple_schedule_weekday→set_schedule_weekday
-
Removed services:
set_schedule_active_profile/set_current_schedule_profile— useset_current_schedule_profilevia the configuration panel or update the profile through theset_schedule_profileservice instead
-
Renamed entity attributes (Climate & Week Profile Sensor):
active_profile→current_schedule_profile
Added
-
Week profile sensor entity: New
AioHomematicWeekProfileSensorentity for every device with schedule support. Exposes schedule metadata (schedule type, max entries, schedule data) as state attributes. Climate devices additionally expose temperature bounds and available profiles (P1-P6). -
Device-based schedule services: All schedule services now use
device_idordevice_addressfor device identification. This replaces the previous domain-specific (entity-based) approach with a unified API that works for all device types. -
Command throttle interval config option: Added
command_throttle_intervalto Advanced Options (config flow and options flow). Controls the minimum delay between consecutive device commands per RF interface to ensure smooth operation and prevent packet loss during bulk operations. Default:0.1s. Set to0.0to disable. -
Optimistic rollback events: Added
homematicip_local.optimistic_rollbackevent and logbook integration. When an optimistic state update is rolled back (e.g. CCU rejects the value or times out), the event is fired and displayed in the logbook with the parameter name and rollback reason. -
Command throttle diagnostics: Added per-interface command throttle statistics to the diagnostics export, including interval, queue size, throttled/critical/burst counts, and burst detection thresholds.
-
Improved error handling: Extended
handle_homematic_errorsdecorator to catchValueErrorandpydantic.ValidationError, converting them to user-friendlyHomeAssistantErrormessages -
device_active_profile_indexattribute: Climate and week profile sensor entities now expose the 1-based profile index as reported by the device hardware. This value is automatically synced from the device'sACTIVE_PROFILE(IP) orWEEK_PROGRAM_POINTER(RF) parameter. -
current_schedule_profileattribute: Climate and week profile sensor entities expose the currently selected schedule profile (P1–P6). Automatically synchronized with the device's active profile parameter. -
Climate entity subscribes to week profile changes: The climate entity now subscribes to
device.week_profile_data_pointupdates, ensuring schedule attributes (schedule_data,current_schedule_profile,available_profiles) update in real-time when the schedule changes on the device. -
Device configuration panel: New sidebar panel for editing device parameters, managing direct links, and configuring schedules — directly from the Home Assistant UI. Enable via Advanced Options. See documentation.
-
Panel translations: The configuration panel UI (sidebar title, section headers, parameter labels, enum values, toggle labels) is fully translated based on the Home Assistant language setting (German and English). Parameter filtering matches the CCU WebUI easymode behavior — only parameters with known translations are shown.
-
Database recording optimization: Added
_unrecorded_attributesto light, cover, switch, valve, siren, and week profile sensor entities. Static metadata attributes (e.g. available colors, channel positions, available soundfiles, schedule metadata) are now excluded from the HA recorder database, reducing storage usage. -
Paramset inconsistency repair issue: Displays a Home Assistant repair issue when aiohomematic detects missing parameters on HmIP/HmIPW devices after firmware updates. Informs the user about affected devices and recommends a factory reset via the CCU WebUI.
-
WRC6 Blueprint: Community blueprint for 6-button wall remote (HmIP-WRC6) now supports multiple devices and includes optional direct connection collision checks. Not backwards compatible — existing automations using this blueprint need to be reconfigured.
-
Translated interface display names: Interface names in config flow error messages and detection info now use translated, user-friendly names (e.g. "Homematic IP" instead of "HmIP-RF") with full German translation support. Warning messages for undetected interfaces are also translated.
-
Configuration panel: Session management: New server-side
ConfigSessionwith undo/redo support. Changes are tracked in-memory before writing to the device, enabling safe editing with validation feedback. -
Configuration panel: Export/Import: Export channel paramset configurations as JSON and import them to same-model devices. Enables configuration backup and transfer between identical devices.
-
Configuration panel: Copy paramset: Copy configuration between same-model device channels. Automatically filters to writable parameters present in the target.
-
Configuration panel: Change history: Persistent log of all paramset writes (manual, import, copy) with old/new value diffs. Stored via HA
Storewith a 500-entry FIFO limit. Retrievable and clearable per config entry. -
Configuration panel: Enhanced device list: Device list now includes cached maintenance data (UNREACH, LOW_BAT, RSSI_DEVICE, RSSI_PEER, DUTYCYCLE, CONFIG_PENDING) from channel 0, enabling the frontend to display device health without additional roundtrips.
-
Configuration panel: Direct links (Direktverknüpfungen): Browse, create, configure, and remove direct device-to-device links (peerings) for BidCos-RF, BidCos-Wired, and HmIP-RF interfaces. Includes link overview grouped by channel, link paramset editing via form schema, and a 3-step wizard for creating new links with compatible channel filtering.
-
Configuration panel: Link profiles & UX: Profile-based link configuration with easymode profiles from CCU (Expert, Dimmer ein/aus, Treppenlicht, etc.). Combined time selector for TIME_BASE/TIME_FACTOR pairs, SHORT/LONG keypress tabs, percent slider for LEVEL parameters with "Last value" support, and hidden jump targets/condition transitions in profile mode. Fully translated panel UI (EN/DE).
-
Configuration panel: Deep-linking: Navigate directly to a device, channel config, or link view via URL hash parameters. Supports browser back/forward navigation.
-
CCU backup agent: New
LocalBackupAgentthat appears in the HA backup UI as a backup storage location. HA backups can be stored in the CCU backup directory and managed (list, download, delete) via the standard backup UI. One agent is registered per CCU config entry (multi-CCU capable). Existing CCU.sbkpre/post-backup hooks are unchanged. -
Configuration panel: Schedule management: Schedule editing integrated into the configuration panel via WebSocket API. List devices with schedule support, read/write climate schedules per profile and weekday, set the active climate profile, and read/write generic device schedules — all from the panel UI.
-
Configuration panel: Reload device config: New WebSocket command to reload a device's configuration from the CCU without restarting the integration.
-
Device configuration URL deep-link: When the configuration panel is enabled, each device's
DeviceInfonow includes aconfiguration_urlthat links directly to the device detail view in the configuration panel. Clicking the link on a device's page navigates to the panel with the correct entry, device address, and interface preselected. -
config_entry_idattribute: Climate and week profile sensor entities with schedule support now expose aconfig_entry_idstate attribute, enabling automations and frontend cards to identify the associated config entry.
Changed
-
Schedule WebSocket commands opened to non-admin users: Removed
@require_adminrestriction fromget_climate_schedule,set_climate_active_profile, andget_device_scheduleWebSocket commands, allowing non-admin users to read and interact with schedule data. -
Admin-only restriction for writing Services: The services
put_link_paramset,set_schedule,set_schedule_profile,copy_schedule, andcopy_schedule_profilenow require admin privileges (async_register_admin_service). Read-only schedule services remain accessible to all users. -
Entity names from backend translations: Removed redundant local entity translations (binary_sensor, button, lock, number, select, sensor, switch, valve) from strings.json and translation files. Entity names are now provided by the backend CCU translation system via
translated_name. Only climate (preset modes) and event (keypress types) translations remain local. -
Config entry migration v16: Existing config entries are migrated to include
command_throttle_intervalwith the default value -
Configuration panel: Business logic extraction: Moved reusable logic from
websocket_api.pyto aiohomematic / aiohomematic-config:- Device listing now delegates to
ConfigurationCoordinator.get_configurable_devices()(was ~70 LOC inline) - Paramset copy now delegates to
ConfigurationCoordinator.copy_paramset()(was ~80 LOC inline) - Change history tracking now uses
ConfigChangeLogfrom aiohomematic-config (was custom inline implementation) - Removed
_LinkLabelResolverworkaround in favor ofFormSchemaGenerator(require_translation=False)
- Device listing now delegates to
Bug Fixes
-
Sub-device entity name deduplication: Fixed entity_id duplication when sub-devices are enabled. When the HA device name (channel group name) was a prefix of the backend's
translated_name, the device name appeared twice in the entity_id (e.g.binary_sensor.atbm_terrasse_atbm_terrasse_schaltausgang). The device name prefix is now stripped from the entity name, producing the correct entity_id (e.g.binary_sensor.atbm_terrasse_schaltausgang). -
Multi-instance WebSocket registration: Fixed duplicate WebSocket command registration error when multiple integration instances (config entries) are set up. Commands are now registered only once.
-
Link profile matching on read failure: Fixed active profile detection when link paramset read fails. Now correctly falls back to Expert (profile 0) instead of vacuously matching the first profile.
-
Configuration panel: Fix delete direct connection: Fixed deletion of direct device-to-device links (Direktverknüpfungen) not working correctly in the configuration panel frontend.
-
Multi-instance panel registration: Fixed the configuration panel disappearing when multiple CCU instances are configured and not all have the panel enabled. The panel is now kept registered as long as at least one config entry has it enabled, instead of letting the last-loaded entry's setting override all others.
Bump aiohomematic to 2026.2.25
Documentation (aiohomematic)
- Comprehensive documentation audit (2026.2.21): ~20 documentation files updated with corrected class names, API signatures, coordinator access patterns, event types, constant values, exception hierarchy, and sequence diagrams.
New Features (aiohomematic, continued)
- Schedule domain property for week profiles (2026.2.22):
schedule_domainproperty onWeekProfileDataPointandWeekProfileDataPointProtocolthat returns theDataPointCategory(switch, light, cover, valve) for non-climate schedule devices. Enables consumers like the Climate Schedule Card to distinguish schedule types and adapt their UI accordingly.
Architecture (aiohomematic)
- Architecture cleanup (2026.2.8): Query methods extracted from
CentralUnittoDeviceQueryFacade(central.query_facade). Support module split into submodules (support.address,support.file_ops,support.mixins). Protocol hierarchy reorganized with newinterfaces.centralandinterfaces.modelmodules. Optimistic update logic extracted tomodel.optimistic.
New Features (aiohomematic)
-
CCU translation extraction (2026.2.10): New script (
script/extract_ccu_translations.py) that extracts human-readable translations from the OpenCCU/RaspberryMatic WebUI for channel types, device models, parameter names, and parameter enum values. Supports local OCCU checkout and remote CCU fetch. Resolves two-level stringtable indirection, URL-decodes Latin-1 characters, and strips HTML from values. 2500+ translation entries across 8 JSON files (4 categories x 2 locales). -
CCU translations loader module (2026.2.10): New module (
aiohomematic/ccu_translations.py) providing typed lookup functions for CCU-sourced translations:get_channel_type_translation(),get_device_model_description(),get_parameter_translation(),get_parameter_value_translation(). All lookups are thread-safe and asyncio event loop safe (lazy initialization, then pure dict reads with zero I/O). -
Translated data point names (2026.2.11): Data points now expose translated
name_labelandname_label_with_indexproperties via the CCU translation system. Provides human-readable parameter names (e.g. "Temperature Offset" instead of "TEMPERATURE_OFFSET") for UI rendering. -
Value-only translation fallback (2026.2.13):
get_parameter_value_translationnow has a three-tier lookup: channel-specific → parameter-specific → value-only. The new value-only fallback builds an index of standalone enum values mapped to their shortest (most generic) translation, so shared values like weekday names resolve even for unknown parameters. -
Configurable channel filtering (2026.2.13):
get_configurable_channelsnow applies CCU-compatible filtering rules: channels must have the VISIBLE flag set and must not have the INTERNAL flag. WEEK_PROGRAM channels are excluded as they are handled by schedule cards. -
On-demand LINK paramset description fetching (2026.2.19):
get_paramset_description_on_demandonInterfaceClientandget_link_paramset_descriptiononConfigurationCoordinatorfor fetching LINK paramset descriptions directly from the backend when needed. LINK paramsets are not cached during device discovery, so this API enables direct link configuration without requiring a full device reload. -
LinkCoordinator for device direct link management (2026.2.20):
LinkCoordinatoras a high-level facade for listing, creating, and removing direct links between device channels. IncludesDeviceLinkandLinkableChanneldataclasses for enriched link data with translated channel type labels, device metadata, and link direction. Provides linkable channel discovery with role-based filtering. Exposed viaLinkFacadeProtocolonCentralUnit.link. -
Dimmer last-level tracking (2026.2.20):
last_levelproperty andset_last_levelmethod onCustomDpDimmerfor tracking the last non-default brightness level, enabling restore-to-previous-brightness workflows. -
Configurable device listing (2026.2.20):
get_configurable_devicesonConfigurationCoordinatorreturningConfigurableDevicedataclasses with resolved channel type labels, effective paramset keys (MASTER excluded when no writable visible parameters exist), andMaintenanceDatafrom channel 0. Exposed viaConfigurationFacadeProtocol. -
Paramset copy operation (2026.2.20):
copy_paramsetonConfigurationCoordinatorfor copying writable paramset values from a source channel to a target channel. Filters non-writable and missing parameters, returnsCopyParamsetResultwith copy/skip counts and old target values for change tracking. -
parameter_toolsmodule (2026.2.9): New standalone module providing pure-function utilities for working with parameter descriptions, independent of DataPoint instances. IncludesParameterHelper(flag/operation checks, enum resolution, step size calculation),ParameterValidator(value validation, type coercion), andParamsetDiff(type-aware paramset comparison). -
ConfigurationCoordinator(2026.2.9): New high-level facade for device configuration operations, exposed ascentral.configuration. Providesget_paramset_description(),get_all_paramset_descriptions(),get_paramset(),put_paramset(),get_configurable_channels(), andget_parameter_data(). -
Paramset consistency checker (2026.2.7): Automatically detects missing parameters on HmIP/HmIPW devices after firmware updates. The HmIPServer (crRFD) on the CCU sometimes fails to refresh its stored parameter data, creating a mismatch between
getParamsetDescription()(schema) andgetParamset()(actual values). Reports inconsistencies viaIntegrationIssueevents, log warnings, and diagnostics data. -
WeekProfileDataPoint (2026.2.6): Device-level data points that serve as the central interface for schedule data — both for climate and non-climate devices. One data point per device exposes schedule metadata, target channel mappings, and delegates read/write operations to the underlying WeekProfile. Schedule access has been removed from custom data points (
BaseCustomDpClimate,CustomDataPoint) and is now exclusively available viadevice.week_profile_data_point. -
Automatic profile sync from device (2026.2.6):
ClimateWeekProfileDataPointnow binds the device'sACTIVE_PROFILE(IP) orWEEK_PROGRAM_POINTER(RF) generic data point.current_schedule_profileupdates automatically when the thermostat switches profiles. -
Climate CDP notification on schedule change (2026.2.6): When schedule data changes (e.g., after
CONFIG_PENDING=Falsereload), the linked Climate CDP is automatically notified via an internal subscription, causing the HA Climate Entity to update. -
device_active_profile_indexproperty (2026.2.6): Returns the 1-based profile index from the device parameter (int | None). RF values are normalised from 0-based to 1-based. -
Optimistic updates (2026.2.4): Data points immediately update their state when
send_value()is called, then rollback if the CCU rejects the value or times out. FiresOptimisticRollbackEventon rollback. Configurable viaTimeoutConfig.optimistic_update_timeout(default: 30s). -
Command throttle (2026.2.4): Configurable per-interface rate limiting for outgoing device commands. Enforces a minimum delay between consecutive commands on the same RF interface to ensure smooth operation and prevent packet loss. Configurable via
TimeoutConfig.command_throttle_interval. -
Command priority queue (2026.2.4): Three-tier priority system for command throttling:
- CRITICAL (priority 0): Security commands (locks, sirens) bypass throttle entirely
- HIGH (priority 1): Interactive user commands use normal throttle
- LOW (priority 2): Burst detection automatically downgrades commands when thresholds are exceeded
-
CRITICAL queue purge (2026.2.4): When a CRITICAL command arrives (e.g. cover STOP), all pending queued commands for the same channel group are purged from the throttle queue, preventing queued movement commands from overriding STOP.
-
Domain-specific schedule validation (2026.2.3): Added validation for schedule data based on device category (SWITCH, LIGHT, COVER, VALVE). The validation enforces that only appropriate fields are used for each device type. Backward-compatible: validation is only applied when domain context is provided.
-
Schedule Pydantic Models (2026.2.1): New validated Pydantic models for automatic validation with clear error messages:
Climate devices:
ClimateSchedulePeriod: Validates temperature periods with starttime, endtime, temperatureClimateWeekdaySchedule: Validates daily schedules with base_temperature and periodsClimateProfileSchedule: Validates weekly schedules (MONDAY-SUNDAY)ClimateSchedule: Validates complete profiles (P1-P6)
Non-climate devices:
SimpleScheduleEntry: Validated schedule entry with weekdays, time, condition, target_channels, level, duration, ramp_timeSimpleSchedule: Container for multiple schedule entries keyed by group number (1-24)
Improved (aiohomematic)
-
CCU translation loading via pkgutil (2026.2.12): Replaced
Path.read_text()withpkgutil.get_data()for loading CCU translation files. Avoids blocking file I/O detection in Home Assistant's event loop. Translations are eagerly initialized at import time. -
Robust JSON parsing with stdlib fallback (2026.2.11): When
orjsonfails to parse JSON from CCU Rega scripts (e.g., due to non-standard literals likeNaNorInfinity), the parser now falls through to Python's stdlibjsonmodule. Extended control character sanitization to include DEL (U+007F). Diagnostic logging for JSON parse errors now includes exact codepoint, position, and surrounding context. -
Extraction script improvements (2026.2.13): Added PNAME.txt and easymode TCL file parsing, improved HTML entity decoding. Parameters: 841 → 1029 (+188), parameter values: 1256 → 1326 (+70). Removed 17 redundant custom translation entries now covered by improved extraction.
-
Empty parameter translation suppresses parameter name (2026.2.14): When a CCU parameter translation resolves to an empty string (
""), the parameter name is now omitted fromtranslated_nameandtranslated_full_name. This allows translations to explicitly suppress redundant parameter names when the channel name already conveys the meaning.None(no translation found) still falls back to the original untranslated name. -
Custom data point postfix translation (2026.2.16): Custom data points now translate their
data_point_name_postfixvia the CCU translation system, providing localized names (e.g. translating parameter postfixes likeBUTTON_LOCK) consistent with generic data points.
Bug Fixes (aiohomematic)
- Fix HmIP-HDM2 cover showing "unknown" state (2026.2.25): Devices without tilt support (e.g. HmIP-HDM2 in plissee mode) sent
LEVEL_2_STATUS = INVALIDfrom the CCU, which poisoned the cover entity'sis_status_validcheck and caused Home Assistant to show "unknown" state despite position control working.CustomDpBlindnow excludesLEVEL_2from relevant data points when its value isNone. - Use JSON-RPC for HmIP-RF install mode (2026.2.25): The Java-based HMIPServer does not support the XML-RPC
setInstallModemethod — it throwsIllegalArgumentException: argument type mismatchand returns an empty response. Install mode for HmIP-RF now uses the dedicated JSON-RPC methodsInterface.setInstallModeHMIPandInterface.getInstallModeinstead. BidCos-RF continues to use XML-RPCsetInstallModeas before. - Fix BidCos-RF install mode with device address filter (2026.2.25): The XML-RPC call for signature (3)
setInstallMode(Boolean, Integer, String)incorrectly sent 4 arguments(on, time, mode, address)instead of the documented 3 arguments(on, time, address). - Improve empty XML-RPC response handling (2026.2.25): Empty HTTP responses from the CCU (e.g. caused by server-side exceptions) are now caught as
ExpatErrorwith a specific warning log and raised asClientException, instead of falling through to the generic exception handler. - Handle empty XML-RPC responses for void CCU methods (2026.2.24): The CCU's
setInstallModemethod returns an empty HTTP response body instead of a proper XML-RPC response. The XML parser failed withExpatError: no element found. The proxy now detects empty responses and treats them as successful void returns, preventingClientExceptionwhen activating install mode. - Clear deleted schedule entries on CCU (2026.2.23):
DefaultWeekProfile.convert_dict_to_raw_schedulenow explicitly zeroes outWEEKDAYandTARGET_CHANNELSfor unused groups (1-24) that are not in the schedule. This ensures that deleted schedule entries are properly deactivated on the CCU, sinceput_paramsetonly updates keys that are sent. - LINK paramset parameter translations (2026.2.18):
get_parameter_translation()andget_parameter_value_translation()now stripSHORT_/LONG_prefixes and retry the base name, resolving translations for link parameters (e.g.SHORT_ON_LEVEL→ "Einschalthelligkeit (kurz)"). Added 138 parameter translations and 1158 value translations for link-specific parameters. - Fix delayed device creation failing on multi-interface devices (2026.2.18): When a new HmIP device was paired, the CCU sends
newDeviceson multiple interfaces (e.g. HmIP-RF and VirtualDevices) with the same device address._delayed_device_descriptionswas keyed by device address only, causing the first call to consume descriptions from all interfaces. Fixed by making_delayed_device_descriptionsinterface-aware. - Preserve channel postfix when translation suppresses parameter name (2026.2.17): When a parameter translation resolves to an empty string for a multi-channel data point, the channel disambiguation postfix (e.g.
ch13) was lost because the truthiness check treated""the same asNone. Changed to an identity check (is not None) so that an empty translation correctly yieldstranslated_name="ch13"instead of removing the name entirely. - i18n: Allow multiple CentralUnit instances (2026.2.15):
set_locale()is now idempotent — calling it again with the same locale is a no-op. When called with a different locale, it logs a message and keeps the original. Previously, creating a secondCentralUnitraisedRuntimeErrorbecauseset_locale()was strictly one-shot. - XML-RPC server race condition on multi-hub startup (2026.2.7): Fixed a race condition in
AsyncXmlRpcServer.start()that caused "address in use" errors when multiple central units started concurrently. The singleton server is now protected by anasyncio.Lock. - Optimistic rollback now clears unconfirmed value (2026.2.7):
_rollback_optimistic_value()now properly clears the unconfirmed value before restoring the previous confirmed value, preventing the unconfirmed value from undermining the rollback. - CallbackDataPoint ownership reset on unsubscribe (2026.2.6): When the owning
custom_idfully unsubscribes from a data point,_custom_idis now reset toNone. This allows re-registration with a differentcustom_id(e.g. after an entity_id rename in Home Assistant), preventingAioHomematicExceptionon resubscription. - i18n format specs (2026.2.5): Fixed
i18n.tr()silently dropping format specifiers like{interval:.3f}. Placeholders with format specs now render correctly in log messages. - JSON control character sanitization (2026.2.2): Fixed
JSONDecodeErrorwhen ReGa scripts return JSON containing unescaped control characters in device names or values. The sanitization is now selective - it only escapes control characters within JSON string values, preserving structural whitespace. - LINK Paramset Validation (2026.2.1): Fixed
put_paramsetwithcheck_against_pd=Truefor LINK paramsets. Validation is now automatically skipped for LINK calls to prevent "Parameter not found" errors. - Schedule Pydantic Models JSON Serialization (2026.2.1): Added
_JsonSerializableMixinto all schedule Pydantic models to support orjson/Home Assistant JSON serialization.
Breaking Changes (aiohomematic)
-
Schedule access moved to WeekProfileDataPoint (2026.2.6): All schedule methods and properties removed from
BaseCustomDpClimateandCustomDataPoint. Schedule operations are now exclusively available viadevice.week_profile_data_point. -
Climate profile property renames (2026.2.6): On
ClimateWeekProfileDataPointProtocol,active_profile→current_schedule_profile,active_schedule→current_profile_schedule,set_active_profile()→set_current_schedule_profile(). This avoids a naming conflict with the device parameterACTIVE_PROFILE.copy_scheduleandcopy_schedule_profileparameter renamed fromtarget_climate_data_pointtotarget_data_point. -
HA-Addon renamed to HA-App (2026.2.6):
SystemInformation.is_ha_addonrenamed tois_ha_app.
Changed (aiohomematic)
- Climate Schedule API unified to Pydantic models (2026.2.1): The old dual-format API (TypedDict + Pydantic) has been removed. All schedule methods now use Pydantic models exclusively.
- Rename
_temporary_valueto_unconfirmed_value(2026.2.7): All internal references renamed to clarify the role of the second value tier in the three-tier resolution model (optimistic → unconfirmed → confirmed). - DelegatedProperty expansion (2026.2.6): Replaced 56 boilerplate
@propertymethods withDelegatedPropertydescriptors across 23 files. Reduces repetitive delegation code while preserving runtime behavior. - ClimateWeekProfile: Simple schedule format now uses Pydantic models for automatic validation. The existing user-facing format remains unchanged, but input validation is now more robust with clear error messages.
- DefaultWeekProfile: Refactored schedule cache to use human-readable Pydantic models (
SimpleSchedule,SimpleScheduleEntry) instead of complex dictionary format.
Bump aiohomematic-config to 2026.2.10
New companion library providing device configuration utilities for the integration.
- Initial release (2026.2.1):
FormSchemaGeneratorfor UI form schemas,ParameterGrouperfor logical sections,LabelResolverfor i18n labels,ConfigSessionfor undo/redo change tracking,ConfigExporterfor JSON export/import,WidgetTypemapping. - Upstream CCU translations (2026.2.3): Replaced local translation files with CCU translations from aiohomematic. Added
channel_typeparameter toLabelResolver.resolve(),option_labelsonFormParameter,model_description/channel_type_labelonFormSchema,model/sub_modelparameters toFormSchemaGenerator.generate(). - Parameter filtering and section titles (2026.2.4): Locale-aware section titles in
ParameterGrouper(German translations). Parameters without CCU translation are filtered (matches CCU WebUI easymode behavior). VALUE_LIST parameters always getoption_labelswith humanized fallback. - Link parameter metadata & profiles (2026.2.5):
link_param_metadatamodule for classifying LINK parameters (SHORT/LONG grouping, time pair detection, category classification).ProfileStorefor loading easymode profile definitions from CCU-extracted JSON.FormSchemaGeneratorenriches LINK parameters with metadata viaenrich_link_metadataflag. Time preset tables for on/off, delay, and ramp durations. - Change history module (2026.2.6):
ConfigChangeLogclass with FIFO-capped storage, filtering, and serialization.ConfigChangeEntryfrozen dataclass for immutable change records.build_change_diff()helper for computing old/new value diffs. - Async profile loading (2026.2.7):
ProfileStore.get_profiles()andProfileStore.match_active_profile()are now async. Fixed blockingread_text/opencalls inside the async event loop (usesasyncio.to_thread). Breaking: callers must now await these methods. - Schedule facade module (2026.2.8):
schedule_facademodule for schedule management in the configuration panel.list_schedule_devices()for discovering devices with schedule support.get_climate_schedule()/set_climate_schedule_weekday()/set_climate_active_profile()for climate schedules.get_device_schedule()/set_device_schedule()for generic device schedules. - Schedule domain from upstream (2026.2.9): Use
schedule_domainproperty from aiohomematic instead of local heuristic. Removed_get_schedule_domain()helper andScheduleTypeimport fromschedule_facade. - Device-level change history filtering (2026.2.10):
ConfigChangeLog.get_entries()now uses prefix matching for thechannel_addressfilter, so querying by device address returns history entries for all channels of that device.
Version 2.2.4 (2026-02-01)
What's Changed
Bug Fixes
- Program Button Naming: Fixed regression where CCU program button entities were named "P Taste" instead of the actual program name. The issue was caused by the
HUB_BUTTONdefault entity description using a generic translation key that overwrote the program name. - Hub Entity Naming: Fixed regression where hub entities (sysvars, programs) lost their instance name prefix in entity_id (e.g.,
switch.otto_sv_anwesenheitbecameswitch.anwesenheit). The fix ensures hub entities don't use a translation_key, allowing the custom name property to properly add "SV "/"P " prefixes.
Documentation
- README: Added "Companion Cards" section featuring the Climate Schedule Card for visual editing of thermostat week profiles.
Bump aiohomematic to 2026.2.0
Bug Fixes
- Device Re-Pairing (2026.2.0): Fixed devices not appearing after factory reset and re-pairing. When a device was reset and re-paired with the same address, channel descriptions were not added to cache because only the parent device address was checked.
- EventBus Subscription Leak (2026.2.0): Fixed subscription leak for
DeviceLifecycleEventwhen stopping CentralUnit, eliminating "LEAKED_SUBSCRIPTION" warnings during shutdown. - CUxD/CCU-Jack Interface Registration (2026.1.57): Fixed devices incorrectly assigned to
Interface.BIDCOS_RFinstead of their actual interface (e.g.,Interface.CUXD). This causedget_data_points(interface=Interface.CUXD)to filter out all CUxD devices. Interface is now properly registered during device creation. - CUxD/CCU-Jack Data Polling (2026.1.56): Fixed data not updating after startup for polled interfaces. The
refresh_data_point_data()method was using hardcodedCallSource.HM_INITwhich caused data points withignore_on_initial_loadto be skipped during periodic polling. - OperatingVoltageLevel Battery Calculation (2026.1.55): Fixed battery percentage calculation to use user-configured
LOW_BAT_LIMITvalue instead of default. This fixes incorrect battery readings when users have customized the low battery threshold.
Test Infrastructure
- OpenCCU Test Fixtures (2026.1.55): Added comprehensive test infrastructure for VirtualCCU with OpenCCU backend mode support, including device lifecycle event handling and full 397-device central unit tests.
Version 2.2.3 (2026-01-29)
What's Changed
New Features
- Binary Sensor Entities: Added entity descriptions for new binary sensors:
- HmIP-SRH & HM-Sec-RHS: Added
WINDOW_OPENbinary sensor for rotary handle sensors (window open detection) - HmIP-SWSD: Added
SMOKE_ALARMandINTRUSION_ALARMbinary sensors for smoke/intrusion detector
- HmIP-SRH & HM-Sec-RHS: Added
Documentation
- README Shortened: Reduced README.md from ~1960 lines to ~140 lines. Detailed documentation moved to the new documentation site at sukramj.github.io/aiohomematic. README now contains quick start links, installation instructions, and references to full documentation.
Bug Fixes
- Fix SSDP Import for Home Assistant 2025.2+: Updated
SsdpServiceInfoimport in tests from deprecatedhomeassistant.components.ssdpto new locationhomeassistant.helpers.service_info.ssdp.
Internal
- Type Safety Improvements: Added
@overridedecorator to 100+ methods across all entity platforms to explicitly mark methods overriding parent class methods. AddedFinalannotation to 15EVENT_*constants inconst.py. These changes improve code clarity and enable better static analysis.
Bump aiohomematic to 2026.1.54
New Features
- HmIP-WRC6-230 Support (2026.1.53): Added support for HmIP-WRC6-230 (Wall-mount Remote Control 6-button 230V) as a fixed color light device.
- Derived Binary Sensors (2026.1.52): A registry-based system now enables creation of binary sensors derived from enum data points. New calculated parameters include
INTRUSION_ALARM,SMOKE_ALARM, andWINDOW_OPEN. Examples: HmIP-SRH/HM-Sec-RHS window handle sensors now provide aWINDOW_OPENbinary sensor (activated when TILTED or OPEN), and HmIP-SWSD smoke detectors provideINTRUSION_ALARMandSMOKE_ALARMbinary sensors (activated when alarm active). - Enhanced Data Point Validity (2026.1.52): Comprehensive validation for data points now includes type checking, range validation, and proper None handling. Added
has_valid_value_typeandis_value_in_rangeproperties to BaseParameterDataPoint. STATUS parameter events are automatically subscribed and processed. Type-specific validation rules for each parameter type (FLOAT, INTEGER, BOOL, ENUM, etc.) with warning logs for out-of-range values received from CCU. - Contract Tests for Regression Prevention (2026.1.51): Added extensive contract testing infrastructure with 500+ tests specifically designed to prevent regressions during AI-assisted refactoring. Coverage includes backend capabilities, state machines, connection recovery, event systems, lifecycle methods, enums, configuration classes, exception hierarchies, protocol interfaces, hub entities, subscription APIs, and device/channel protocols.
Changed
- Reduced Validation Logging (2026.1.54): Log level for data point validation messages (value range min/max and enum index/value checks) reduced from WARNING to DEBUG to reduce log noise.
- Pydantic Model Conversions: Multiple configuration classes migrated to Pydantic
BaseModelwith frozen immutability includingTimeoutConfig,InterfaceConfig,CentralConfig,DeviceConfig,ProfileConfig, andBackendCapabilities. - Type Safety Improvements: Added
@uniquedecorator to 70+ enum classes to prevent accidental duplicate values,@overridedecorator to explicitly mark overridden methods, andFinalannotations to key constants.
Bug Fixes
- Fix Client Reconnection from INITIALIZED State: Fixed an issue where clients stuck in INITIALIZED state couldn't be reconnected. The state machine now permits
INITIALIZED → DISCONNECTEDtransitions enabling recovery. - Fix JSON Parsing Control Characters: Fixed
JSONDecodeErrorby sanitizing JSON-RPC responses, escaping control characters (U+0000 to U+001F) to proper\uXXXXsequences.
Version 2.2.2 (2026-01-25)
What's Changed
Bug Fixes
- Fix Interface Port Resolution: Interface ports are now correctly resolved using aiohomematic's default port mapping when no port is explicitly configured. JSON-RPC-only interfaces (CUxD, CCU-Jack) now correctly pass
Noneinstead of a port number, as they don't use XML-RPC ports.
Bump aiohomematic to 2026.1.50
Changed
- Port Handling Refactoring for JSON-RPC Interfaces:
InterfaceConfig.portchanged frominttoint | Nonefor cleaner semantics. JSON-RPC-only interfaces (CUxD, CCU-Jack) now properly useNoneinstead of the workaround value0. This provides improved type safety and eliminates validation workarounds throughout the codebase.
Bug Fixes
- Fix Hub Data Not Refreshing After Reconnection: Hub data (System Update, Programs, Sysvars) is now refreshed after successful reconnection. Previously, stale information persisted—for example, "Update available" would display even after the CCU completed firmware updates during disconnection.
- Fix Client Recovery for Secondary Interfaces: Recovery for CUxD and CCU-Jack clients now succeeds when other clients already exist. The issue stemmed from attempting to create all clients simultaneously; the fix creates the specific failing interface client directly instead of recreating all clients.
- Fix Clients Stuck in INITIALIZED State: Clients stuck in
INITIALIZEDstate (initialized but never connected) can now recover. The state machine now permitsINITIALIZED → DISCONNECTEDtransitions, enabling proper state reset for reconnection attempts. - Fix JSON-RPC Port Handling: TCP pre-flight checks now correctly skip interfaces with
Noneport. CUxD and CCU-Jack rely on JSON-RPC via central ports (443/80) rather than individual XML-RPC ports. A new JSON-RPC port pre-flight check verifies service availability before client creation.
Version 2.2.1 (2026-01-25)
What's Changed
Bump aiohomematic to 2026.1.48
Bug Fixes
- Fix XML-RPC Authentication Headers Not Sent with TLS: Fixed a critical bug where HTTP Basic Authentication headers were not being sent when TLS was enabled. This caused all XML-RPC calls to fail with
ProtocolError: Unauthorizedwhen CCU authentication was enabled. The fix passes authentication headers directly to the transport classes. - Fix Authentication Check Fails for Non-Admin Users: Fixed a regression introduced in 2026.1.41 where users without ADMIN rights on the CCU would fail to connect. When
CCU.getAuthEnabledreturns "access denied (ADMIN needed 2)", this proves authentication is enabled (otherwise no permission check would occur). The method now correctly returnsTrueinstead of propagating the exception.
Version 2.2.0 (2026-01-23)
What's Changed
Breaking Changes
- System Update Entity Removed for HA-Addon: The System Update entity is no longer created for Home Assistant Add-on deployments. Users with existing orphaned entities from previous versions can manually delete them via Home Assistant's entity management.
Bug Fixes
- Fix Translation Error When Skipping Backend Detection: Fixed "The intl string context variable 'detected_interfaces' was not provided" error when using the "Skip automatic backend detection" option in the config flow. The interface step now provides a default placeholder value when detection results are not available.
- Fix Missing device_class for Update Entities: Update entities for device firmware and hub updates now correctly report
device_class: firmware. Previously the device_class was not set despite having an entity description rule defined.
Internal
- Remove Unused UpdateEntityDescription Defaults: Removed
UpdateEntityDescriptionentries forUPDATEandHUB_UPDATEfromdefaults.pysince Update entities don't use the generic entity helper system. Thedevice_classis now set directly on the entity classes. - Migrate Event Platform to ChannelEventGroup: Migrated the event platform from individual
GenericEventsubscriptions to the newChannelEventGroupProtocolpattern. Event groups are now virtual data points bound to channels, providing unified subscription management viasubscribe_to_data_point_updated(). This simplifies subscription handling (single subscription per entity instead of one per event type) and aligns with the standardCallbackDataPointProtocolpattern. - Config Entry Migration v14: Added entity registry migration for event entities to update unique_ids from the old channel-based format (
homematicip_local_{channel_unique_id}) to the new event_group-based format (homematicip_local_event_group_homematic.keypress_{channel_unique_id}). This ensures existing event entities are preserved when upgrading from version 2.1.2. - Config Entry Migration v15: Added migration to remove deprecated
OptionalSettingsvalues from config entry data. RemovesENABLE_LINKED_ENTITY_CLIMATE_ACTIVITY(now always enabled) andUSE_INTERFACE_CLIENT(legacy client removed) that were removed in aiohomematic 2026.1.44. - Local Validators: Implemented local voluptuous validators (
validate_channel_no,validate_wait_for,validate_device_address,validate_channel_address,validate_paramset_key) insupport.pyto replace validators removed from aiohomematic after its migration to Pydantic.
Bump aiohomematic to 2026.1.46
New Features
- HA-Addon Detection: Automatically detects when running as a Home Assistant Add-on by checking for
HM_RUNNING_IN_HAorSUPERVISOR_TOKENenvironment variables. A newis_ha_addonfield inSystemInformationindicates the backend's execution context. - System Update Handling for HA-Addons: The
has_system_updateproperty now returnsFalsewhen operating as an HA-Addon, preventing unnecessary system update entities from being created. Thefirmware_update_triggercapability is similarly disabled, since the HA Supervisor manages all updates within that environment. - Free-Threaded Python Support: Added compatibility with Python 3.14 free-threaded builds (no GIL) through a new compatibility module. Includes detection functions and a conditional JSON backend that automatically selects orjson on standard builds while falling back to stdlib json on free-threaded versions.
- CentralRegistry for Thread-Safe Instance Management: New thread-safe registry replaces the previous module-level dictionary for managing CentralUnit instances, employing a copy-on-read pattern safe for both GIL-enabled and free-threaded Python environments.
- orjson Now Optional: orjson is no longer a required dependency. Install via
pip install aiohomematic[fast]for enhanced JSON serialization on standard Python builds. All JSON operations now use a compatibility module that automatically selects the best available backend. - Paramset Description Patching System: Added a generic mechanism to correct faulty
paramset_descriptionsfrom the CCU. The system applies device-specific corrections during data ingestion using declarative patch definitions. Initial patch corrects HM-CC-VG-1 channel 1SET_TEMPERATUREMIN/MAX values (4.5/30.5) instead of the incorrect CCU-provided values. - translation_key for Data Points: All data point types now provide a consistent
translation_keyproperty for translations. This includes hub sensors, metrics sensors, inbox, install mode, device/system updates, and calculated data points. - Startup Resilience for Authentication Errors: Added a 3-stage validation approach for improved startup reliability: TCP pre-flight check validates port availability, client creation & RPC validation verifies backend communication, and retry with exponential backoff handles transient errors before failing. New
TimeoutConfigparameters:startup_max_init_attempts(default: 5),startup_init_retry_delay(default: 3s), andstartup_max_init_retry_delay(default: 30s). - Device Availability Events for Forced Availability: The
force_device_availabilitymethod now firesDeviceLifecycleEventType.AVAILABILITY_CHANGEDevents, ensuring the integration receives proper notifications when device availability is manually changed. - SensorValueMixin: New mixin class consolidating duplicated value transformation logic between
DpSensor(generic) andSysvarDpSensor(hub). Provides standardized handling for value list lookup, converter functions, and string length validation.
Changed
- ChannelEventGroup as Virtual Data Point: Refactored
ChannelEventGroupfrom a helper class to a virtual data point bound to the Channel. Event groups now extendCallbackDataPointand follow the standard subscription pattern withsubscribe_to_data_point_updated(). See migration guide:docs/migrations/channel_event_group_migration_2026_01.md. - Replace Voluptuous with Pydantic: Migrated all validation from voluptuous to Pydantic for improved type safety and validation. Address validation patterns (
DEVICE_ADDRESS_PATTERN,CHANNEL_ADDRESS_PATTERN) remain available as compiled regex patterns inaiohomematic.const. - Async RPC Server is Now Standard: The async XML-RPC server (using aiohttp) is now the only RPC server implementation. The legacy thread-based XML-RPC server has been removed along with
OptionalSettings.ASYNC_RPC_SERVER. - InterfaceClient is Now Standard: The legacy client implementations (
ClientCCU,ClientJsonCCU,ClientHomegear) and handler classes have been removed.InterfaceClientwith the Backend Strategy Pattern is now the only implementation.OptionalSettings.USE_INTERFACE_CLIENThas been removed. - Linked Entity Climate Activity Always Enabled: The
OptionalSettings.ENABLE_LINKED_ENTITY_CLIMATE_ACTIVITYfeature flag has been removed - linked entity climate activity is now always enabled.
Bug Fixes
- Automatic Reconnection After Startup Failures: Fixed scenarios where the backend was unavailable during Home Assistant startup. The integration previously remained in FAILED state indefinitely. Now the heartbeat timer automatically activates when central transitions to FAILED state during startup, with recovery attempts every 60 seconds (configurable). Port resolution for TCP checks falls back to interface configuration when client doesn't exist.
- Cache Schema v3: Cache schema bumped to v3 with automatic rebuild when the schema version changes.
- Legacy Cache Migration for Climate Schedules: Fixed
ValidationException: Time 360 is invaliderror when starting with cached schedule data. The issue was old cachedendtimevalues stored as numeric strings ("360") instead of integers or time strings. A new helper handles all three formats. - Coordinated Cache Clearing on Version Mismatch: Fixed issue where only one cache was cleared on schema version change. Now both device and paramset description caches are cleared together, preventing incomplete rebuilds.
- Sound Player Soundfile Default Handling: Fixed
turn_on()to use the entity's current value or default whensoundfileis not provided, instead of always defaulting to"INTERNAL_SOUNDFILE". - Backend Detection Timeout Support: Fixed
TypeError: ServerProxy.__init__() got an unexpected keyword argument 'timeout'. Introduced custom transport classes for proper socket timeout handling.
Version 2.1.2 (2026-01-14)
What's Changed
New Features
- New Services for Configuration Reload: Added two new admin services to reload device and channel configurations from the CCU without restarting Home Assistant:
reload_device_config: Reloads device configuration (accepts device_id or device_address)reload_channel_config: Reloads channel configuration (accepts device_id or device_address + channel number)
Bug Fixes
- Fix Backend Detection Hanging with Non-Standard Ports: Fixed issue where backend detection would hang indefinitely when using non-standard HTTP/HTTPS ports (e.g., port 2080 instead of 80). Added 20-second timeout wrapper with graceful degradation - if detection times out or fails, the config flow now proceeds directly to manual interface configuration instead of blocking. Users can also skip backend detection entirely via new checkbox in the connection step (useful when non-standard ports are known upfront). Resolves #2804.
- Fix Translation Error on Duplicate CCU Configuration: Fixed "The intl string context variable 'serial' was not provided" error when attempting to add a CCU instance that is already configured. The abort message now correctly displays the serial number.
- Fix Unwanted Integration Reload on Action Select Change: Action select values (e.g., siren tones, light patterns) are now stored in a separate storage file instead of the config entry. Previously, changing an action select value triggered
async_update_entry()which caused a full integration reload via theupdate_listener. This fix eliminates unnecessary restarts when selecting different tones or patterns. Existing values are automatically migrated from config entry to the new storage file. - Fix Options Flow Not Persisting Changes: Configuration changes made in the Options Flow (e.g., enabling SysVar scan) were lost after Home Assistant restart. The issue was caused by a shallow copy of config entry data that shared nested dictionary references with the original. Home Assistant's change detection saw no difference and skipped saving. Now uses
deepcopyto ensure complete independence. - Fix
homematic.device_availabilityEvent Not Fired: The event was defined but never actually fired when device availability changed. This broke all blueprints that relied on this event (persistent notifications, device reactivation). Now fireshomematic.device_availabilitywith full event data (device_id, name, address, interface_id, model, unavailable status) whenDeviceLifecycleEventType.AVAILABILITY_CHANGEDis received. - Fix Device Services Failing for Sub-Devices: Services like
force_device_availabilityfailed with "No device found" for sub-devices (devices withenable_sub_devicesoption). The identifier parser incorrectly included the group suffix (e.g.,-1) in the interface_id, causing client lookup to fail. Now correctly strips the group suffix when parsing sub-device identifiers.
Internal
- Migrate to Capabilities Pattern: Updated all
supports_*properties to the new unified Capabilities pattern from aiohomematic. Static capabilities now usecapabilities.*(e.g.,capabilities.brightness,capabilities.open), while dynamic properties usehas_*(e.g.,has_hs_color,has_effects). This affects light, lock, siren, and MQTT entities. - Config Entry Version 13: Added migration to remove
action_select_valuesfrom config entry data. - Default Entity Descriptions for Update Entities: Added default descriptions with
UpdateDeviceClass.FIRMWAREforUPDATEandHUB_UPDATEdata point categories. - Interface Connectivity Binary Sensors: Added entity description rule with
BinarySensorDeviceClass.CONNECTIVITYfor the new hub-level interface connectivity sensors.
Bump aiohomematic to 2026.1.38
New Features
- Configurable Backend Detection Timeouts: Backend detection timeouts are now managed centrally through
TimeoutConfiginstead of hardcoded constants. Two new configurable fields:backend_detection_request: float = 5.0— Timeout for individual XML-RPC/JSON-RPC requestsbackend_detection_total: float = 15.0— Total timeout for complete detection process
- Socket-Level Timeout for XML-RPC Connections: Added
timeoutparameter to XML-RPC connections to prevent indefinite hangs when connecting to unreachable hosts. Default socket timeout of 5s during detection, while normal RPC operations maintain backward compatibility. - Smart Early Abort on Fatal Connection Errors: Backend detection now distinguishes fatal errors (ETIMEDOUT, EHOSTUNREACH, ENETUNREACH) from transient errors (ECONNREFUSED). Fatal errors trigger immediate abort, reducing detection time on unreachable hosts from ~30s to ~5s (6× improvement).
- Service Methods for Manual Configuration Reload: New
Device.reload_device_config()andChannel.reload_channel_config()methods enable external cache updates for scenarios where CONFIG_PENDING events are unreliable (particularly for classic BidCos devices).
Bug Fixes (from 2026.1.37)
- Fix Schedule Validation Error on Device Initialization: Fixed
ValidationException: Time 360 is invaliderror occurring when heating group devices (VirtualDevices interface) are initialized. Theidentify_base_temperature()function incorrectly assumed all endtime values in the schedule cache are formatted strings ("06:00"), but during initial cache loading they can be raw integers (360 minutes) directly from the CCU. The function now handles both integer and string formats by checking the type before conversion. This fixes climate entity creation failures and recurring errors on Home Assistant startup. - Fix Type Safety for ScheduleSlot: Updated
ScheduleSlotTypedDict to correctly declareendtime: str | intinstead ofendtime: str. This reflects the actual behavior where the CCU always returns integers (minutes since midnight) while internal conversion may use string format. - Fix Schedule Validation Error for HM-CC-VG-1 Heating Groups: The CCU sometimes returns ENDTIME values as strings ("360") instead of integers (360). The
convert_raw_to_dict_schedule()function now handles both formats by checking if string values are numeric before conversion. - Fix CUxD/CCU-Jack Unnecessary Reconnects via MQTT: Fixed false positive connection loss detection for CUxD and CCU-Jack interfaces when used with Homematic(IP) Local MQTT bridge. These interfaces use JSON-RPC without ping/pong support and receive events via MQTT, causing callback timeout checks to incorrectly trigger reconnects every ~4 minutes. Both
is_callback_alive()andis_connected()now checkping_pongcapability to skip callback timeout validation for MQTT-based interfaces. - Fix Empty Paramset Descriptions Not Being Cached: Fixed issue where paramset descriptions that return an empty dict
{}(valid response) were incorrectly treated as missing. HmIP base device addresses and some channel types return empty MASTER or VALUES paramsets which is valid behavior. The fix usesis not Nonecheck instead of truthy check, ensuring empty dicts are properly cached. - Fix Device Availability Not Reset After CCU Restart: All devices remained unavailable after CCU restart because the availability reset only triggered when
old_statewas in(DISCONNECTED, FAILED, RECONNECTING), but the final transition hasold_state=CONNECTING. AddedCONNECTINGto the list of states that trigger availability reset. - Fix Race Condition in Client State Event Processing: Events from the EventBus may be processed out of order (e.g.,
disconnectedevent processed afterconnectedevent). Now checks the current client state before marking devices unavailable, preventing incorrect availability changes when the client has already recovered. - Fix Connectivity Sensors Not Updating During CCU Restart: Interface connectivity binary sensors now subscribe to
ClientStateChangedEventfor immediate reactive updates instead of only updating during scheduled refresh cycles. - Fix CuXD Devices Not Created When Paramset Descriptions Missing: When device_descriptions were already cached but paramset_descriptions were missing (e.g., from a previous interrupted run), devices were skipped. Now properly detects missing paramset_descriptions and ensures both caches stay synchronized.
- Fix Temperature Parameter Formatting in Schedules: Temperature values in simple weekly schedules were sent as integers to the CCU, causing them to be silently ignored. The CCU requires temperature parameters as floats. Explicit float conversions are now applied to all schedule temperature values.
- Fix Cache Persistence Race Condition: Cache is now automatically persisted when data fetch completes, preventing paramsets from being lost if a shutdown occurs before the scheduled save.
- Fix Device Creation with Incomplete Data: Added validation ensuring all required paramsets exist in cache before device creation proceeds. Incomplete data now triggers an
INCOMPLETE_DEVICE_DATAintegration issue event instead of silently creating broken devices. - Fix Parameter Type Conversion for HM-CC-VG-1: Fixed TypeError when calling
put_paramseton HM-CC-VG-1 device. The device returns MIN/MAX values as strings instead of numbers, which now undergo proper numeric conversion before comparison.
Changed
- Schedule Cache Now Uses Pessimistic Update Strategy: Climate schedule cache (
ClimateWeekProfileandDefaultWeekProfile) is no longer updated optimistically when callingset_schedule(),set_profile(), orset_weekday(). The cache is now updated only after receivingCONFIG_PENDING = Falsefrom the CCU viareload_and_cache_schedule(). This ensures the cache always reflects the actual CCU state, eliminating race conditions and inconsistencies. The cache remains essential for performance (avoiding RPC calls on reads) and event optimization (publishing events only when data changes).
New Features
- Faster Connectivity Detection: Improved connection loss detection from ~240s to ~20s with new
ping_timeout(10s) andconnectivity_error_threshold(1). Devices are now marked unavailable immediately when client state changes to DISCONNECTED/FAILED. System health score now correctly shows 0% before connections are established. - Interface Connectivity Binary Sensors: New hub-level binary sensors showing per-interface connectivity status (HmIP-RF, BidCos-RF, etc.). Shows ON when connected and operational, OFF when disconnected or failed. Always available since its purpose is to show the connection state itself.
- Schedule Support for HM-CC-VG-1: Enabled schedule functionality for the HM-CC-VG-1 virtual group device.
- Type Conversion for Read Operations: New optional
convert_from_pdparameter across client implementations automatically converts CCU values to correct types (INTEGER, FLOAT, BOOL, ENUM, STRING) based on ParameterDescription. - WeekProfile Automatic Type Conversion: Both
ClimateWeekProfileandDefaultWeekProfilenow useconvert_from_pd=Truewhen fetching schedules, ensuring ENDTIME values return as integers and TEMPERATURE as floats directly from the client layer.
Version 2.1.1 (2026-01-09)
What's Changed
Bug Fixes
- Fix Unwanted Config Entry Reloads: Fixed integration restarting whenever a device's availability changed. The device registry's
disabled_byfield was being updated on availability changes, which Home Assistant interprets as requiring a config entry reload. Entity availability is now handled exclusively through the entity'savailableproperty, which is the correct approach for transient state changes. - Fix False Positive Duplicate Key Warnings: Entity description validation no longer warns about rules with the same key when they have different filtering criteria (device filters, priorities, etc.). These are valid override patterns, not duplicates.
Bump aiohomematic to 2026.1.27
Bug Fixes
- Fix State Machine Transition Error on Unload: Allow transition from
FAILEDtoDISCONNECTEDstate. This fixesInvalidStateTransitionErrorwhen unloading the integration while a client is in failed state - Fix Leaked EventBus Subscriptions on Central Stop: Six internal subscription leaks have been fixed across
HubCoordinator,ClientCoordinator,CacheCoordinator,EventCoordinator,CentralUnit, and various client classes. The number of leaked subscriptions logged at shutdown has been reduced from ~7800 to zero - Fix Empty Device List Treated as Error: The
initialize_proxy()method now correctly handles empty device lists from interfaces that don't support RPC callbacks. Previously, an empty device list was incorrectly treated as a connection failure - Fix Ping/Pong Mismatch Issue Not Clearing: The
ping_pong_mismatchrepair issue is now correctly removed when the connection recovers (mismatch_count drops to 0). Previously, the issue remained visible even after recovery due to a type comparison mismatch - Clear Stale Issues on Startup: Transient repair issues (
ping_pong_mismatch,pending_pong_mismatch,unknown_pong_mismatch,fetch_data_failed,interface_not_reachable,xmlrpc_server_receives_no_events) are now automatically deleted when the integration starts. These issues from previous sessions are no longer relevant after a restart - Fix Persistent Repair Issues After CCU Restart: Fixed central state getting stuck in "recovering" after successful recovery. A race condition in
ConnectionRecoveryCoordinatorcaused the state transition check to run before the interface was removed from active recoveries, preventing the transition to "running" state. Also adds immediate connection repair notifications when recovery starts and clears them when recovery succeeds - Fix Recovery Stuck in Infinite Retry Loop: After CCU restart, the XML-RPC proxy's HTTP connection could enter an inconsistent state causing
system.listMethodscalls to fail silently. The proxy transport is now reset before RPC availability checks during recovery
Internal
- Migrate to Strongly Typed Events: Updated to use
IntegrationIssueTypeandIntegrationIssueSeverityenums instead of string comparisons for better type safety and IDE support
Version 2.1.0 (2026-01-08)
What's Changed
Bug Fixes
- Home Assistant 2026.1.0+ Compatibility: Fixed "Detected blocking call to import_module" error that prevented the integration from loading. All blocking I/O operations during central unit creation now run in a thread pool executor.
Internal
- Async Central Creation: Migrated
ControlConfig.create_central(),check_config(),create_control_unit(), andcreate_control_unit_temp()to async methods - Factory Pattern for ControlUnit: Added
BaseControlUnit.async_create()class method for async instantiation
Bump aiohomematic to 2026.1.20
New Features
old_valueandnew_valuefields inDataPointStateChangedEvent: External consumers can now track what changed without maintaining their own previous stateAvailabilityInfodataclass: New unified view of device availability bundling reachability, battery, and signal informationDevice.availabilityproperty: ReturnsAvailabilityInfoproviding a unified view of device connectivity and health status- Consumer API documentation: New
docs/consumer_api.mdguide for external consumers like Matter bridges
Internal
- Eliminate all remaining lazy imports: All
noqa: PLC0415markers have been removed from production code. Circular imports have been resolved through module restructuring - Remove unnecessary delayed imports: Moved imports to top-level where no circular dependency exists
Version 2.0.6 (2026-01-08)
What's Changed
Bug Fixes
- Device Auto-Confirmation After Cache Clear: Fixed devices not being auto-confirmed after clearing the aiohomematic cache. Previously, all devices were incorrectly shown as repair issues because the wrong device identifier format was used for registry lookups. Devices that already exist in Home Assistant are now correctly recognized and auto-confirmed
- Device Availability Updates: Fixed device availability changes not updating the device registry correctly due to the same identifier format mismatch
Bump aiohomematic to 2026.1.17
Bug Fixes
- VirtualDevices Init Timeout: Fixed VirtualDevices init() timing out even though the CCU successfully processed the request. On some CCU backends (OpenCCU, RaspberryMatic), the VirtualDevices service processes the init() request correctly but fails to send the response. The initialization is now treated as successful if a listDevices callback was received during the timeout
- VirtualDevices Connection Failure: Fixed VirtualDevices failing to connect on OpenCCU/RaspberryMatic. The CCU's XML-RPC parser crashed when receiving device descriptions with empty
CHILDRENfields. Device descriptions are now normalized to ensureCHILDRENis always a list - Retry Mechanism Removed: Removed the retry mechanism that was conflicting with CircuitBreaker pattern, causing cascading failures. This particularly affected slower backends (Virtual Devices on Raspberry Pi 4, OpenCCU systems) where retry attempts counted toward circuit breaker thresholds, triggering premature failures during initialization. Network errors now fail immediately for more predictable behavior
- Homegear Device Names Not Loading: Fixed device names not loading for Homegear backends. The InterfaceClient was missing metadata retrieval via
getMetadata()calls
Version 2.0.5 (2026-01-05)
What's Changed
New Features
- Simple Schedule Services: Added
get_schedule_simple_profileandget_schedule_simple_weekdayservices. These return schedule data in a simplified format that is easier to read and use.
Deprecations
- Schedule Services: Deprecated
set_schedule_profile,set_schedule_weekday,get_schedule_profile, andget_schedule_weekdayservices. These will be removed in April 2026. Useset_schedule_simple_profile,set_schedule_simple_weekday,get_schedule_simple_profile, andget_schedule_simple_weekdayinstead. A warning is now logged when using the deprecated services.
Bump aiohomematic to 2026.1.13
Bug Fixes
- CUxD/CCU-Jack Recovery Fix: Fixed recovery mechanism for JSON-RPC-only interfaces (CUxD, CCU-Jack). Recovery now checks the JSON-RPC port (80/443) instead of failing at the TCP check stage. This prevents the central unit from entering a FAILED state when these services are actually available
- Device Availability Not Updating: Fixed devices not showing as unavailable when UN_REACH changes. All entity states are now refreshed when device availability changes
- HmIP-MP3P LED Auto-Off: Fixed LED turning off after 10 seconds on HmIP-MP3P sound player devices
- VirtualDevices Init Timeout: Fixed initialization timeout causing client failure for virtual devices
- Device Cache After Firmware Updates: Fixed device structure changes after firmware updates. Cached descriptions are now removed and refreshed from the CCU, preventing errors like "Non-existent Channel 3"
- Device Replacement/Re-pairing: Fixed device replacement and re-pairing handlers. Old device entries are now properly removed and recreated with fresh data
- Hub Entities with Secondary Client Failures: Fixed system variables and programs not appearing when secondary clients (e.g., CUxD) fail to initialize
- Connection Recovery Port Detection: Fixed port detection during connection recovery for all client implementations
- Channel Names Not Loading: Fixed channel names not loading when using InterfaceClient (JSON-RPC). The nested channels array from the JSON-RPC response is now processed correctly
Version 2.0.4 (2026-01-04)
What's Changed
New Features
- Undetected Interface Warning: Config flow now shows a warning when enabled interfaces were not detected on the CCU (e.g., CUxD installed but not running)
Bug Fixes
- Device Trigger Address Mapping: Fixed
device_addresstoaddressconversion in device triggers. Existing automations using device triggers (e.g., button press events) that failed with "required key not provided @ data['address']" will now work after re-saving - Validation Error UX: Validation errors during interface configuration now stay on the interface page instead of navigating to port configuration. This allows users to disable problematic interfaces (e.g., CUxD not running) directly
- Interface Availability Pre-Check: Config flow now validates interface availability BEFORE attempting connection. If an interface is enabled but was not detected on the CCU, a clear error message is shown immediately without unnecessary connection attempts
Bump aiohomematic to 2026.1.9
Improvements
- Backend Detection Validates Interface Availability: The backend detection now verifies that each interface process is actually running via
is_present()check, not just installed - Fix CUxD/CCU-Jack JSON-RPC Method Overrides:
ClientJsonCCUnow properly uses JSON-RPC for all device operations
Version 2.0.3 (2026-01-03)
What's Changed
New Features
- Light Last Brightness Option: Added config option
Restore last brightness for lightsin advanced settings. When enabled, lights will turn on with the last non-zero brightness level instead of default 100%. Default is disabled.
Improvements
- Configuration Options: Improved labels and descriptions for all advanced configuration options in config flow and options flow
- Documentation: Updated README.md with corrected descriptions for Device Behavior and Expert Options sections
Bug Fixes
- Sensor State Class: Added unit-based fallback rules for %, bar, °C, and g/m³ units. This restores long-term statistics support for Homebrew devices like HB-UNI sensors
- Device Model Matching: Fixed case-insensitive device model matching for entity description rules. Older devices like HmIP-SWDO (reported as
HMIP-SWDOby CCU) now correctly receive their device_class (e.g.,window) - Service Schema: Removed invalid
base_temperatureparameter fromset_schedule_simple_profileservice schema (parameter is part ofsimple_profile_data, not a separate field) - Service Name: Fixed incorrect service name
create_backup→create_ccu_backupin release notes
Bump aiohomematic to 2026.1.8
Bug Fixes
- Fix CuXD/CCU-Jack Device Control:
ClientJsonCCUnow properly overridesset_valueandput_paramsetto use JSON-RPC - Fix Sysvar-to-Device Association: System variables with device references are now correctly associated with their devices/channels
- Fix Runtime Device Addition: Fixed
KeyErrorwhen adding new devices during runtime after cache was loaded
New Features
- Circuit Breaker Incident Recording: Circuit breaker state changes are now recorded as incidents
- CONNECTION_LOST Incident Recording: Connection loss events are now recorded as incidents
- CONNECTION_RESTORED Incident Recording: Connection restoration events are now recorded as incidents
- RPC_ERROR Incident Recording: RPC call failures are now recorded as incidents
- CALLBACK_TIMEOUT Incident Recording: Callback timeout events are now recorded as incidents
- Per-Type Incident Storage: IncidentStore now uses per-IncidentType storage limits
Version 2.0.2 (2026-01-02)
What's Changed
New Features
- Confirm All Delayed Devices Service: New service
confirm_all_delayed_devicesto confirm all pending inbox devices at once
Bug Fixes
- Callback Issues Cleanup: Stale callback repair issues are now cleaned up at startup (fixes leftover issues from PingPong race condition)
Bump aiohomematic to 2026.1.5
New Features
- Add IncidentStore for Persistent Diagnostic Incidents: New storage system for tracking and persisting diagnostic incidents
- PingPong Tracker Incident Recording: Connection health issues are now recorded as incidents
- PingPong Diagnostics Journal: Enhanced diagnostic capabilities for connection monitoring
Bug Fixes
- Fix PingPong Unknown Issue Not Cleared: Unknown PONG mismatch issues are now properly cleared when conditions normalize
- Fix OperatingVoltageLevel Shows Unknown After Restart (Issue #2674): Battery parameters now load from cache on startup
- Fix KeyError for PARENT in Device Descriptions: Use
.get()to safely access optionalPARENTfield
Version 2.0.1 (2026-01-02)
What's Changed
Bug Fixes
- Select Entities: Fixed Select entities (e.g., WINDOW_STATE) not being created due to incorrect whitelist filtering
Bump aiohomematic to 2026.1.3
Bug Fixes
- Fix PingPong Race Condition: Register ping token in tracker before sending the ping request
- Fix Week Profile ScheduleCondition: Extended
ScheduleConditionenum with all 8 valid values - Fix ClientJsonCCU Handler Initialization:
ClientJsonCCU(used for CCU-Jack) now properly initializes handlers
Version 2.0.0 (2026-01-02)
What's Changed
New Features
- HmIP-WRCD Text Display: Full support for the wall-mount remote control with display via NotifyEntity, including services for sending text with icons, colors, sounds, and alignment options
- HmIP-MP3P Sound Player: Full support for the combination signalling device with services for sound playback (play_sound, stop_sound) and LED control (set_sound_led) with colors, brightness, and timing options
- Siren Control: Automatic select entities for siren tone and light pattern selection with full translations (no manual InputHelper setup required)
- Reauthentication: Added reauthentication flow to update expired credentials without removing the integration
- Reconfigure Flow: Quick reconfiguration of connection settings without full re-setup
- Air Quality Sensors: New entity descriptions for DIRT_LEVEL and SMOKE_LEVEL sensors
- Enhanced Diagnostics: Comprehensive system metrics in diagnostics including RPC statistics, event bus metrics, cache performance, health status, and service call analytics
- System Metrics Sensors: New diagnostic sensors for monitoring system health (%), connection latency (ms), and last event age (s) - providing real-time visibility into CCU communication status
- Delayed Device Repair: Devices stuck in the CCU inbox can now be added through Home Assistant's repairs interface with a guided fix flow
- Restore Last Brightness: Dimmers now remember their last brightness level and automatically restore it when turned on without specifying brightness (persists across HA restarts)
Improvements
- Configuration Experience: Enhanced config flow with improved error messages, progress indicators (Step X of Y), and menu-based navigation
- Error Handling: Reduced log flooding during connection issues with improved error handling decorator for entity actions
- Translations: Fixed naming of untranslated entities and improved translation coverage for press events
- Translations: Added missing repair issue translations (callback_server_failed, client_failed, connection_failed) and entity translations (button_press)
Bug Fixes
- Services: Fixed
set_schedule_simple_weekdayservice - Translations: Fixed translation issues
Developer Experience
- Code Quality: Strict mypy type checking, consistent use of keyword-only arguments, removed legacy code from config flow
- Testing: Comprehensive test coverage improvements for config flow, services, lights, and updates
- Documentation: Added comprehensive CLAUDE.md for AI assistants with development guidelines and project structure
Bump aiohomematic to 2026.1.2
Storage & Persistence
- Storage Abstraction Layer: Unified storage system enabling Home Assistant Store integration
- Protocol-based architecture allows transparent substitution of storage backends
- Local implementation uses orjson for fast serialization with atomic writes
- Supports ZIP archive loading, version migrations, and delayed/debounced saves
- Device Definition Export: Export device definitions as single ZIP file for easier sharing and debugging
RPC Server
- Async XML-RPC Server (Experimental): New asyncio-native alternative to thread-based server
- Enable via
OptionalSettings.ASYNC_RPC_SERVERin CentralConfig - Full
system.multicallsupport for batched CCU events - Health-check endpoint (
GET /health) for monitoring - Metrics: request count, error count, latency, active background tasks
- Graceful shutdown with task cancellation
- Enable via
Connection Recovery
- Unified Recovery Architecture: New event-driven connection recovery coordinator
- Staged recovery process: TCP check → RPC check → Warmup → Stability check → Reconnect
- Automatic retry with exponential backoff (max 8 attempts)
- Parallel recovery support for multi-interface setups
- Fixed Authentication Errors: JSON-RPC sessions are now cleared when recovery starts
- Prevents "access denied" errors after CCU restarts
- Device Inbox at Startup: Inbox sensor now available immediately after integration start
- Repair Issues Restored: Delayed device creation again triggers repair issues in HA
Observability & Metrics
- Complete Event-Driven Metrics: All components now emit metric events to EventBus instead of maintaining local state
MetricsObserveraggregates latency, counter, gauge, and health metrics in real-time- Type-safe
MetricKeydataclass withMetricKeysfactory for all known metrics emit_latency(),emit_counter(),emit_gauge(),emit_health()functions for easy metric emission- Dedicated
aiohomematic/metrics/module with clean separation of concerns
- Comprehensive System Events: New events for complete system observability
- Connection state changes with reason tracking
- Cache invalidation and refresh events
- Circuit breaker state transitions and trip notifications
- Scheduler task execution and data refresh events
- Request coalescing events for performance monitoring
- RPC Server Monitoring: Track incoming requests from CCU with latency, error rates, and active tasks
- Generic Serialization: All metrics and health data now export to JSON-serializable dictionaries
- Data Point Categories: View data point counts grouped by type (SWITCH, SENSOR, CLIMATE, etc.)
- Improved Cache Metrics: Clear distinction between true caches (with hit/miss) and trackers (size only)
- Self-Healing Recovery: Automatic data refresh after circuit breaker recovery
- Hub Metrics Sensors: Three HA-visible sensors for real-time system monitoring:
- System Health (0-100%)
- Connection Latency (ms)
- Last Event Age (seconds since last CCU event)
- RPC Monitoring: Track success/failure rates, latency, and request coalescing effectiveness
Connection Reliability
- Improved Reconnection: New state machine architecture for faster, more reliable recovery after CCU restarts
- CircuitBreaker: Automatic protection against repeated connection failures with staged reconnection
- Reduced Log Noise: Less ERROR logging during expected reconnection scenarios
Device Management
- Device Inbox: Accept and rename new devices pending pairing directly from the integration
- Install Mode: Separate install mode control per interface (HmIP-RF and BidCos-RF) with countdown timer
- Backup Support: Create and download CCU system backups, firmware download and update triggers
Climate & Schedules
- Schedule Caching: Faster schedule operations with intelligent caching
- Simple Schedule Format: Easier to read and modify weekly heating schedules
- Schedule Sync: Bidirectional get/set schedule operations with filtered data format
Siren Control
- Visible Alarm Settings: Acoustic and optical alarm selection now available as controllable entities
- Flexible Turn-On: Siren activation uses entity values as defaults when service parameters omitted
Bug Fixes
- Device Creation Race Condition: Fixed startup crash when CCU callback and initialization code raced
- Resilient Channel Handling: Devices remain functional even when some channel descriptions are missing
- Cover/Dimmer Restart: Fixed
is_validreturning False after CCU restart when status is UNKNOWN - Empty Numeric Values: Fixed conversion error when CCU sends empty strings for FLOAT/INTEGER parameters
- RGBW/LSC Auto-Off: Fixed lights turning off unexpectedly when using transition times
- Reconnect Availability: Entities no longer remain unavailable after CCU reconnect
- STATUS Parameters: Fixed handling of integer values from backend for status updates
- Firmware Updates: Fixed firmware data not refreshing after update check
New Device Support
- HmIP-MP3P Kombisignalgeber: Sound player with MP3 playback (channel 2) and RGB LED control (channel 6)
- HmIP-WRCD Text Display: Wall-mount Remote Control with Display - send text, icons, colors, and sounds to the LCD
- DeviceProfileRegistry for centralized device-to-profile mappings
- DpActionSelect data point type for write-only selection parameters
Developer Experience
- Fluent Configuration: New
CentralConfigBuilderwith method chaining and factory presets for CCU/Homegear - Request Tracing: Context variables pattern for request tracking through async call chains with automatic log prefixing
- Type Converters: Extensible
to_homematic_value()/from_homematic_value()using singledispatch pattern
Internal Improvements
- Protocol-based architecture for better testability and decoupling
- Event bus system replacing legacy callback patterns
- Strict type checking throughout codebase
- Translatable log messages and exceptions
- Generic protocols for improved mypy type inference on data point values
- Declarative field descriptors for custom and calculated data points
DelegatedPropertydescriptor for simple property delegation with caching support- Enhanced linter with DP004 path validation for DelegatedProperty definitions
- Store package restructured into
persistent/anddynamic/subpackages for better maintainability - Typed dataclasses (
CachedCommand,PongTracker) replace untyped tuples and dicts - Event-driven test patterns with
EventCapturefixture for behavior verification through events - Import standardization with
lint-package-importspre-commit hook enforcing package facade usage - Package structure refactoring: Split large
__init__.pyfiles into dedicated modulescentral/coordinators/subpackage for CacheCoordinator, ClientCoordinator, ConnectionRecoveryCoordinator, DeviceCoordinator, EventCoordinator, HubCoordinatorcentral/events/subpackage for EventBus, event types, and integration eventsclient/ccu.py,client/config.pyfor client classesmodel/hub/hub.pyfor Hub orchestrator
- Export validation with
lint_all_exports.pyensuring consistent__all__exports - Semantic Naming: Renamed classes to reflect actual purpose
CommandCache→CommandTracker(tracks sent commands, not a cache)PingPongCache→PingPongTracker(tracks connection health)*DescriptionCache→*DescriptionRegistry(authoritative stores)ParameterVisibilityCache→ParameterVisibilityRegistry
- TrackerStatistics: Dedicated statistics class for trackers (evictions only, no hit/miss)
Version 1.90.2 (2025-11-05)
What's Changed
- Bump aiohomematic to 2025.11.7
- Add post_init_data_point_fields
- Handle early arrival of pong events
- Make ping pong handling more robust
- Move on_link_peer_changed and refresh_link_peer_activity_sources to BaseCustomDpClimate
- Ensure hvac_action is None for devices without activity sources
Version 1.90.0 (2025-11-04)
What's Changed
- Bump aiohomematic to 2025.11.5
- Add 'optional settings' config option
- Add ELV-SH-PSMCI
- Add dew point spread and enthalpy to calculated sensors
- Add fallback to climate.activity to use linked channels, if own dps don't exist
- Add link peer channel to channel
- Add link_peer channels to device
- Add pong_mismatch_allowed to ping pong event
- Add session recorder
- Ensure custom_ids are only used for external registrations
- Fix issue after reconnect
- Handle ping after ping success
- Refactor PingPongCache
- Refactor rpc handling
- Remove link support for not linkable interfaces
- Test support: Improve code/test coverage
- Use enum for internal custom ids
- Use generic DP DpDummy instead of NoneTypeDataPoint replacement
- Add 'optional settings' to config flow
- Add action for session recorder
- Add config flow migration for parameter renaming
- Adopt changes in friendly name of upnp discovery to OpenCCU
- Display hvac action for climate entities as off if device is off; display idle if no value exists
- Improve test coverage of core modules
Version 1.89.1 (2025-10-10)
What's Changed
- Bump aiohomematic to 2025.10.5
- API cleanup: ensure that kw arguments are passed to the underlying function
- Add Keyword-only method linter (mypy-style)
- Add option to delay new device creation
- Add source of device creation to callback
- Fix issue with non existing PARENT in device description
- Add unknown_pong_mismatch notification
- Add option to config flow to delay new device creation
Version 1.88.1 (2025-10-01)
What's Changed
- Bump aiohomematic to 2025.10.1
- Add option to cover entities that the current default behaviour can be disabled:
- The default behaviour is, that the primary cover entity of a group uses the level of the state channel and no its own level to display a correct level.
- Only HM experts should disable this option, that like to control all three writeable channels of a cover group.
- Add option to config flow for cover entities
- Add option to cover entities that the current default behaviour can be disabled:
Version 1.88.0 (2025-10-01)
This release requires HA 2025.10.0 or later.
Info
There is no longer any need to register Homematic(IP) Local for OpenCCU as a custom repository in HACS, as it is now registered directly with HACS. Existing HACS configurations will be migrated automatically (by HACS), so no further action is required.
What's Changed
- Bump aiohomematic to 2025.10.0
- Add CuXD parameters CMD_RETL and CMD_RETS to ignore list, to avoid warnings when reading the value without an appropriate configuration.
- CMD_RETL warning: use CUX28010xx:16.CMD_QUERY_RET=1 to activate CUX28010xx:16.CMD_RETL command!
- CMD_RETS warning: use CUX28010xx:16.CMD_QUERY_RET=1 to activate CUX28010xx:16.CMD_RETS command!
- Add them to unignore if you are able to handle the warnings.
- Fix device has_sub_devices
- Fix magic method issue with log_context in xml_rpc client
- Improve error message if service is not available
- Re-/Store last manual temperature of climate entity
- Add CuXD parameters CMD_RETL and CMD_RETS to ignore list, to avoid warnings when reading the value without an appropriate configuration.
- Improve config_flow error messages
- Remove deprecation warning (The deprecated argument hass was passed to verify_domain_control) of Home Assistant 2025.10.0 for Homematic(IP local)
- Use of improved API for registering platform entity services from HA
Version 1.87.0 (2025-09-24)
What's Changed
- Bump aiohomematic to 2025.9.4
- Refactor CDP OperatingVoltageLevel
- Refactor event method handling
- Refactor decorators
- Add log_context to @*_property
- Add overloads to @*_property
- Add overloads to @inspector
- Add examples to naming documentation
- Document how device, channel and data point names are created (docs/naming.md)
- Remove dedicated @cached_property -> use @hm_property(cached=True) instead
- Use dedicated loggers for event and performance logging
- Add HmIP-STV to tri_state
- Document how devices and entities are named (docs/naming.md); aligned with AIOhomematic docs
- Ignore unconfigured entries
Version 1.86.0 (2025-09-02)
What's Changed
- Bump aiohomematic to 2025.8.10
- Improve documentation
- Added docs/architecture.md describing high-level components (central, client, model, caches, support) and their interactions
- Added data flow for XML-RPC/JSON-RPC, event handling, and data point updates
- Added sequence diagrams for connect, device discovery, state change propagation
- Add customization for HmIP-LSC
- Avoid deadlocks within locks (cover)
- Detailing the central status
- Improve boundary logging und exception handling
- Improve decorators
- Improve fetch_all_device_data
- Improve lock handling
- Improve room assignment
- Shield network I/O against cancellation
- Validate custom datapoint definition on startup
- Improve documentation
- Fix area/room assignment with enabled sub devices
- Use greek small letter mu "\u03bc" instead of micro sign "\u00B5" for micro unit prefix
Version 1.85.2 (2025-08-07)
What's Changed
- Bump aiohomematic to 2025.8.6
- Do not send additional parameter in kwargs for events
- Small performance improvements
- Rename hahomematic to aiohomematic
- Use parameter from datapoint for events
- Rename custom_homematic to homematicip_local
Version 1.85.1 (2025-08-07)
What's Changed
- Bump hahomematic to 2025.8.3
- Simplify should_fire_data_point_updated_callback for calculated data points
- Use slots
Version 1.85.0 (2025-08-01)
What's Changed
- Bump hahomematic to 2025.7.7
- Add default customization for (Deleting of obsolete entities/device might be required):
- ELV-SH-SW1-BAT,
- HmIP-WGT, HmIP-WGTC
- HmIP-SMO230
- Align exception naming
- Enable OPERATING_VOLTAGE_LEVEL for HM-CC-RT-DN and HM-TC-IT-WM-W-EU
- Fire updated events for calculated DPs when refreshed within a second
- Refactor argument extraction from exceptions
- Rename channel* to group* properties for cover, light and switch
- Add default customization for (Deleting of obsolete entities/device might be required):
- Check uniqueness of instance name
- Follow HA 2025.8: Use platform_data instead platform to avoid deprecation
- Remove version const for hahomematic dependency check
Version 1.84.1 (2025-06-27)
What's Changed
- Categorize diagnostic temperature sensors
Version 1.84.0 (2025-06-17)
What's Changed
- Bump hahomematic to 2025.6.0
- Add CustomDP valve for ELV-SH-WSM / HmIP-WSM
- Add batteries for ELV-SH-TACO
- Add button_lock to HmIP-DLD
- Add operating voltage level to ELV-SH-WSM / HmIP-WSM
- Add state channel to sub_device_channel mapping
- Enable ACTUAL_TEMPERATURE on maintenance channel
- Improve identify ip address
- Improve sub_device_channel identification
- Wait with PING/PONG handling until interface is initialized
- Add valve platform
- Add option to use sub devices to config flow/advanced options
- Set suggested_display_precision for OPERATING_VOLTAGE to 1
Version 1.83.0 (2025-04-05)
What's Changed
- Bump hahomematic to 2025.4.1
- Limit text values to 255 characters
- Add add_link and remove_link to actions
- Add translation for HM-Sec-WDS states
- Add options to all enums
Version 1.82.1 (2025-04-03)
What's Changed
- Bump hahomematic to 2025.4.0
- Create TLS context during module load
Version 1.82.0 (2025-03-28)
What's Changed
- Bump hahomematic to 2025.3.0
- Add HmIP-FCI1 and HmIP-FCI6 to batteries
- Add vapor concentration and dew point to all device channels that support temperature and humidity
- Clear session on auth failure
- Ensure load_data_point_value usage for initial load
- Fix OperatingVoltageLevel attributes: low_bat_limit, low_bat_limit_default
- Ignore model on initial load (HmIP-SWSD, HmIP-SWD)
- Ignore parameters on initial load, if not already fetched by rega script (ERROR*, RSSI*, DUTY_CYCLE, DUTYCYCLE, LOW_BAT, LOWBAT, OPERATING_VOLTAGE)
- Remove @cache and @lru_cache annotations
- Use @cached_property for expensive, one time calculated properties
- Use enums for const parameter values
Version 1.81.2 (2025-02-05)
What's Changed
- Bump hahomematic to 2025.2.5
- Use value instead of default for low_bat_limit
Version 1.81.1 (2025-02-05)
What's Changed
- Bump hahomematic to 2025.2.3
- Add calculated data points for HM devices
- Catch JSONDecodeError on load/save cache files
- Catch get_metadata XMLRPC fault
- Ignore devices with unknown battery
- Remove python 3.12 for github tests and pylint
- Set battery to UNKNOWN for HmIP-PCBS-BAT
- Sort battery list for correct wildcard search
- Use py 3.14 for mypy and pylint
- Fix import from HA
Version 1.80.0 (2025-01-30)
What's Changed
- Bump hahomematic to 2025.2.0
- Add calculated data points:
- ApparentTemperature
- DewPoint
- FrostPoint
- OperatingVoltageLevel
- VaporConcentration
- Add config option to define the hm_master_poll_after_send_intervals
- Add LOW_BAT_LIMIT
- Add WEEK_PROGRAM_POINTER for bidcos climate devices
- Add climate presets based on WEEK_PROGRAM_POINTER
- Define schedule_channel_address for HM schedule usage
- Don't read on unavailable devices
- Enable schedule on hm thermostat
- Fix usage of master dps for bidcos climate devices
- Improve connection error handling
- Poll master dp values 5s after send for bidcos devices
- Refactor parameter_visibility
- Rename paramset_key to paramset_key_or_link_address for put_paramset
- Use temporary values where push is not supported
- Add calculated data points:
- Add support for CalculatedDataPoint
- Add translations to apparent_temperature
Version 1.79.1 (2025-01-21)
What's Changed
- Bump hahomematic to 2025.1.11
- Cleanup cache file clear
- Delay start of scheduler until devices are created
- Rename instance_name to central_name
- Slugify cache file name
- Compare keys against sysvar names with wildcards
Version 1.79.0 (2025-01-17)
What's Changed
- Bump hahomematic to 2025.1.10
- Improve defaultdict usage
- Load cached files as defaultdicts
- Use Mapping instead of dict where possible
- Delete cache
- Fix a problem with new devices, due to an issue in 1.78.0
Version 1.78.1 (2025-01-14)
What's Changed
- Bump hahomematic to 2025.1.7
- Fix KeyError on uninitialised dict
Version 1.78.0 (2025-01-11)
What's Changed
- Bump hahomematic to 2025.1.5
- Consider heating value type when calculating hvac action
- Fix issue with programs/sysvars on backend restart
- Identify channel of a system variable if name ends with channel address
- Refactor create_* methods:
- Speedup wildcard lookup
- Add entity descriptions for (some statistics might be recalculated):
- svHmIPRainCounter*, svHmIPRainCounterToday*, svHmIPRainCounterYesterday*
- svHmIPSunshineCounter*, svHmIPSunshineCounterToday*, vHmIPSunshineCounterYesterday*
- svEnergyCounter*, svEnergyCounterFeedIn*
- Device related sysvars are now shown under the device instead of the hub
Version 1.77.0 (2024-12-29)
What's Changed
- Bump hahomematic to 2025.1.0
- Remove get-/set_install_mode
- Add switch to toggle the state of CCU programs
- Remove action set_install_mode
Version 1.76.1 (2024-12-27)
What's Changed
- Bump hahomematic to 2024.12.13
- Add program switch
- Fix double prefix for programs
Version 1.76.0 (2024-12-27)
Breaking changes
- Remove unignore file import -> Use the UI option
- Rename marker for extended system variables from hahm to HAHM to better align with other markers -> Rename the marker in the sysvar description from hahm to HAHM
What's Changed
- Bump hahomematic to 2024.12.12
- Add periodic checks for device firmware updates
- Ensure service and alarm messages are always displayed
- Extend element_matches_key search
- Fix remove last sysvar/program
- Log debug if variable is too long
- Refactor scheduler to use just one task
- Remove default markers from description
- Remove sv prefix from sysvar / p prefix from program
- Remove unignore file import
- Rename create methods
- Rename marker for extended system variables from hahm to HAHM to better align with other markers
- Start json_rpc client only for ccu
- Support markers for sysvar/program selection
- Add advanced config options to define markers for programs and sysvars. This means that not all programs/sysvars are retrieved except the internal ones.
- Fix warning
device_registry.async_get_or_create referencing a non existing via_device - Move periodic checks for device firmware updates to lib
- Reformat line length to 120
- Use existing config in config flow interface page
Version 1.75.1 (2024-12-15)
Noteworthy
- The repositories custom_homematic, hahomematic and pydevccu have been transferred from danielperna84 to sukramj
- Old urls are automatically redirected
What's Changed
- Remove danielperna84 from links after repository transfer to sukramj
Version 1.75.0 (2024-12-15)
Noteworthy
- Fixes issue with special characters in sysvar/program descriptions
What's Changed
- Bump hahomematic to 2024.12.5
- Add method cleanup_text_from_html_tags
- Add missing encoding to unquote
- Decode received sysvar/program descriptions
- Ensure default encoding is ISO-8859-1 where needed
- Limit number of concurrent mass operations to json api to 3 parallel executions
- Replace special character replacement by simple UriEncode() method use by @jens-maus
Version 1.74.0 (2024-12-10)
New Features
- Experimental support for CUxD and CCU-Jack devices
- The default setup uses a 15s polling interval
- Optional setup with MQTT for CuXD and CCU-Jack virtual Devices is possible to use push events.
- Please read the docs for more information.
- Please use the discussion forum for feedback
What's Changed
- Bump hahomematic to 2024.12.2
- Catch orjson.JSONDecodeError on faulthy json script response
- Use kelvin instead of mireds for color temp
- Enable support for CuXD and CCU-Jack (15s polling interval)
- Enable MQTT support for CuXD, CCU-Jack and system variable refresh (MQTT is needed in CCU description)
- Return color temperature in kelvin
Version 1.73.0 (2024-12-06)
What's Changed
- Bump hahomematic to 2024.12.0
- Add BidCos-Wired to list of primary interface candidates
- Add TIME_OF_OPERATION to smoke detector
- Add description to sysvar and program
- Add description to sysvar and program
- Enable central link management for HmIP-wired
- Make sysvars eventable
- Remove obsolete try/except in homegear client
- Reset temporary values before write
- Switch multiplier from int to float
- Use more constants for cover and light
- Add action get_variable_value
- Add option to receive sysvar changes over mqtt
- Add translations for TIME_OF_OPERATION
Version 1.72.0 (2024-11-21)
What's Changed
- Bump hahomematic to 2024.11.8
- Add missing @service annotations
- Add performance measurement to @service
- Don't re-raise exception on internal services
- Move @service
- Remove @service from abstract methods
- Expand list of unrecorded attributes
Version 1.71.0 (2024-11-19)
What's Changed
- Bump hahomematic to 2024.11.7
- Add basic support for json clients
- Add data_point_path event
- Add getDeviceDescription, getParamsetDescription, listDevices, getValue, setValue, getParamset, putParamset to json_rpc
- Add get_data_point_path to central
- Add interface(id) to performance log message
- Add interfaces_requiring_periodic_refresh to config
- Add option to refresh data by interface
- Add periodic data refresh to CentralUnitChecker for some interfaces
- Add sysvar/program refresh to scheduler
- Add xml_rpc support flag to client
- Allow empty port for some interfaces
- Do reconnect/reload only for affected interfaces
- Extend DP_KEY with interface_id
- Fix returned version of client
- Ignore unknown interfaces
- Improve store tmp value
- Maintain data_cache by interface
- Reduce MAX_CACHE_AGE to 15s
- Remove clients for not available interfaces
- Rename event to data_point_event
- Run periodic tasks with an individual interval
- Store temporary value for polling client data points
- Store temporary value for sysvar data points
- Add mqtt support
- Add new option to UI (but disabled)
- Remove sysvar/program refresh from scheduler
Version 1.70.0 (2024-11-06)
What's Changed
- Bump hahomematic to 2024.11.0
- Improve on_time usage
- Fix copy schedule
Version 1.69.0 (2024-10-27)
What's Changed
- Bump hahomematic to 2024.10.17
- Fire interface event, if data could not be fetched with script from CCU
- Optimize MASTER data load
- Rename model to better distinguish from HA
- Use enum for json/event keys
- Add missing action icons
- Follow backend changes
- Use enum for services
Version 1.68.1 (2024-10-26)
What's Changed
- Bump hahomematic to 2024.10.14
- Use version from module hahomematic
- Add check if Homematic(IP) Local for OpenCCU uses the expected version of hahomematic
Version 1.68.0 (2024-10-24)
What's Changed
- Bump hahomematic to 2024.10.13
- Add central link methods to click event
- Add create_central_links and remove_central_links to device and central
- Add operation_mode to channel
- Add reportValueUsage, addLink, removeLink and getLinks to client
- Add version to code
- Align method parameters with CCU
- Check if channel has programs before deleting links
- Disable climate temperature validation when turning off
- Fix wrong channel assignment for HmIP-DRBLI4
- Use PRESS_SHORT for reportValueUsage
- Add actions to manage central links
Version 1.67.0 (2024-10-15)
What's Changed
- Bump hahomematic to 2024.10.8
- Add MIN_MAX_VALUE_NOT_RELEVANT_FOR_MANU_MODE, OPTIMUM_START_STOP and TEMPERATURE_OFFSET to climate
- Add basic climate schedule services
- Add config option for max read workers
- Add services to copy climate schedules
- Add simple climate schedule service to store profiles
- Convert schedule time from minutes to hh:mm
- Disable collector for stop events
- Fix rx_mode lazy_config
- Improve logging when raising exception
- Improve profile validation
- Log exception at the most outer service
- Make DEFAULT and UPDATEABLE optional due to homegear support
- Make validation for climate schedules optional
- Move context var to own module
- Raise exception on set_value, put_paramset
- Remove command queue
- Rename climate enums and constants to better distinguish from HA
- Reuse existing dict types
- Simplify entity imports
- Use regex to identify schedule profiles
- Add action to fetch climate device schedule
- Add action to store climate device schedule (experimental)
- Add action to copy climate schedules
- Add option to config flow/advanced to listen on all ip addresses
- Add OPTIMUM_START_STOP and TEMPERATURE_OFFSET to climate attributes
- Fix issue with duplicate device addresses over multiple backends
- Raise HomeAssistantError on service exception
- Remove periodic master entity update
- Rename service to action in README.md
Version 1.66.0 (2024-09-21)
Breaking change:
- Use service put_link_paramset to manipulate direct connections
- Use service get_link_paramset to read direct connections
- Remove customization (it's not a pure dimmer) for ELV-SH-WUA / HmIP-WUA. Remove obsolete entities if necessary
What's Changed
- Bump hahomematic to 2024.9.12
- Add bind_collector to all relevant methods with option to disable it
- Add config option for listen ip address and port
- Add check for link paramsets
- Add getLinkPeers XmlRPC method
- Add missing PayloadMixin
- Add name to channel
- Add paramset_key to entity_key
- Adjust payload and path
- Avoid permanent cache save on remove device
- Catch bind address errors of xml rpc server
- Check rx_mode
- Do not create update entities that are not updatable (manually remove obsolete update entities)
- Ensure only one load/save of cache file at time
- Identify bind_collector annotated methods
- Improve paramset key check
- Load all paramsets
- Mark externally accessed services with service_call if bind_collector is not appropriate
- Mark only level as relevant entity for DALI
- Only try device update refresh if device is updatable
- Refactor device/entity to extract channel
- Refactor get_events, get_new_entities
- Refactor update entity
- Remove CED for ELV-SH-WUA / HmIP-WUA
- Remove unnecessary checks
- Rename value_property to state_property
- Replace device_type by model
- Separate enable/disable sysvar and program scan
- Shorten names
- Small definition fix for DALI
- Switch typing of paramset_key from str to ParamsetKey
- Use TypedDict for device_description
- Use TypedDict for parameter_data
- Use channel instead of channel_addresses
- Use paramset_description from channel
- Use validator for local schema
- Add advanced options to config flow
- Add option to enable/disable program scan to advanced options
- Add services get_link_peers, get_link_paramset, put_link_paramset
- Improve german descriptions by @baxxy13
- Use domain alias
- Use select for paramset_key with actions calls
- Use selector for rx_mode in service description
Version 1.65.0 (2024-08-25)
- Bump hahomematic to 2024.8.13
- Add CED for ELV-SH-WUA / HmIP-WUA
- Add UN_IGNORE_WILDCARD to get_parameters
- Add additional validation on config parameters
- Avoid excessive memory usage in cache
- Check/convert values of manual executed put_paramset/set_value
- Cleanup DeviceDescriptionCache
- Cleanup ParamsetDescriptionCache
- Make HEATING_COOLING visible for thermostats
- Make load only relevant paramset descriptions configurable
- Refactor directory handling
- Refactor get_parameters for unignore_candidates
- Use only relevant IP for XmlRPC Server listening on
- Add HEATING_COOLING translations
- Clear cache on schema migration
- Keep optional values in config flow
- Load al paramset descriptions into cache
- Make unignore configurable in the UI
- Move mapping access to control config
- Refactor config flow. some options are now on the advanced page.
- Use SELECTORs in config flow
- Validate put_paramset/set_value against device descriptions
- Write optional parameters in Config Flow only when filled
Version 1.64.0 (2024-08-05)
- Bump hahomematic to 2024.8.1
- Add button lock CE
- Reduce data load, if only device description is updated
- Allow undefined generic entities besides CE
- Remove service delete_device. Use delete on the device entry instead
- Fix triggers and action when using meta integrations
- Add translation to button lock
- Add device class to RSSI
Version 1.63.1 (2024-06-22)
- Use entry.runtime_data instead of hass.data
- Use HassKey for hass.data
Version 1.63.0 (2024-06-03)
- Bump hahomematic to 2024.6.0
- Fix address for bidcos wired virtual device
- Catch TypeError on SysVar import
- Add time units to HmIP-RGBW calls
- Add entity registry migration for fixed hmw entries
Version 1.62.0 (2024-05-15)
- Bump hahomematic to 2024.5.4
- Improve callback register/unregister
- Move command_queue handling from device to channel
- Add level sensors to cover/blind
- Allow changing level or tilt while blind is moving by @sleiner
- Fix value assignment to lock enums
- Set open tilt level back to 100%
- Use PEP 695 typing
- Enable CE visible entities by default
- Add individual translations for LEVEL
- Adjust entity activation
Version 1.61.0 (2024-05-05)
- Bump hahomematic to 2024.5.0
- Make some items from value_property to property
- Rename callbacks
- Fix Homegear reconnect
- Add COLOR_BEHAVIOUR to HmIP-BSL
- Ensure unload of platform services
Version 1.60.1 (2024-04-26)
- Add missing parameter for set_cover_combined_position
Version 1.60.0 (2024-04-24)
Breaking change:
- tilt level is set to 50% to be open instead of 100%
Changes:
- Bump hahomematic to 2024.4.12
- Rename loop_safe to loop_check
- Reduce loop_check to minimum
- Update ruff rules / requirements
- Make entity event async
- Extract looper from central and reuse for json/xml_rpc
- Move loop_check to async_support
- Record last value send
- Decompose combined parameter
- Return affected entity keys for service calls
- Add callback to unregister on register return
- Add option to wait for set_value/put_paramset callback
- Add wait_for_callback to collector
- Wait for target value in wait_for_state_change_or_timeout
- Add command queue
- Move open/close from IpBlind to Blind
- Use central_client_factory fixture
- Ensure central.stop() is called in tests
- Fix missing param in unregister_entity_updated_callback
- Set open tilt level to 50%
- Add option to services to wait for set_value/put_paramset callback
- Add wait_for_callback to set_cover_combined_position
Version 1.59.0 (2024-04-09)
- Bump hahomematic to 2024.4.6
- Remove support for python 3.11
- Use more list comprehension
- Customize HmIP-DRG-DALI
- Fix register refreshed entity
- Refactor callback naming
- Restructure check_connection
- Make xml_rpc event async
- Block central stop until tasks are finished
- Unify entity update/refresh events
- Remove unused callback from tests
- Add loop_safe annotation
- Remove entity_data_event_callback
- Make system_event_callback loop aware
- Use more list comprehension
- Add icons to services
- Use ConfigFlowResult
- Use thread-safe method schedule_update_ha_state to write ha state
- Add missing callback annotations
- Add async prefix to callback annotated methods
- Move state classes from total to total_increasing
Version 1.58.0 (2024-03-10)
- Bump hahomematic to 2024.3.1
- Add additional parameter to HBW-LC4-IN4-DR
- Fix return zero value for sysvar number
Version 1.57.1 (2024-03-05)
- Fix device_class for GAS_FLOW
Version 1.57.0 (2024-03-01)
- Bump hahomematic to 2024.3.0
- Add HBW-LC4-IN4-DR
- Remove unnecessary async
- Add GAS_* parameters of HmIP-ESI
- Avoid some HA deprecation warnings
Version 1.56.0 (2024-02-15)
- Bump hahomematic to 2024.2.4
- Add option to un ignore mechanism to ignore the automatic creation of custom entities by device type
- Fix mapping for HBW-LC-RGBWW-IN6-DR
- Fix mapping of HmIP-HDM
- Group entities to sub devices / base channels
- Add mapping for fixed color channel
- Refactor entity name data
Version 1.55.0 (2024-02-02)
- Bump hahomematic to 2024.2.1
- Store old_value in entity model
- Move product group identification to client
- Add new pattern for unignore (parameter:paramset_key@device_type:channel_no)
- Allow all as unignore parameter for device_type and channel_no
- Remove old complex format for unignore
- Remove deprecation warnings for py3.12
- Fix/improve unignore search
- Accept float as input for int numbers
- Use state_class total instead of total_increasing for sensors
- Add required ClimateEntityFeature TURN_OFF/TURN_ON for HA2024.2
- Replace icon_fn by icon translations for HA 2024.2
- Fix via_device in device_info
Version 1.54.0 (2024-01-12)
- Bump hahomematic to 2024.1.7
- Fix unignore doc and improve unignore tests
- Move unignore check to entity
- Reload master data after config pending event
- Allow direct_call without cache wait time
- Remove whitespace from name end
Version 1.53.0 (2024-01-09)
- Bump hahomematic to 2024.1.5
- Add duration=111600 when ramp_time used for HmIP-RGBW
- Allow ordered execution of collector paramsets
- Only consider relevant entities for HmIP-RGBW
- Remove effects from HmIP-RGBW when in PWM mode
Version 1.52.0 (2023-12-19)
- Bump hahomematic to 2023.12.4
- Add HB-LC-Bl1-Velux to cover
- Avoid mutating entity descriptions
Version 1.51.0 (2023-12-17)
- Bump hahomematic to 2023.12.3
- Save all rooms to entity model
- Set attributes of dataclasses
- Add another reason to ping pong mismatch
- Fix entity names without translations
- Add some descriptions to config flow
Version 1.50.0 (2023-12-01)
- Bump hahomematic to 2023.12.1
- Add support for away_mode and classic Homematic thermostats
- Collect config validation errors
- Add validator to instance name (@ is not allowed)
- Use collected config validation errors
- Catch more generic connection exceptions
Version 1.49.0 (2023-11-21)
- Bump hahomematic to 2023.11.4
- Use last_refreshed for validation check
- Improve ping/pong mechanism. Fire event, if mismatch is 15 within 5 Minutes
Version 1.48.0 (2023-11-01)
- Bump hahomematic to 2023.10.14
- Add class method default_platform
- Cleanup cover
- Fix service enable_away_mode_by_calendar
- Rename fire events
- Replace last_updated by last_refreshed
- Switch formatting from black to ruff-format
- Add device address to device info
Version 1.47.0 (2023-10-11)
- Bump hahomematic to 2023.10.12
- Add filter options to device.get_entity*
- Align method signatures
- Fix register_update_callback for update
- Ignore switch to sensor if un ignored
- Register external sources with custom identifier
- Remove WrapperEntity
- Remove get_update_entities
- Remove subscribed_entity_unique_identifiers
- Rename custom_identifier to custom_id
- Rename unique_identifier to unique_id
- Send relevant entities instead of devices in callback
- Update un ignore documentation
- Improve typing within async_setup_entry
- Merge dicts to collect active entities
- Move statistics collection to diagnostics module
- Use backend methods instead of local wrappers
- Use filtering backend methods
Version 1.46.0 (2023-10-10)
- Bump hahomematic to 2023.10.7
- Adjust typing after move to more enums
- Add measure_execution_time to writing methods
- Fix send sysvar #1249
- Add HmIPW-SCTHD
Version 1.45.0 (2023-10-07)
- Bump hahomematic to 2023.10.6
- Add started property to central
- Rename:
- value_list -> values
- effect_list -> effects
- Add more checks to get/set value from/tp values
- Use more tuple instead of list
- Cleanup code
- Collect subscribed entities in central
- Add faultCode and faultString to xmlrpc.client.Fault
- Use Mapping/Set for readonly access
- Use enum for CE fields
- Use Parameter for ED
- Follow backend changes
Version 1.44.1 (2023-10-04)
- Make default values configurable in ControlConfig
Version 1.44.0 (2023-10-04)
- Bump hahomematic to 2023.10.4
- Code cleanup
- Remove Hm prefix from enums
- Use enum for parameters
- Use more existing constants
- Use enum for JsonRPC and XmlRPC methods
- Get supported JsonRPC and XmlRPC methods and check against used methods
- Cleanup exception handling
- Catch 'internal error' on get_auth_enabled. Relevant for for CCU2 users
- Code cleanup
- Follow backend changes
- Remove recorder platform
- Add test for recorder _unrecorded_attributes
Version 1.43.1 (2023-09-30)
- Bump hahomematic to 2023.9.8
- Improve caching
- Cleanup cache naming
- Remove max_age from most method signatures
- Simplify data cache
- Rename some cache methods
- Remove attr prefix
- Improve caching
Version 1.43.0 (2023-09-29)
- Bump hahomematic to 2023.9.7
- Cleanup light code
- Use more enums for climate, cover, lock
- Use TypedDict for light, siren args
- Update ReGa-Script fetch_all_device_data.fn by @Baxxy13
- Parameterize call to fetch_all_device_data.fn
- Simplify json rpc post code
- Improve for ConnectionProblemIssuer json rpc
- Improve handle_exception_log
- Avoid repeated logs
- Add check to BaseHomematicException
- Reduce log level to 'warning' for get_all_device_data 'JSONDecodeError' exceptions
- Align isort setup with hass
- Remove recorder platform
Version 1.42.0 (2023-09-22)
- Bump hahomematic to 2023.9.4
- Re add channel 7 for HmIPW-WRC6
- Reduce log level for exceptions in fetch_paramset_description
- Refactor get_paramset_description
- Filter SSLErrors by code
- Cleanup logger
- Refactor client and central modules
- Adopt changes in HA 2023.9
- Use more shorthand attributes
- Add _unrecorded_attributes
Version 1.41.0 (2023-09-03)
- Bump hahomematic to 2023.8.3 - 2023.9.0
- Add SSLError to XmlRpcProxy and JsonRpcAioHttpClient
- Add decorator to measure function execution time
- Add ping pong tests
- Align sslcontext creation with Home Assistant
- Convert StrEnum and IntEnum in proxy
- Extend HmIPW-WRC6 implementation
- Fix get_all_system_variables return value
- Improve testing
- Make integration more robust against json result failures
- Make start_direct a config option
- Optimize get readable entities for MASTER
- Reduce visibility of local constants
- Refactor cover api
- Refactor to more enum usage
- Remove obsolete comments
- Remove use_caches and load_un_ignore from central config
- Restructure test helper
- Update project setup
- Improve custom component testing
- Add Github flows for pylint and tests
- Add infrastructure for platform tests
- Increase config flow coverage
- Make Homematic entities mockable
- Avoid init_central
- Cleanup scheduler code
- Increase master scan interval to 1h
- Make tilt_postion optional for set_cover_combined_position
- Rename some methods for consistency
Version 1.40.1 (2023-08-06)
- Bump hahomematic to 2023.8.1
- Prepare backend for HA issue usage
- Bump hahomematic to 2023.8.2
- Improve exception and log handling
- Fix DE service name translation
- Use issues instead of persistent notifications for interface events
Version 1.40.0 (2023-07-29)
- Bump hahomematic to 2023.7.4
- Add identifier to device
- Rename ENTITY_NO_CREATE to NO_CREATE
- Ignore click events on plugs
- Bump hahomematic to 2023.7.5
- Add SystemInformation to client api
- Send credentials on XmlRPC api only when authentication is enabled in CCU
- Bump hahomematic to 2023.7.6
- Refactor Json error handling / logging
- Use ping pong only for CCU
- Bump hahomematic to 2023.8.0
- Remove only the starting device name from entity name
- Remove title from program and sysvar names
- Remove support for python 3.10
- Add available_interfaces to SystemInformation
- Use identifier from device
- Add event entities
- Remove unmaintained NL translation
- Add service translations
- Remove click_events from logbook
- Add SystemInformation to diagnostics
Version 1.39.2 (2023-07-13)
- Bump hahomematic to 2023.7.3
- Fire interface event about ping/pong mismatch
- Add message to fire_interface_event
- Refactor event usage
- Add option to config flow to control system notifications (controls CALLBACK and PINGPONG notifications)
Version 1.39.1 (2023-07-12)
- Bump hahomematic to 2023.7.1
- Log an error about the ping/pong count mismatch
- Bump hahomematic to 2023.7.2
- Add new Events PRESS_LOCK and PRESS_UNLOCK for HmIP-WKP
- Add entity descriptions and translations for HmIP-WKP
Version 1.39.0 (2023-07-07)
- Bump hahomematic to 2023.7.0
- Project file maintenance
- Add services that return data:
- get_device_value
- get_paramset
- Fix entity state translations
Version 1.38.0 (2023-07-02)
- Guard against failure due to future HA api changes related to CC specific usage
- Make entity name translation more verbose
Version 1.37.6 (2023-06-29)
- Fix error with names before HA 2023.7 pt2
Version 1.37.5 (2023-06-29)
- Fix error with names before HA 2023.7
Version 1.37.4 (2023-06-23)
- Bump hahomematic to 2023.6.1
- Fix tunable white support for hmIP-RGBW
- Avoid creating entities that are not usable in selected device operation mode for hmIP-RGBW
- Update requirements
- Add missing comma, to fix entity description
- Remove device class from percentage entity description
Version 1.37.3 (2023-06-02)
- Bump hahomematic to 2023.6.0
- Update requirements
- Do not create update entities for virtual remotes
- Cleanup FIX_UNIT_BY_PARAM
- Fix latest version of update entity
- Use VALVE_STATE entity description only for Bidcos devices
Version 1.37.1 (2023-05-26)
- Display updates only if update is ready for installation on device
Version 1.37.0 (2023-05-15)
- Bump hahomematic to 2023.5.2
- Refactor device description cache handling
- Add device firmware update handling
- Add device firmware update entity
- Add 'Update device firmware data' service
- Add 6h schedule for device firmware data refresh
- Avoid overriding hostname by ssdp data
Version 1.36.0 (2023-05-01)
- Bump hahomematic to 2023.5.0
- Remove unsupported on_time / refactor HmIP-RGBW
Version 1.35.0 (2023-04-28)
- Bump hahomematic to 2023.4.5
- Update requirements
- Add HmIP-RGBW
- Fix supported_color_modes for light
Version 1.34.2 (2023-04-24)
- Bump hahomematic to 2023.4.2
- Update requirements
- Fix cover (HDM2) no longer working
Version 1.34.1 (2023-04-16)
- Bump hahomematic to 2023.4.0
- Update requirements
- Add log message to negative password check
- Use positional args
- Fix
Cannot parse hex-string value
Version 1.34.0 (2023-04-05)
New features
- Add service "set cover combined position"
- Add name translation
All changes:
- Bump hahomematic to 2023.3.1
- Add name to tasks
- Improve typing
- Move callback calls into exception block
- Remove avoidable usage of deepcopy
- Add dependabot
- Update requirements
- Drop pyupgrade, autoflake, flake8 in favor of ruff
- Refactor cover, add set_combined_position
- Update minimum required version
- Add service "set cover combined position"
- Add name translation
Version 1.33.1 (2023-03-03)
All changes:
- Bump hahomematic to 2023.3.0
- Update ruff, adjust module aliases
- Fix spamming CCU logs with errors (#981)
- Fix import
- Update minimum required version
Version 1.33.0 (2023-02-26)
All changes:
- Bump hahomematic to 2023.2.11
- Update ruff, fix comments
- Switch to orjson
- Fix climate: compare set temperature to target temperature
Version 1.32.0 (2023-02-23)
Breaking change
-Remove set_device_value_raw: use set_device_value instead (See changelog release 1.27.1)
New features
- Enable HmIP-SMSD as siren
All changes:
-
Bump hahomematic to 2023.2.10
- Use sets for central callbacks
- Add get_all_entities for device
-
Enable HmIP-SMSD as siren
-
Add pre-commit checks and cleanup repo
-
Remove set_device_value_raw
Version 1.31.0 (2023-02-18)
New features
All changes:
- Bump hahomematic to 2023.2.9
- Fix property types
- Ensure modules for platforms are loaded
- Use local dicts for device lists
- Clear central data cache if identified as outdated
- Avoid redundant cache loads within init phase
- Extract value preparation from send_value
- Differentiate between input and default parameter type
- Fix asyncio-dangling-task (RUF006)
- Add typed dict for light and siren
- Bump hahomematic to 2023.2.8
- Add project setup script
- Add entity_data event
- Add payload mixin
- Cleanup module dependencies
- Use cache decorators for some high-traffic methods
- Allow that channel_no could be None
- Add and use get_channel_address
- Add
HmIP-SWSDas siren
- Add device_class to doorbell if binary behavior is set
- Align packages to backend lib
- Align to siren backend changes
- Used typed dicts for light and siren
- Update translation keys
Version 1.30.2 (2023-02-08)
All changes:
- Remove
native_precisionfor Concentration of HmIP-SCTH230
This change is necessary because native_precision has been swapped for suggested_display_precision without a deprecation period in the HA core. Before switching to HA 2023.3, all CC users who use version 1.28.0 (or greater) must therefore update.
Rounding support for Concentration of HmIP-SCTH230 will be re-added with HA 2023.3
Version 1.30.1 (2023-02-08)
New features
All changes:
- Bump hahomematic to 2023.2.7
- Disable validation of state change for action and button
- Check if entity is writable on send
Version 1.30.0 (2023-02-07)
New features
All changes:
- Bump hahomematic to 2023.2.6
- Add missing bind_collector
- Add more
Finaltyping - Add option to collector to disable put_paramset
- Add on_time Mixin to temporary store on_time
- Align to backend lib
Version 1.29.0 (2023-02-06)
New features
- Add virtual channels for HmIP cover/blind
All changes:
- Bump hahomematic to 2023.2.5
- Add comments to parameter_visibility
- Use
put_paramsetonly when there is more than one parameter to sent - Use only one implementation for garage doors (HO/TM)
- Avoid backend calls if value/state doesn't change
- If an entity (e.g.
switch) has only one parameter that represents its state, then a call to the backend will be made, if the parameter value sent is not identical to the current state. - If an entity (e.g.
cover,climate,light) has multiple parameters that represent its state, then a call to the backend will be made, if one of these parameter values sent is not identical to its current state. - Not covered by this approach:
- platforms: lock and siren.
- services:
stop_cover,stop_cover_tilt,enable_away_mode_*,disable_away_mode,set_on_time_value - system variables
- If an entity (e.g.
- Add virtual channels for HmIP cover/blind:
- Channel no as examples from HmIP-BROLL. The implementation of the first actor channel (4) remains unchanged, which means that this channel (4) shows the correct cover position from sensor channel (3). The other actor channels (5+6) are generated as initially deactivated and only use the cover position from their own channel after activation.
- Fix channel 0 not working for put_paramset
Version 1.28.0 (2023-02-01)
All changes:
- Bump hahomematic to 2023.2.1
- Separate check for parameter is un_ignored based on if it should be hidden or not
- Bump hahomematic to 2023.2.0
- Log validation exceptions in central
- Add typing to decorators
- Bump hahomematic to 2023.1.8
- Ensure the signal handler gets called at most once by @mtdcr
- Fix stop central, if another central is active on the same XmlRPC server
- JsonRpcAioHttpClient: Allow empty password by @mtdcr
- Remove
VALVE_STATEfrom HmIPW-FALMOT-C12 - Remove put_paramset from custom_entity
- Remove set_value, put_paramset from central
- Remove support for python 3.9
- Remove to int converter for HmIP-SCTH230
CONCENTRATION - Replace old-style union syntax
- Validate password with regex (warning only!)
- Add
native_precision(=0) forCONCENTRATION - Check password on config flow validation
- Limit services to own integration
- Replace old-style union syntax
- Use exception types from backend
- Use kwargs in callbacks
Version 1.27.2 (2023-01-26)
All changes:
- Remove device class
GASfrom GAS_POWER (limitation of HA) - Replace
async_setup_platformsbyasync_forward_entry_setupsin__init__.py - Fix put_paramset for HM MASTER paramset
Version 1.27.1 (2023-01-XX)
New features
- Add additional parameter
device_addressto services
All changes:
- Bump hahomematic to 2023.1.7
- Add a new custom entity type for windows drive
- Return True if sending service calls succeed
- Aggregate calls to backend
- Fix HmIP-MOD-TM: inverted direction
- Add additional parameter
device_addressto services:force_device_availabilityset_device_valueput_paramset
- Deprecate service
set_device_value_raw. Will be removed with HA 2023-03. Seitch to serviceset_device_valueinstead. - Follow garage changes from backend
Version 1.27.0 (2023-01-20)
New features
- Add LED_STATUS to HM-OU-LED16
All changes:
- Bump hahomematic to 2023.1.5
- Remove LOWBAT from HM-LC-Sw1-DR
- Sort lists in parameter_visibility.py
- Replace custom entity config data structure by CustomConfig
- Allow multiple CustomConfigs for a hm device
- Add ExtendedConfig to custom entities
- Cleanup test imports
- Increase the line length to 99
- Add ExtendedConfig and use for additional_entities
- Remove obsolete ED_ADDITIONAL_ENTITIES_BY_DEVICE_TYPE from entity_definition
- Add LED_STATUS to HM-OU-LED16
- Fix: SysVars enabled (should be disabled) on initial setup
- Add model and version to service information
- Remove duplicate logbook entry for device_availability
- Use old value of SYSVAR_SCAN_ENABLED in options flow
Version 1.26.5 (2023-01-16)
- Fix display of logbook events
Version 1.26.4 (2023-01-16)
New features
- Update color_conversion threshold (HmIP-BSL) by @guillempages
All changes:
- Bump hahomematic to 2023.1.4
- Remove obsolete parse_ccu_sys_var
- Add helper, central tests
- Add more tests and test based refactorings
- Reduce backend calls and logging during lost connection
- Update color_conversion threshold by @guillempages
- Fix name in homematic.key_press events
Version 1.26.2 (2023-01-13)
New features
- Add device availability and error to logbook
All changes:
- Bump hahomematic to 2023.1.3
- Unify event parameters
- Refactor entity.py for better event support
- Fix wrong warning after set_system_variable
- Add validation to event_data
- Reassign event parameters in control_unit
- Add device availability and error to logbook
Version 1.26.1 (2023-01-09)
New features
- Remove LOWBAT from HM-LC-Sw1-Pl, HM-LC-Sw2-FM
- Remove OPERATING_VOLTAGE from HmIP-BROLL, HmIP-FROLL
- Use actions and buttons for device actions
All changes:
- Bump hahomematic to 2023.1.2
- No longer create ClientSession in json_rpc_client for tests
- Add backend tests
- Use mocked local client to check method_calls
- Remove sleep after connection_checker stops
- Remove LOWBAT from HM-LC-Sw1-Pl, HM-LC-Sw2-FM
- Simplify entity de-/registration
- Refactor add/delete device and add tests
- Add un_ignore_list to test config
- Allow unignore for DEVICE_ERROR_EVENTS
- Remove OPERATING_VOLTAGE from HmIP-BROLL, HmIP-FROLL
- Remove loop from test signature
- Cleanup ignore/unignore handling and add tests
- Move delete device logic to central
- Use actions and buttons for device actions
Version 1.26.0 (2023-01-02)
This release requires HA >= 2023.1
Breaking changes
- Rename climate presets from 'Profile ' to 'weekprogram': HA now allows translations of custom preset modes. The internal preset mode has been renamed from 'Profile ' to 'weekprogram'. If service climate.set_preset_mode was used with values like "Proflle 1", these automations and scripts need to be edited and use "week_program_1" instead. This preset mode is now displayed as "WP 1" to better accommodate the available space in the UI.
New features
- Make sysvar_scan_interval configurable The integration can now be reconfigured to use a shorter or longer interval between sysvar scans. The sysvar scan can also be disabled, if not needed.
All changes:
- Bump hahomematic to 2023.1.0
- Remove empty unit for numeric sysvars
- Fix native device units
- Rename climate presets from 'Profile ' to 'weekprogram'
- Add un_ignore list to central config
- Fix entity_definition schema
- Rename cache_dict to persistent_cache
- Reduce access to internal complex objects for custom_component
- Allow to disable cache
- Allow to disable un_ignore load
- Add local client
- Use local client in tests
- Move event() code to central_unit
- Move listDevices() code to central_unit
- Align custom_component to HA 2023.01
- Align translations to new schema
- Remove wrong device_classes
- Use more UnitOf enums
- Add options for enum sensors. Makes state values selectable in triggers.
- Reformat code / check with flake 8
- Add SensorStateClass.TOTALINCREASING to svEnergyCounter* sysvars
- Add SensorStateClass.MEASUREMENT to numeric sysvars
- Add SwitchDeviceClass.OUTLET to HmIP plugs
- Reorg entity helper
- Make sysvar_scan_interval configurable
Version 1.25.1 (2022-12-22)
- Bump hahomematic to 2022.12.8
- Reformat code
- Refactor entity inheritance
- Follow backend: Refactor entity inheritance
- Add value_list to sensor attributes
Version 1.25.0 (2022-12-21)
- Bump hahomematic to 2022.12.7
- Send ERROR_* parameters as homematic.device_error event
- Fire homematic.device_error event
- Add blueprint to display device error as persistent notification
Version 1.24.4 (2022-12-20)
- Bump hahomematic to 2022.12.6
- Add additional checks for custom entities
- Fix entity_helper for LEVEL
Version 1.24.3 (2022-12-18)
- Bump hahomematic to 2022.12.5
- Code Cleanup
- Remove sub_type from model to simplify code
- Remove obsolete methods
- Refactor binary_sensor check
- Convert value_list to tuple
- Use tuple for immutable lists
- Remove sub_types for device selection
- Convert frozenset to tuple in entity helper
- Use device class tamper for sabotage parameter
Version 1.24.2 (2022-12-13)
- Bump hahomematic to 2022.12.4
- Fix disable away_mode in climate. Now goes back to the origin control_mode.
- Add start date and time for service homematicip_local.enable_away_mode_by_calendar and use date and time pickers
Version 1.24.1 (2022-12-12)
- Bump hahomematic to 2022.12.3
- Add separate off_temperature for HM heating group HM-CC-VG-1
Version 1.24.0 (2022-12-12)
-
Bump hahomematic to 2022.12.2
- Add HM-LC-AO-SM as light
-
Change device_class of weather wind speed sensor to new device class wind_speed
-
Remove hub sensor
-
Breaking Changes:
- Due to changes in HA, the following services now have to use config entry_id (selectable in UI) instead of hub sensor:
- clear_cache
- fetch_system_variables
- set_variable_value
- The number of service messages is now a sysvar, due to the removal of the hub sensor
- Replace bluepring homematicip_local_persistent_notification.yaml by current version
- selection of hub sensor no longer needed
- Due to changes in HA, the following services now have to use config entry_id (selectable in UI) instead of hub sensor:
Version 1.23.0 (2022-12-01)
- Bump hahomematic to 2022.12.1
- Improve naming of modules
- Add new platform for text sysvars
- Remove support for old hub entities with homematicip_local.*
- Raise min HA # Version to 2022.12
- Use EntityFeature return type for climate/light supported features
- Add text platform for character string sysvars (extended). See docs.
Version 1.22.0 (2022-12-01)
- Bump hahomematic to 2022.12.0
- Add transition to light turn_off
- Remove min brightness of 10 for lights
- Raise hour limit for away mode to 999 hours
- Add multiplier 100 to LEVEL
Version 1.21.3 (2022-11-13)
- Bump hahomematic to 2022.11.2
- Generalize some collection helpers
- Rename attribute COLOR_NAME to COLOR
Version 1.21.2 (2022-11-09)
- Simplify # Version check
- Switch LEVEL sensor on creation from hidden to deactivated
Version 1.21.1 (2022-11-08)
- hide LEVEL sensor on creation
Version 1.21.0 (2022-11-08)
- Bump hahomematic to 2022.11.1
- Use generic property implementation
- Code cleanup
- Add option to wrap entities to a different platform
- Wrap LEVEL of HmIP-TRV*, HmIP-HEATING to sensor
- Use UnitOf* enums
- Add EntityDescription for LEVEL of HmIP-TRV*, HmIP-HEATING as sensor
- Make async_signal_new_hm_entity a function
Version 1.20.1 (2022-10-25)
- Bump hahomematic to 2022.10.10
- Refactor central_config
- Allow update of min/max temp of climate device
- Code cleanup
Version 1.20.0 (2022-10-23)
- Bump hahomematic to 2022.10.9
- Fix: don't hide unignored parameters
- Refactor MASTER polling
Version 1.19.9 (2022-10-22)
- Add generic option to modify icon based on state
Version 1.19.8 (2022-10-21)
- Bump hahomematic to 2022.10.8
- Add semaphore to fetch sysvar and programs from backend
- Add service to fetch system variables on demand from backend independent from default 30s schedule.
Version 1.19.7 (2022-10-20)
- Bump hahomematic to 2022.10.7
- Accept some existing prefix for sysvars and programs to avoid additional prefixing
- Read min/max temperature for climate devices
- Min set temperature for thermostats is now 5.0 degree. 4.5. degree is only off
Version 1.19.6 (2022-10-15)
- Bump hahomematic to 2022.10.6
- Use HmHvacMode HEAT instead of AUTO for simple thermostats
- Add HUMIDITY and ACTUAL_TEMPERATURE to heating groups
Version 1.19.5 (2022-10-11)
- Bump hahomematic to 2022.10.5
- Set HM Thermostat to manual mode before switching off
Version 1.19.4 (2022-10-10)
- Bump hahomematic to 2022.10.4
- Allow entity creation for some internal parameters
Version 1.19.3 (2022-10-10)
- Bump hahomematic to 2022.10.3
- Fix HM Blind/Cover custom entity types
Version 1.19.2 (2022-10-08)
- Bump hahomematic to 2022.10.2
- Make connection checker more resilient
Version 1.19.1 (2022-10-07)
- Simplify manufacturer selection
Version 1.19.0 (2022-10-07)
- Bump hahomematic to 2022.10.1
- Ignore OPERATING_VOLTAGE for HmIP-PMFS
- Add ALPHA-IP-RBG
- Differentiate manufacturer in device_info
- Use device_class speed
Version 1.18.1 (2022-10-04)
- Update state translations
- Add warning if hub sensor is disabled
- Avoid hub sensor update before full initialized
Version 1.18.0 (2022-10-03)
- Bump hahomematic to 2022.10.0
- Rename hub event
- Remove Servicemeldungen from sysvars. It's already included in the hub_entity (sensor.{instance_name}) (See README)
- Split hub between scheduler and entity
- Convert hub entity to sensor
- Reorg device_info for ControlUnit
- Deprecation warning: The entity homematicip_local.{instance_name} must be replaced by sensor.{instance_name} in service calls (set_variable_value) till HA 11.2022.
Version 1.17.0 (2022-09-20)
- Bump hahomematic to 2022.9.1
- Improve XmlServer shutdown
- Add name to threads and executors
- Improve ThreadPoolExecutor shutdown
- Replace deprecated AutomationActionType
Version 1.16.5 (2022-09-02)
- Add blueprint for HB-RC-12-EP-C by @djusHa
- Fix sysvar binary_sensors
Version 1.16.4 (2022-09-02)
- Bump hahomematic to 2022.9.0
- Exclude value from event_data if None
- Remove unneeded _attr
Version 1.16.3 (2022-08-27)
- Bump hahomematic to 2022.8.15
- Fix select entity detection
Version 1.16.2 (2022-08-24)
- Fix targets for entity services
Version 1.16.1 (2022-08-24)
- Bump hahomematic to 2022.8.14
- Exclude STRING sysvar from extended check
- Improve # Version check
Version 1.16.0 (2022-08-23)
- Bump hahomematic to 2022.8.13
- Allow three states for a forced availability of a device
- Fix device availability wording
- Fix wording in homematicip_local_persistent_notification.yaml
- Added blueprints:
- homematicip_local_reactivate_device_by_type.yaml - Reactivate a device by device type
- homematicip_local_reactivate_device_full.yaml - Reactivate every device
- homematicip_local_reactivate_single_device.yaml - Reactivate a single device
Version 1.15.2 (2022-08-23)
- Bump hahomematic to 2022.8.12
- Add device_type to device availability event
Version 1.15.1 (2022-08-21)
- Bump hahomematic to 2022.8.11
- Adjust logging (level and message)
- Remove service homematicip_local.update_entity. Use service homeassistant.update_entity instead.
Version 1.15.0 (2022-08-16)
- Bump hahomematic to 2022.8.10
- Add click events to logbook
Version 1.14.3 (2022-08-16)
- Bump hahomematic to 2022.8.9
- Create all XmlRpc server by requested port(s)
- Use a default callback port if not configured
- Restructure hass storage of control units
Version 1.14.2 (2022-08-12)
- Bump hahomematic to 2022.8.7
- Fix hs_color for CeColorDimmer(HM-LC-RGBW-WM)
Version 1.14.1 (2022-08-12)
- Bump hahomematic to 2022.8.6
- Reduce api calls for light
- Fix color for HM-LC-RGBW-WM
Version 1.14.0 (2022-08-11)
- Bump hahomematic to 2022.8.5
- Add cache for rega script files
Version 1.13.7 (2022-08-11)
- Cleanup entity_helper
Version 1.13.6 (2022-08-11)
- Fix entity_helper after #286
Version 1.13.5 (2022-08-11)
- Refactor service set_device_valueXXX
Version 1.13.4 (2022-08-09)
- Add entity_description for HB percentage and pressure
- Add service set_device_value_raw
Version 1.13.3 (2022-08-08)
- Bump hahomematic to 2022.8.4
- Add platform as field and remove obsolete constructors
Version 1.13.2 (2022-08-07)
- Bump hahomematic to 2022.8.3
- Rename HM unique_id to unique_identifier
- Remove domain from model
- Remove should_poll from model
- Refactor entity_description handling
- Specify should_poll in CC
Version 1.13.1 (2022-08-02)
- Bump hahomematic to 2022.8.2
- Code cleanup
- Add program buttons
- Add Service to update a single entity's value (only required for edge cases). See README.
- Add CCU programs as buttons
Version 1.13.0 (2022-08-01)
- Bump hahomematic to 2022.8.0
- Remove device_info from model
- Remove attributes from model
- Code Cleanup
- Refactor DeviceInfo
- Refactor Attributes
Version 1.12.5 (2022-07-28)
- Bump hahomematic to 2022.7.14
- Add HmIP-BS2 to custom entities
- Add call_source to load_entity_value calls
Version 1.12.4 (2022-07-22)
- Bump hahomematic to 2022.7.13
- Cleanup API
- Clean up accessing event helpers via hass
- Remove empty device_class for binary_sensor STATE
Version 1.12.3 (2022-07-21)
- Bump hahomematic to 2022.7.12
- Add ELV-SH-BS2 to custom entities
- Remove unneeded validity check for color_mode
Version 1.12.2 (2022-07-21)
- Block start of custom component if HA # Version is too old.
Version 1.12.1 (2022-07-19)
- Bump hahomematic to 2022.7.11
- Fix _check_connection for Homegear/CCU
- Add community blueprint for 4-button flush mount device by @andyboeh
- Add HVACAction.IDLE to dict
Version 1.12.0 (2022-07-17)
- Bump hahomematic to 2022.7.9
- Remove state_uncertain from default attributes
- Make entity state restorable after HA restart
- Do not use CALLBACK_HOST for XmRPCServer
Version 1.11.1 (2022-07-13)
- Bump hahomematic to 2022.7.8
- Fix entity update
Version 1.11.0 (2022-07-12)
- Bump hahomematic to 2022.7.7
- Ignore further parameters by device (CURRENT_ILLUMINATION for HmIP-SMI, HmIP-SMO, HmIP-SPI)
- Align entity naming to HA entity name
- Use new HA entity name: The entity name now only represents the entity part, and no longer includes the device name. The entity_id is untouched, as long as you don't reinstall the integration. The displayed name of an entity might change, depending on the used HA card. See HA dev docs for further information
- Fix hub creation
- Use entity is_valid for state Entities are now shown as unknown, as long as HA has not received any events from the CCU, or was not able to fetch data initially. Old behaviour was to display a DEFAULT value. As soon as events have been received from the CCU the state will switch to the correct state. This should be relevant, if HA has been restarted shortly after the CCU has been restart. See Readme for further information.
- Add attribute state_uncertain There is now an extra attribute at each entity, that shows is the state of the entity might be uncertain due to a CCU restart. This should be relevant, if the CCU has been restarted and HA is still running.
Version 1.10.1 (2022-07-08)
- Bump hahomematic to 2022.7.1
- Better distinguish between NO_CACHE_ENTRY and None
Version 1.10.0 (2022-07-07)
- Bump hahomematic to 2022.7.0
- Fix/Cleanup Device/Entity/Sysvar removal
- Use new attributes for number entities
Version 1.9.5 (2022-07-06)
- Revert: Make OPENING the default device_class for binary_sensor STATE (#249)
Version 1.9.4 (2022-07-03)
- Bump hahomematic to 1.9.4
- Load MASTER data on initial load
- Make OPENING the default device_class for binary_sensor STATE
Version 1.9.3 (2022-07-02)
- Bump hahomematic to 1.9.3
- Fix export of device definitions
Version 1.9.2 (2022-07-01)
- Bump hahomematic to 1.9.2
- Use CHANNEL_OPERATION_MODE for devices with MULTI_MODE_INPUT_TRANSMITTER, KEY_TRANSCEIVER channels
- Re-add HmIPW-FIO6 to custom device handling
- Disable device trigger based on event usage
Version 1.9.0 (2022-06-29)
- Bump hahomematic to 1.9.1
- Add button to virtual remote
- Remove HmIPW-FIO6 from custom device handling
- Remove dummies for unit_of_measurement
Version 1.8.6 (2022-06-07)
- Bump hahomematic to 1.8.6
- Code cleanup
- Fix sysvar creation for delayed platform setups on some environments
Version 1.8.5 (2022-06-05)
- Bump hahomematic to 1.8.5
- Remove sysvars if deleted from CCU
- Add check for sysvar type in sensor
- Remove unused sysvar attributes
- Cleanup HA when deleting sysvars
Version 1.8.4 (2022-06-04)
- Bump hahomematic to 1.8.4
- Refactor all sysvar script
Version 1.8.3 (2022-06-03)
- Bump hahomematic to 1.8.3
- Refactor sysvar creation eventing
- Adopt sysvar creation eventing
Version 1.8.2 (2022-06-03)
- Bump hahomematic to 1.8.2
- Fix build
Version 1.8.1 (2022-06-03)
- Bump hahomematic to 1.8.1
- Use Marker in sysvar description for extended sysvars
Version 1.8.0 (2022-06-02)
- Bump hahomematic to 1.8.0
- Enable additional sysvar entity types
- Create sysvars with new types. See
Version 1.7.3 (2022-06-01)
- Bump hahomematic to 1.7.3
- Add more debug logging
Version 1.7.2 (2022-06-01)
- Bump hahomematic to 1.7.2
- Better differentiate between float and int for sysvars
- Switch from # as unit placeholder for sysvars to ' '
Version 1.7.1 (2022-05-31)
- Bump hahomematic to 1.7.1
- Rename parameter channel_address to address for put/get_paramset
- Make channel optional for homematicip_local.put_paramset
Version 1.7.0 (2022-05-31)
- Bump hahomematic to 1.7.0
- Refactor system variables
- Align integration to match sysvar refactoring
- Add more types for sysvar entities
Version 1.6.1 (2022-05-30)
- Bump hahomematic to 1.6.2
- Add more options for boolean conversions
- Update readme. See new options for homematicip_local.set_variable_value.
Version 1.6.1 (2022-05-29)
- Bump hahomematic to 1.6.1
- Fix entity definition for HMIP-HEATING
- Fix config flow: select/deselect interfaces
Version 1.6.0 (2022-05-29)
- Bump hahomematic to 1.6.0
- Add impulse event
- Add LEVEL and STATE to HmIP-Heating group to display hvac_action
- Add device_type as model to attributes
- Adjust typing to match updated HA defaults
- Exclude model from recorder
Version 1.5.4 (2022-05-25)
- Bump hahomematic to 1.5.4
- Add function attribute only if set
Version 1.5.3 (2022-05-24)
- Bump hahomematic to 1.5.3
- Rename subsection to function
Version 1.5.2 (2022-05-24)
- Bump hahomematic to 1.5.2
- Add subsection to attributes
- Exclude subsection from recorder
Version 1.5.0 (2022-05-23)
- Bump hahomematic to 1.5.0
- Limit sysvar length to 255 chars due to HA limitations
- Add name to HA event
Version 1.4.0 (2022-05-16)
- Bump hahomematic to 1.4.0
- Block parameters by device_type that should not create entities in HA
- Fix: Strings and enums with custom device class must be lowercase to be translatable
Version 1.3.3 (2022-05-14)
- Fix entity assignment for service clear_cache
Version 1.3.2 (2022-05-13)
- Bump hahomematic to 1.3.1
- Increase connection timeout(30s->60s) and reconnect interval(90s->120s) to better support slower hardware
Version 1.3.1 (2022-05-06)
- Bump hahomematic to 1.3.0
- Use unit for vars, if available
- Remove special handling for pydevccu
- Remove set boost mode to false, when preset is none for bidcos climate entities
- Fix climate preset
Version 1.3.0 (2022-05-04)
- Use enums provided by 2022.5
- Add hassfest job for custom components
- Fixes after adding hassfest action
Version 1.2.2 (2022-05-02)
- Bump hahomematic to 1.2.2
- Fix light channel for multi dimmer
Version 1.2.1 (2022-04-26)
- Bump hahomematic to 1.2.1
- Fix callback alive check
- Add persistent notification for missing callback events
- Add recorder platform to avoid writing static attributes
Version 1.2.0 (2022-04-26)
- Bump hahomematic to 1.2.0
- Reorg light attributes
- Add on_time to light and switch
- Add service
homematicip_local.light_set_on_time - Add service
homematicip_local.switch_set_on_time - Reload integration on configuration change
- Fix triggers, if device has multiple config_entries from different domains
Version 1.1.4 (2022-04-21)
- Bump hahomematic to 1.1.4
- Use min as default if default is unset for parameter_data
- This fixes Homegear support
Version 1.1.3 (2022-04-21)
- Bump hahomematic to 1.1.3
- Add CeColorDimmer
- Fix hub_sensor, hub_binary_sensor dispatcher
Version 1.1.2 (2022-04-11)
- Bump hahomematic to 1.1.2
- Add set_system_variable with string value
Version 1.1.1 (2022-04-11)
- Bump hahomematic to 1.1.1
- Read # Version and serial in get_client
Version 1.1.0 (2022-04-09)
- Bump hahomematic to 1.1.0
- Add BATTERY_STATE to DEFAULT_ENTITIES
- Migrate device_info to dataclass
- Add rega script (provided by @baxxy13) to get serial from CCU
- Add Entity_Description to BATTERY_STATE
- Make device_info more independent from backend
- Clean up cache dirs on instance removal
Version 1.0.5 (2022-04-07)
-
Bump hahomematic to 1.0.6
- Revert to XmlRPC getValue and getParamset for CCU
-
Use Rf-Modul serial for unique_id in config_flow
-
Remove deprecated light const
Version 1.0.4 (2022-04-04)
- Bump hahomematic to 1.0.5
- Limit hub_state to ccu only
- Remove deprecated light const
- Remove defaults in OptionsFlow for not optional values (callback_ip, callback_port_xml_rpc, json_port)
Version 1.0.3 (2022-04-02)
- Fix device_type list in diagnostics overview
- Add blueprint for 4-button device (e.g. HmIP-KRCA)
Version 1.0.2 (2022-03-30)
- Bump hahomematic to 1.0.4
- Use max # Version of interfaces for backend version
- API refactoring
- Split control unit
Version 1.0.1 (2022-03-30)
- Bump hahomematic to 1.0.3
- Revert to XmlRPC get# Version for CCU
Version 1.0.0 (2022-03-29)
- Bump hahomematic to 1.0.2
- Cleanup json code
- Use previously configured interfaces by default in config flow
- Rename hahm to homematicip_local
Version 0.38.5 (2022-03-22)
- Bump hahomematic to 0.38.5
- Add support for color temp dimmer
Version 0.38.4 (2022-03-21)
- Bump hahomematic to 0.38.4
- Fix interface name for BidCos-Wired
Version 0.38.3 (2022-03-21)
- Bump hahomematic to 0.38.3
- Add check for available API method to identify BidCos Wired
Version 0.38.2 (2022-03-20)
- Bump hahomematic to 0.38.2
- Catch SysVar parsing exceptions
Version 0.38.1 (2022-03-20)
- Bump hahomematic to 0.38.1
- Fix initial config
Version 0.38.0 (2022-03-20)
- Bump hahomematic to 0.38.0
- Add central validation
- Improve validation in config flow
Version 0.37.5 (2022-03-18)
- Bump hahomematic to 0.37.7
- Add additional system_listMethods to avoid errors on CCU
Version 0.37.4 (2022-03-18)
- Bump hahomematic to 0.37.6
- Add JsonRPC.Session.logout before central stop to avoid warn logs at CCU.
Version 0.37.3 (2022-03-18)
- Bump hahomematic to 0.37.5
- Send event if interface is not available
- Don't block available interfaces, if another interface is no available
Version 0.37.2 (2022-03-17)
- Bump hahomematic to 0.37.4
- Fix reload paramset
- Fix value converter
Version 0.37.1 (2022-03-17)
- Bump hahomematic to 0.37.3
- Cleanup caching code
- Use Homematic script to fetch initial data for CCU/HM
Version 0.37.0 (2022-03-16)
- Bump hahomematic to 0.37.1
- Avoid unnecessary prefetches
- Fix JsonRPC Session handling
- Rename NamesCache to DeviceDetailsCache
- Move RoomCache to DeviceDetailsCache
- Move hm value converter to helpers
- Use JSON RPC for get_value, get_paramset, get_paramset_description
- Use default for binary_sensor
- Add semaphore(1) to improve cache usage (less api calls)
- Update unit for IEC sensor
Version 0.36.4 (2022-03-09)
- Bump hahomematic to 0.36.3
- Use callback when hub is created
Version 0.36.3 (2022-03-06)
- Bump hahomematic to 0.36.2
- Make more devices custom_entities
Version 0.36.2 (2022-02-27)
- Fix LEVEL display
Version 0.36.0 (2022-02-24)
- Bump hahomematic to 0.36.0
- Remove HA constants
- Use enums own constants
- Use more HA constants based on hahomematic enums
Version 0.35.3 (2022-02-23)
- Bump hahomematic to 0.35.3
- Move xmlrpc credentials to header
Version 0.35.2 (2022-02-22)
- Bump hahomematic to 0.35.2
- Remove password from Exceptions
Version 0.35.1 (2022-02-21)
- Bump hahomematic to 0.35.1
- Fix IpBlind
Version 0.35.0 (2022-02-19)
- Bump hahomematic to 0.35.0
- Fix CF tests
Version 0.34.2 (2022-02-16)
- Bump hahomematic to 0.34.2
- Add is_locking/is_unlocking to lock
Version 0.34.1 (2022-02-16)
- Bump hahomematic to 0.34.1
- Add own service to turn_on a siren (acoustically/optically)
Version 0.34.0 (2022-02-15)
- Bump hahomematic to 0.34.0
- Add new platform siren
Version 0.33.0 (2022-02-14)
- Bump hahomematic to 0.33.0
- Add hvac_action to IP Thermostats
- Add hvac_action to some HM Thermostats
- Add hvac_action to climate
Version 0.32.1 (2022-02-12)
- Bump hahomematic to 0.32.4
- add opening/closing to IPGarage
- Add translation for DOOR_STATE
Version 0.32.0 (2022-02-12)
- Bump hahomematic to 0.32.3
- Prioritize detection of device for custom entities
- Add HmIPW-FIO6 as CE
- Fix HmIP-MOD-HO
- Add state(ch2) to HmIP-MOD-HO
- Fix translations
Version 0.31.4 (2022-02-08)
- Add diagnostics
Version 0.31.3 (2022-02-08)
- Add multiplier to sensor and number entities. This fixes percentage related sensors
- Add more EntityDefinitions (device_class, state_class, ...)
Version 0.31.2 (2022-02-07)
- Bump hahomematic to 0.31.2
- Add HmIP-HDM2 to cover
- Fix unignore filename
Version 0.31.1 (2022-02-07)
- Bump hahomematic to 0.31.1
- Add multiplier to entity
- Substitute device_type of HB devices for usage in custom_entities
- Aggregate entity_helper
Version 0.31.0 (2022-02-06)
- Bump hahomematic to 0.31.0
- use should_poll from hahomematic
Version 0.30.3.beta (2022-02-06)
- Bump hahomematic to 0.30.2
- Remove INHIBIT from ignore parameter list
- Add support for unignore file
- Add DIRECTION & ACTIVITY_STATE to cover (is_opening, is_closing)
- Update translations, device_classes form Win-Matic/Key-Matic
Version 0.30.2 (2022-02-04)
- replace availability PN by blueprint
Version 0.30.1 (2022-02-04)
- Bump hahomematic to 0.30.1
- Start hub earlier
- Add service to clear the caches
- Add event about device availability
Version 0.30.0 (2022-02-03)
- Bump hahomematic to 0.30.0
- Add CHANNEL_OPERATION_MODE for HmIP(W)-DRBL4
- Fix DLD lock_state
- Add is_jammed to locks
- Re-disable RSSI by default
- React on channel_operation_mode for cover/blind on HmIP(W)-DRBL4
Version 0.29.3 (2022-02-02)
- Bump hahomematic to 0.29.2
- Add HmIP-STH to climate custom entities
- Add more HM-Devices to EntityDescription
- Switch device_class of HmIP-SCI from safety to opening
- Enhance entity_helper with sets for entity_descriptions by_param and by_device
Version 0.29.2 (2022-02-02)
- Add more HM-Devices to EntityDescription
Version 0.29.1 (2022-02-02)
- Bump hahomematic to 0.29.1
- Check if interface callback is alive
- Add class for HomeamaticIP Blinds
- Enhance entity_helper with sets for entity_descriptions
- Fix missing device_id in keypress events
Version 0.29.0 (2022-02-01)
- Bump hahomematic to 0.29.0
- Make device availability dependent on the client
- Fire event about interface availability
- Display persistent notification, if interface is not available
Version 0.28.8 (2022-01-31)
- Bump hahomematic to 0.28.7
- Add additional check to reconnect
Version 0.28.7 (2022-01-30)
- Listen on HA stop event to stop the central
Version 0.28.6 (2022-01-30)
- Bump hahomematic to 0.28.6
- Switch value caching from getParamset to getValue That should fix loading of VirtualDevices and HmRF
Version 0.28.4 (2022-01-30)
- Bump hahomematic to 0.28.4
- Limit read proxy workers to 1
Version 0.28.3 (2022-01-29)
- Bump hahomematic to 0.28.2
- Make names cache non-persistent.
Version 0.28.2 (2022-01-28)
- Fix hub init
Version 0.28.1 (2022-01-28)
- Bump hahomematic to 0.28.1
- Cleanup central API
- Use dedicated proxy for mass read operations, to avoid blocking of connection checker
- Fix MyPy
Version 0.28.0 (2022-01-27)
- Bump hahomematic to 0.28.0
- Create client after init failure
- Reduce CCU calls
Version 0.27.1 (2022-01-25)
- Bump hahomematic to 0.27.2
- optimize initial data load
Version 0.27.0 (2022-01-25)
- Bump hahomematic to 0.27.0
- Add hmcli.py as command line script
Version 0.26.3 (2022-01-24)
- Add name/host to discovered config flow
Version 0.26.2 (2022-01-23)
- Add upnp discovery to config flow
Version 0.26.1 (2022-01-23)
- Fix initial setup: Integration will completely setup after initial config flow. A reload of the integration or a restart of HA is no longer necessary.
- Cleanup integration init.
Version 0.26.0 (2022-01-22)
- Bump hahomematic to 0.26.0
- Add additional params for HM-SEC-Win and HM-SEC-Key
- Assign secondary channels for HM dimmers
- Fix spelling bidos -> bidcos in ConfigFlow
- Add translation for new params
- Enable wildcard search for device_type in entity_helper
Version 0.25.0 (2022-01-19)
- Bump hahomematic to 0.25.0
- Mark unreachable devices as unavailable on startup
Version 0.24.3 (2022-01-18)
- Bump hahomematic to 0.24.4
- Improve logging
- Generic schema for entities is name(str):channel(int), everything else is custom.
Version 0.24.2 (2022-01-18)
- Bump hahomematic to 0.24.3
- improve exception handling
- fix unique_id for system variables This is a breaking change. Solution: Activate the old sysvars, restart HA and delete the old sysvars.
Version 0.24.1 (2022-01-17)
- Bump hahomematic to 0.24.2
- improve exception handling
Version 0.24.0 (2022-01-17)
- Bump hahomematic to 0.24.0
- improve exception handling
Version 0.23.0 (2022-01-16)
- Bump hahomematic to 0.23.3
- Make ["DRY", "RAIN"] sensor a binary_sensor
- Add converter to sensor value
- HmIP-SCTH230 CONCENTRATION to int
- Fix RSSI (experimental)
- raise connection_checker interval to 60s
- Add sleep interval(120s) to wait with reconnect after successful connection check
- Fix unit of RSSI params
- Add device class to HM-Sen-RD-O
Version 0.22.2 (2022-01-15)
- Bump hahomematic to 0.22.2
Version 0.22.1 (2022-01-15)
- Bump hahomematic to 0.22.1
- Add VALVE_STATE for hm climate
- Add entity_type to attributes
- Accept LOWBAT only on channel 0
Version 0.22.0 (2022-01-14)
- Bump hahomematic to 0.22.0
- Add rooms to device
- Add area to device_info. This works, if a Homematic device is assigned to a single room in CCU. Multiple channels can be assigned to the same room. If the device is assigned to multiple rooms, or nothing is set, then the area in HA will stay empty
Version 0.21.1 (2022-01-13)
- Bump hahomematic to 0.21.1
- Fix event identification and generation
- Remove Alarm Events (not needed)
Version 0.21.0 (2022-01-13)
- Bump hahomematic to 0.21.0
- Don't exclude Servicemeldungen from sysvars
- Use Servicemeldungen sysvar for hub state
Version 0.20.0 (2022-01-12)
- Bump hahomematic to 0.20.0
- Fix number entities so they can handle percentages
Version 0.19.1 (2022-01-11)
- Fix set_variable_value
Version 0.19.0 (2022-01-11)
- Bump hahomematic to 0.19.0
- Mark secondary channels name with a V --> Vch
- Remove option to enable virtual channels. Virtual channels are now created but disabled by default.
Version 0.18.1 (2022-01-11)
- Bump hahomematic to 0.18.1
- Fix callback to notify un_reach
Version 0.18.0 (2022-01-10)
- Bump hahomematic to 0.18.0
- Set entity enabled default by entity usage enum
- Remove enable_sensors_for_system_variables from config flow
- Bool SysVars are now binary sensors
- All Sysvars are now disabled by default
- Add instance name to system variable name
Version 0.17.1 (2022-01-09)
- Bump hahomematic to 0.17.1
- Fix naming for multi channel custom entities
Version 0.17.0 (2022-01-09)
- Bump hahomematic to 0.17.0
- Adopt change changes from hahomematic
Version 0.16.1 (2022-01-08)
- Bump hahomematic to 0.16.1
- Add logging to show usage of unique_id in name
- Add HmIPW-WRC6 to custom entities
- Add HmIP-SCTH230 to custom entities
Version 0.16.0 (2022-01-08)
- Bump hahomematic to 0.16.0
- Return unique_id if name is not in cache
- Remove no longer needed press_virtual_remote_key
Version 0.15.1 (2022-01-07)
- Bump hahomematic to 0.15.2
- Identify virtual remote by device type
- Fix Device Exporter / format output
- Add devices to CustomEntity
- HmIP-WGC
- HmIP-WHS
- Identify virtual remote by device type
- Cleanup DeviceTrigger/Action
- Add more EntityDescriptions
Version 0.15.0 (2022-01-07)
- Bump hahomematic to 0.15.0
- Remove Virtual Remotes from buttons (BREAKING CHANGE) Solution: obsolete entities (buttons) can be deleted in entities overview.
- Update integration name in comments
- Add device actions to call actions on virtual remotes
- Add device(service) for virtual remote
Version 0.14.0 (2022-01-06)
- Bump hahomematic to 0.14.0
- Switch some HM-LC-Bl1 to cover
- Don't exclude DutyCycle, needed for old rf-modules
- Don't exclude Watchdog from SV sensor
Version 0.13.2 (2022-01-05)
- Bump hahomematic to 0.13.3
- HM cover fix: check level for None
- Fix: max_temp issue for hm thermostats
- Fix: hm const are str instead of int
- Fix: duplicate remove exception after delete_device
Version 0.13.1 (2022-01-04)
- Bump hahomematic to 0.13.2
- Fix cover state
- Add method to delete a single device to central
- Add a service to delete a Homematic device from HM (No delete in CCU!)
- Fix read of previous device options
Version 0.13.0 (2022-01-04)
- Bump hahomematic to 0.13.1
- Fix unique_id for heating_groups (Breaking Change) Solution: remove greyed-put climate entity, rename entity_id of new entity afterwards.
- Remove dedicated json tls option
- Use generic climate profiles list
- Adopt changes from hahomematic
- Redesign ConfigFlow and OptionsFlow
- Username and Password are mandatory
- OptionsFlow allows Reconfiguration of Setup (requires restart)
Version 0.12.0 (2022-01-03)
- Bump hahomematic to 0.12.0
- Split number to integer and float
- Adopt changes from hahomematic
- Rename integration
Version 0.11.1 (2022-01-02)
- Bump hahomematic to 0.11.2
- Precise entity definitions
- Improve detection of multi channel devices
Version 0.11.0 (2022-01-02)
- Bump hahomematic to 0.11.0
- Add transition to dimmer
- Remove channel no, if channel is the only_primary_channel
- Adopt change from hahomematic
- Update docstrings
- Add transition to dimmer
Version 0.10.0 (2021-12-31)
- Add Github Basics
- Add button entity_description
- Fix unload issue
- Fix device description_strategy
Version 0.9.2 (2021-12-30)
- Adopt async changes from hahomematic
- Bump hahomematic to 0.9.1:
- Extend naming strategy to use device name if channel name is not customized
Version 0.9.1 (2021-12-30)
- Update blueprints
Version 0.9.0 (2021-12-30)
- Make events translatable This is a breaking change for device triggers. Please check your automations and fix the device trigger.
Version 0.8.0 (2021-12-29)
- Add service to export device definition
Version 0.7.1 (2021-12-28)
- Fix service load
Version 0.7.0 (2021-12-28)
- Use entity services for climate
- Restart ConfigFlow on Error
- Display error messages in config flow
Version 0.6.2 (2021-12-27)
- Add selector to service disable_away_mode
- Bump hahomematic to 0.6.1:
- Display profiles only when hvac_mode auto is enabled
- Fix binary sensor state update for hmip 2-state sensors
Version 0.6.1 (2021-12-27)
- Remove away mode start date
Version 0.6.0 (2021-12-27)
- Add climate services for away mode (experimental)
- Bump hahomematic to 0.6.0:
- Fix HVAC_MODE_OFF for climate
Version 0.5.1 (2021-12-26)
- Bump hahomematic to 0.5.1:
- Fix hm_light turn_off
Version 0.5.0 (2021-12-25)
- Bump hahomematic to 0.5.0:
- Separate device_address and channel_address
Version 0.4.0 (2021-12-24)
- Bump hahomematic to 0.4.0:
- Add ACTUAL_TEMPERATURE as separate entity by @towo
- Add HEATING_COOLING to IPThermostat and Group
- Add ()HUMIDITY and ()TEMPERATURE as separate entities for Bidcos thermostats
- use ACTIVE_PROFILE in climate presets
Version 0.3.2 (2021-12-23)
- Make HmIP-BSM a switch (only dimable devices should be lights). thanks to @itn3rd77
Version 0.3.0 (2021-12-23)
- Add EntityDescription for Number: Level, Active Profile
Version 0.2.1 (2021-12-22)
- Use device selector for services
- Remove virtual_key service
- Update dutch translation
Version 0.2.0 (2021-12-22)
- Sort and use more enums for EntityCategory
- Cleanup device_info
- Add configuration_url to service device
- Move parameters in internal config
- Fix #80 broken config_flow
Version 0.1.2 (2021-12-21)
- Refactor device_info and identifier handling
Version 0.1.1 (2021-12-21)
- Rename async methods and @callback methods to async_*
- Update device identifier with interface_id
Version 0.1.0 (2021-12-XX)
- Bump # Version to 0.1.0
- Update EntityDescriptions
- Add initial tests for config_flow
- Add Sensor Descriptions
Version 0.0.22.2 (2021-12-16)
- Add DE translation
- Update NL translation
Version 0.0.22.1 (2021-12-16)
- Fix resolve names for all given ports incl. tls (update hahomematic)
- Rename attributes to match eQ-3 naming
- Don't use title() for instance_name
- Fix Hub init
Version 0.0.21 (2021-12-15)
- Add some blueprints for automation in GIT repo
- Simplify light turn_on
- Fix HmIP-BSL
- Use attr for entities
Version 0.0.20 (2021-12-13)
- Add device name to persistent notification
- rearrange config flow
Version 0.0.19 (2021-12-12)
- Fix EntityDescriptions
- Fix OptionFlow
- Rename helper to entity_helper
- Add UNREACH to persistent notifications
Version 0.0.18 (2021-12-11)
- Add type hints based on HA mypy config
- Rename impulse to special event
- Add persistent notification
Version 0.0.17 (2021-12-05)
-
Add translation for HmIP-SRH states
-
Code quality:
- Use Enums from HaHomematic
- Add more type hints (fix mypy errors)
- Use assignment expressions
- Move services to own file
Version 0.0.16 (2021-12-02)
- Initial release