Skip to content

v2026.8.1

Choose a tag to compare

@lasswellt lasswellt released this 12 Aug 00:48
· 4 commits to master since this release

Sensor accuracy for gateway-bridged devices, colour delivery for strips the cloud silently drops, and four merged community PRs.

Fixed

Gateway-bridged thermometers reading wrong, unknown, or empty

  • H5310 pool thermometer showing ~191°F (#157). The Developer API was returning the value already in Fahrenheit while the entity declared Celsius, so Home Assistant converted it a second time. The account's own fahOpen display preference is now the authority on the unit, with an SKU fallback for accounts whose device list can't be read — so a Celsius account is left alone.
  • H5310 behind an H5044 stuck at unknown forever (#151). A device listed by the account API with no reading was claimed by that source anyway, permanently silencing the Developer poll that would have worked. Reading-less entries now stay on the Developer poll and are handed over only once real data appears.
  • H5112 sensors visible but blank (#150) — unconfirmed fix. These are now read from the account API, on the reasoning that "device appears but every reading is empty" is the same signature the H5179 turned out to have in #141. The reporter's diagnostics had expired before I could check, so this ships as an educated guess rather than a reproduced fix; confirmation on #150 welcome. Requires the account login (email/password), not just an API key.
  • H5109 battery entity missing (#132). The retry added in 2026.7.6 could never run on accounts where the thermometer's battery was the only thing the account API contributed, because the poll that drives it was never scheduled. Thermometers still missing a battery now keep that poll alive.
  • H5058 battery stuck Unavailable (#145). Leak sensors that also appear in the Developer API were getting two battery entities under the same unique ID; one got dropped and left a stale Unavailable row behind.

Lights that accept a colour and ignore it (#149, #158)

Govee's cloud answers these colour writes with HTTP 200 and "msg": "success" and then never delivers them. Colour and colour temperature now go over the local network when a device is LAN-reachable, verified by reading the device back — an ignored write still falls through to the cloud exactly as before. Where MQTT control is enabled, a colour write is also sent in the legacy color form, which is the only one some older strips act on.

Water-leak alerts missed entirely (#145, PR #152 by @Danimal4326)

Govee writes those alert strings with non-breaking spaces; the matcher only stripped ASCII ones, so every trip read as dry.

Added

  • Water detector poll interval is now configurable in the integration options, 60–3600s (PR #152 by @Danimal4326).
  • LAN, MQTT and BLE commands are recorded in diagnostics, including why a LAN write failed to confirm. That history used to be cloud-only, so a diagnostics download showed nothing at all for exactly the reports where it's the evidence.
  • Gateway command routing for devices behind a hub (#135, groundwork for #137). Gateway topics are now read from the account device list and can be addressed directly — the missing piece @thephw identified for the H5901 Smart Water Timer. No device behaviour changes yet; the valve opcode still needs verification on live hardware.

Also

  • No duplicate moisture entity for hub-attached leak sensors (PR #155 by @momousta).
  • UnitOfRatio.PARTS_PER_MILLION for the CO₂ sensor, with a fallback so installs below HA 2026.7 keep working (PR #156 by @brian6932).
  • README device list updated (PR #154 by @maxi07).
  • Partial decode of the hub ee34 thermometer frame documented in docs/govee-protocol-reference.md (#151). The timestamp field is confirmed and the temperature byte identified, but a single labelled reading can't separate the two candidate scales, so it is deliberately not implemented yet.

Thanks

@Danimal4326, @momousta, @brian6932, @maxi07 and @thephw for PRs and investigation, and everyone who attached diagnostics — every fix above came from one.