github disforw/goveelife 4.B1
4.B1 — New Sheriff in Town

latest releases: v4.B3, v4.B2
pre-release19 hours ago

🤠 New Sheriff in Town

This release brings a comprehensive overhaul of the goveelife integration — a lot has changed under the hood.

🔴 Critical Fixes

  • Async HTTP — Replaced blocking requests library with aiohttp throughout. No more blocking the Home Assistant event loop.
  • Mutable class state — Fixed a nasty shared-state bug across fan, climate, humidifier, and switch platforms where class-level dicts/lists were shared across ALL device instances, causing state corruption.
  • Humidifier humidity sensorcurrent_humidity was returning "on"/"off" strings instead of a float. Fixed to query the correct capability.
  • Climate turn-on crashasync_turn_on referenced HVACMode.HEATING which wasn't in the mode mapping, causing a KeyError at runtime for all heater/kettle devices.
  • Silent entity failures__init__ was silently returning None on failure, creating broken half-initialized entities. Now raises RuntimeError properly.
  • Switch platformGoveeLifeSwitch wasn't inheriting from SwitchEntity. It is now.

🟡 Improvements

  • Deprecated HA APIs — Replaced old per-platform unload loop and manual entity registry removal with async_unload_platforms()
  • Stdlib cleanup — Replaced third-party importlib_metadata with stdlib importlib.metadata; replaced deprecated async_timeout with asyncio.timeout
  • JSON payloads — Standardized all JSON payload building with json.dumps()
  • Shared helpers — Extracted async_turn_on_entity() / async_turn_off_entity() into utils.py
  • Dead code removed — Cleaned up unused state-fetch-and-discard in sensor.py

🟢 Housekeeping

  • Fixed typos (GooveAPIGoveeAPI, entitesentities)
  • Removed leftover debug utility functions (ProgrammingDebug, async_ProgrammingDebug)
  • Removed unnecessary await asyncio.sleep(0) yield points throughout
  • Full ruff lint + format pass — all checks clean

⚠️ Notes

  • aiohttp>=3.9.0 is now a requirement (replaces requests)
  • The sensorHumidity capability name used for the humidifier fix follows the Govee OpenAPI spec — please report if your device uses a different instance name

Don't miss a new goveelife release

NewReleases is sending notifications on new releases.