v0.2.3
This release represents a comprehensive stabilization and quality-of-life overhaul for the nest_legacy integration. In addition to resolving networking and authentication bugs, this version aligns the codebase with Home Assistant's highest development standards, ensuring better performance, improved error handling, and a more polished user experience.
🚀 Highlights
- Networking & Auth Stability: Fixed Protobuf stream desynchronization, resolved authentication race conditions that could lead to rate-limit bans.
- HA Standards & Compliance: Migrated to centralized
dt_utilfor time handling, and adopted sentence case across all UI strings to match Home Assistant's design language. - Media Performance: Implemented streaming for camera event clips to prevent Out-of-Memory (OOM) crashes on low-resource hardware like Raspberry Pis.
- Smart Device Management: The integration now automatically discovers new devices without a restart and actively cleans up "stale" or removed devices from the Home Assistant registry.
🌡️ Thermostats & Climate
- State Logic: Fixed a bug where "OFF" state was masked by Eco mode and resolved a race condition that could cause simultaneous temperature and HVAC mode changes to overwrite each other.
- Reliability: Added automatic retries for entity commands if a token expires exactly when a user interacts with the UI.
- Sensor Accuracy: Prevented the thermostat from incorrectly resetting to its internal sensor when a different remote sensor was deactivated.
🛡️ Nest Protect (Smoke/CO)
- Zero False Alarms: Fixed a bug where missing API data was interpreted as a sensor failure; Home Assistant will no longer trigger "Problem" or "Fault" alerts for healthy Protects.
📷 Cameras & Media
- OOM Prevention: Media Browser now streams MP4 clips rather than loading them entirely into system RAM.
- Event Deduplication: Increased the event tracking buffer to prevent duplicate notifications during high-activity periods.
- Legacy Logic: Improved parsing for legacy properties to correctly handle string-based booleans (e.g., "flipped" status).
- Eliminated "polling drift" by dynamically calculating sleep intervals, ensuring 5-second camera event polling actually happens every 5 seconds.
🚿 Water Heaters (Heat Link)
- UI Simplification: Removed redundant "Boost" operation modes from the UI to prevent user confusion, keeping only the explicitly timed options (30m, 1h, 2h).
⚙️ Core Integration & Performance
- Logging: Eliminated "unavailability spam" in logs during network outages by implementing a "log once" suppression strategy.
- Error Handling:
- Added safe dictionary filtering for all API responses to prevent integration crashes when Google adds new, unknown fields to their JSON payloads.
- Prevented "blind retries" on
400 Bad Requesterrors to reduce unnecessary API spam.
Full Changelog: v0.2.2...v0.2.3