Skip to content

v0.2.3

Choose a tag to compare

@tronikos tronikos released this 02 Mar 08:58

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_util for 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 Request errors to reduce unnecessary API spam.

Full Changelog: v0.2.2...v0.2.3