v0.2.1
This release represents a significant stabilization of the nest_legacy integration, resolving dozens of bugs related to state accuracy, Protobuf API reliability, and device-specific edge cases.
🚀 Highlights
- Retry Logic: Added 3-attempt exponential backoff for API writes to handle frequent "502 Bad Gateway" errors from Nest servers.
- Improved Event Handling: Camera events are now processed chronologically, ensuring simultaneous events (like "Person" and "Face") are both captured instead of the last one overwriting the first.
- Enhanced Reliability: Fixed several "silent failures" where the integration would report a successful change even if the Nest API rejected it.
🌡️ Thermostats & Heat Link
- Multi-Stage Support: Fixed an issue where legacy thermostats with Stage 2/3 heating or cooling would incorrectly report as "Idle."
- Eco Mode Fixes:
- Fixed a bug where Protobuf thermostats appeared "OFF" in Home Assistant when Eco Mode was active.
- Resolved a race condition where setting the temperature while in Eco Mode would fail or write to the wrong settings.
- Allowed setting Eco temperatures to exactly 0.0°C (previously ignored).
- HVAC State Accuracy:
- Added
FANhvac_action to show when the fan is running independently of heating/cooling. - Fixed
IDLEvsOFFmapping; the thermostat now correctly shows "Off" when disabled. - Fixed fan state remaining "On" indefinitely after a timer expired (REST API).
- Added
- Heat Link (EU):
- Prevented hot water settings from being wiped (zeroed out) when toggling switches.
- Fixed Hot Water schedule/mode changes for Legacy REST users.
- Mapped internal hardware strings (e.g., "Amber-2") to human-readable names.
- New Features: Added battery level sensors for thermostats and a toggle for Humidifier state.
🛡️ Nest Protect (Smoke/CO)
- False Motion Fix: Prevented wired Nest Protects from reporting "False Positive" motion based on home-wide occupancy; motion is now strictly tied to the individual device.
- Replace By Date: Fixed a timezone offset bug that caused the "Replace By" date to be off by one day in Western hemispheres.
- Night Light: The Night Light brightness entity is now only created for Protect models that actually support the feature.
- Status Granularity: Improved Smoke/CO state reporting for Protobuf-connected Protects.
📷 Cameras & Doorbells
- Protobuf Event Support: Added support for
personHeard,dogBarking, andunfamiliar-faceevent types. - Auth Awareness: Added a warning for non-Google (legacy) accounts, as the Protobuf API (required for newer camera events) is not accessible to them.
- Chime Logic: Fixed availability logic for the Doorbell indoor chime switch.
- Timestamp Fix: Resolved an issue where camera event media timestamps were displayed in 1970 due to inconsistent millisecond/second units.
🌡️ Temperature Sensors
- Online Status: Fixed a math error where sensors were reported as "Online" forever; they now correctly go "Unavailable" if they haven't checked in for 4 hours.
- Organization: Protobuf temperature sensors now correctly inherit their Location/Area from the Nest app.
- Naming: Fixed a bug where all REST sensors were hardcoded to "Temperature Sensor" regardless of their actual name.
⚙️ Core Integration Improvements
- Device Management: Added support for manually removing orphaned or stale devices from the Home Assistant UI.
- Long-Term Statistics: Added proper state classes to the Filter Runtime sensor so usage can be graphed over time.
- RCS Settings: Fixed a critical bug where toggling an active sensor could wipe the thermostat's Remote Comfort Sensing configuration.
- Type Safety: Fixed
battery_health_stateto return a boolean instead of an integer to comply with HA standards. - Maintenance: Reduced log noise during the authentication process.
Full Changelog: v0.1.18...v0.2.1