What's Changed
Integration
- Expose the HmIP-DSD-PCB doorbell sensor's event with the
doorbellevent device class instead of the genericbutton(#3276). Its ring input channel produces an event group that previously fell back to thebuttondefault; it now matches the doorbell rule alongside the HmIP-DBB - Expose color temperature for the HmIP-LSC (#3277).
supported_color_modesnow also honours the light's static color capabilities (capabilities.hs_color/capabilities.color_temperature), so a light that supports both color and color temperature — like the HmIP-LSC, which has noDEVICE_OPERATION_MODEand switches between the two at runtime — advertises{hs, color_temp}statically whilecolor_modekeeps reporting the currently active mode viahas_*. Lights with a single, mode-based color capability are unaffected - Fix
light.turn_onnot switching the HmIP-LSC from color to color temperature (#3277).async_turn_ontreated the two color modes as independent and, when only a color temperature was requested, still forwarded the currenths_color— soHUE/SATURATIONandCOLOR_TEMPERATUREwere written together in oneputParamsetand the device kept the old color. The modes are now mutually exclusive: an explicitcolor_temp_kelvinorhs_colorrequest is sent on its own, and the current value is only restored when no color is requested
Dependencies
Bump aiohomematic to 2026.7.5
- Fix the climate entity for HmIP-WTH-B (and other thermostats) failing to load — staying permanently
unavailable— when the device's SETPOINT paramset description is incomplete (missingMAX, e.g. after a failedgetParamsetDescription) (#3281).max_tempreturnedNone, so caching the week profile raised an uncaughtTypeErrorout of Home Assistant's entity setup, while an identical device with a complete paramset description worked fine.max_tempnow falls back to a fixed upper bound (30.5) when neither aTEMPERATURE_MAXIMUMvalue nor a SETPOINTMAXis available (mirroring the existingmin_tempguard), and the week-profile conversion now degrades gracefully — the entity loads and only the schedule stays uncached - Internal aiohomematic simplification (−5,800 LOC) from a consumer-surface audit against this integration: removes the unused
hmcliconsole script, theHomematicAPIfacade,SysvarStateChangedEvent, thetracing/logging_contextmodules and the Kind/payload property-metadata subsystem, and flattens 37 zero-use interface protocols (120 → 83). Every removed symbol was verified to have zero usage in homematicip_local, so there is no user-facing effect - Fix valve-only
HmIP-HEATINGgroups (built fromHmIP-eTRVvalves without a wall thermostat) freezingcurrent_temperature/current_humidityat the last-(re)start value (#3279). Follow-up to #3255: these groups always exposeHUMIDITYandHEATING_COOLINGon the group channel, but only a group containing a wall thermostat (HmIP-WTH/STHD) ever receives events for them — in a valve-only group those readable data points never refresh, and since #3228VirtualDevicesget nogetValuefallback, so they dragged the whole custom climate data point tois_valid=False(leaving the climate entity invalue_state=restoredwith a frozen current temperature) even thoughACTUAL_TEMPERATUREkept arriving via events. #3255 only excluded the actuator valuesLEVEL/STATE; the climate validity check now also ignoresHUMIDITY/HEATING_COOLING, so a group's climate validity follows its aggregatedACTUAL_TEMPERATUREregardless of whether a wall thermostat is present - HmIP-LSC now exposes color temperature in addition to color (#3277): a dedicated
CustomDpIpRGBWColorTempLightadvertises both color modes statically and derives the active mode from the value the device reports