0.10.3 — Real #356 root cause found in boschshcpy, plus a wider APK audit
Pins boschshcpy==0.4.6 (see that repo's CHANGELOG — this release grew
out of finding the real root cause of #356 there, which led to a wider
audit against a decompiled copy of the official Bosch app).
Fixed
- #356 — Motion Detector II
[+M]indicator-light entity missing.
Root cause turned out not to be the installation profile (that theory,
posted on the issue, was wrong and has been retracted there): the
boschshcpyproperty this integration'slight.pydepends on
(supports_light) was never actually implemented in the lib, despite
0.9.2's CHANGELOG claiming it shipped paired withboschshcpy0.4.5.
Sincelight.pyreads it viagetattr(light, "supports_light", False),
the missing attribute silently defaulted to "unsupported" for every
[+M]Motion Detector II since 0.9.2. Fixed lib-side inboschshcpy
0.4.6; comment here corrected to no longer claim a profile dependency. CommunicationQualitySensorhad an inventedmediumstate that
doesn't exist in the real API (boschshcpy'sCommunicationQualityService.State
had a fictionalMEDIUMmember with no matching value on real
hardware). Now reportsnot_supported, the value the Bosch app itself
uses. Translation key renamed (medium→not_supported) across all
30 languages.
Added
- Outdoor Siren power-supply fault diagnostics: 4 new diagnostic
binary_sensorentities —siren_ac_dc_error,siren_battery_defect,
siren_battery_temperature_abnormal,siren_primary_power_supply_outage.
boschshcpy'sOutdoorSirenPowerSupplyServicealready exposed all four
(ac_dc_error/battery_defect/battery_temperature_abnormal/
primary_power_supply_outage, matching the APK'sPowerSupplyState
gettersisAcDcError()/isBatteryDefect()/
isBatteryTemperatureAbnormal()/isPrimaryPowerSupplyOutage()), but
boschshc-hass never wired them into an entity — a siren with a real
AC/DC fault, defective battery, abnormal battery temperature, or a mains
outage produced zero visible signal in Home Assistant. Gated on
supports_power_supply, alongside the existing
SirenAcousticAlarmSensor/SirenVisualAlarmSensor/SirenTamperSensor. - Installation Profile select now available on relays and smart
plugs, not just Motion Detector II —InstallationProfileSelectwas
already fully generic (works on any device withsupported_profiles),
it just wasn't offered outsidemotion_detectors2. Added 4 new profile
translation strings (light/heating_rcc/boiler/mini_pv) across
all 30 languages for the wider device vocabulary this now surfaces. HeaterTypeSelect:VOLT_FREE_HEATINGoption — matches the new
boschshcpy0.4.6 enum member (a real heater type seen on hardware
that previously collapsed toUNKNOWN).