github lasswellt/govee-homeassistant v2026.9.6

3 hours ago

Repairs you can act on, and every entity action reports failure

A full review of the integration against Home Assistant's developer standards and integration quality scale, with the gaps closed.

Repairs are actionable. The Govee API rate limited repair now has a Submit button that doubles the polling interval (up to 300 s) and reloads. The real-time repair, now titled Govee real-time updates unavailable, retries the account sign-in and the AWS IoT connection when you submit it. The old auth_failed repair is gone: an invalid API key goes through Home Assistant's own re-authentication flow instead.

Failures are visible. Every entity action (lights, switches, fans, humidifiers, numbers, selects, buttons, segments) raises an error when Govee rejects the command, so a failed step shows up in automation traces instead of passing silently. The two actions validate their input and name the offending value. A total cloud outage marks every entity unavailable and logs once when it starts and once when it recovers, rather than serving stale state.

Set-up and clean-up. The same API key cannot be added twice, and re-authentication or reconfiguration refuse a key another entry already uses. If a Govee device is advertising over Bluetooth nearby, Home Assistant offers the integration once under Discovered. Removing entities of devices that left the account no longer touches leak sensors, hubs, or the integration's own diagnostics device, a failed discovery skips the clean-up entirely, and a device Govee no longer reports can be deleted from its device page.

Entities. Names and icons come from the translation files; entity IDs are unchanged. Segment lights follow the device's online state like every other entity. Music sensitivity and the heater auto-stop switch are configuration entities. For new installs the rate-limit sensor, the last-update, last-command and MQTT-received timestamps, and the leak address sensors are disabled by default; existing installs keep whatever is enabled today.

Transport fixes

  • MQTT brightness is rescaled from the device's own range instead of assuming 0 to 100.
  • The official event channel reports connected only after its subscription succeeds, and warns once per outage instead of on every retry.
  • A superseded Bluetooth client can no longer mark the current one disconnected.
  • Scene fetches shared by several entities are shielded, so one cancelled request no longer fails the others.
  • REST calls carry a 30 s timeout, and null fields in API responses no longer escape the parser.
  • Account emails are gone from the log, and about thirty routine messages moved from info to debug.

Also

  • Quality scale: quality_scale.yaml records every rule with evidence, and the manifest declares platinum.
  • Tests: 3,256 tests, 99.9 % coverage with a 95 % floor enforced in CI; the whole repository is black-formatted and CI checks it.
  • README: corrections (credentials are stored in config entry storage, not encrypted; direct BLE control covers the H6199 and H1270 only), a contents line, the discovery card, the both segment mode, the device_id=ip LAN overrides, scenes as light effects, a fields table for the actions, and the repair titles in troubleshooting. ARCHITECTURE.md is rewritten from the current code.
  • Catalan and Spanish: the segment-light name no longer carries a placeholder the code never supplies.

Don't miss a new govee-homeassistant release

NewReleases is sending notifications on new releases.