Changes
- Changed RotationSpeed range for ATA/ERV (Auto moved to the top slot, 0 is now "off" only), if Home still shows the old range, remove and re-add the accessory
- fix: #259 - turning ON an ATA/ERV unit from Apple Home could silently override Auto fan speed with a fixed speed. Apple Home's combined HeaterCooler dial sends a stray RotationSpeed value together with Active on every power-on, and Auto (raw
0) shared the same dial position as "off".MelCloudAta/MelCloudAtw/MelCloudErvsend()now diffs the outgoing command against live device state and only sends fields that actually changed, and RotationSpeed for ATA/ERV is remapped so0is reserved exclusively for "off" (matching HomeKit's own dial semantics), with Auto moved to the top slot past the highest real speed - fix: ERV RotationSpeed
onGetreadthis.accessory.fanSpeed, a field that was never populated (onlycurrentFanSpeedwas set), so the characteristic never reported a value - changed:
MelCloudAtw.send()now diffs against live device state the same way as ATA/ERV and rebuildsEffectiveFlagsfrom only the fields that actually changed (using+rather than|to combine bits, since some HeatPump flags exceed 32 bits and would silently truncate under bitwise OR in JS) - cleanup: removed the now-redundant explicit
EffectiveFlagsarguments passed fromdeviceata.js/deviceatw.js/deviceerv.jstosend(). The value is fully recomputed from the changed payload keys, so the caller-supplied numeric flag was dead code. The special string flags ('account','frostprotection','overheatprotection','holidaymode','schedule','scene') are unaffected - fix: ATW classic MELCloud
HolidayModechanges were missing a matching bit in the rebuiltEffectiveFlagstable, so the mode change would not have been applied - bump dependencies
- cleanup
- readme update
Full Changelog: v4.10.19...v4.11.0