Skip to content

v1.4.0

Choose a tag to compare

@nphil nphil released this 17 Sep 19:43
· 9 commits to main since this release

Fluval BLE v1.4.0

v1.4.0 adds one option: Preferred proxy, which pins the fixture's Bluetooth
link to the ESPHome proxy you choose instead of letting Home Assistant re-pick
by signal strength on every connect.

Added

  • Preferred proxy (options flow, dropdown of the proxies Home Assistant can
    currently see; leave it empty for the previous behaviour).

    Home Assistant's Bluetooth stack ignores the device an integration hands it
    and re-scores every available route on each connect, so the fixture can be
    carried by a proxy two rooms away even when one sits beside it. That is not a
    cosmetic detail: every ghost link observed on this network between 2026-09-09
    and 2026-09-17 formed on exactly such a marginal long link, where the
    disconnect handshake fails to complete and the fixture is left believing it is
    still connected - it stops advertising, and nothing can reach it until the
    proxy's controller is made to drop the link.

    Fallback is bounded and automatic. The preferred proxy is used only when
    it is currently advertising the fixture, can accept a connection, and has not
    failed the last three attempts in a row. Otherwise Home Assistant's default
    selection runs completely unchanged - no route is ever blocked, and the
    preference applies again as soon as that proxy succeeds once. A proxy that is
    offline when you open the options form is still offered, so a choice already
    made is never silently dropped.

    The Connection sensor gains preferred_proxy and via_preferred_proxy
    attributes, so it is visible whether a live link actually took the preferred
    path or fell back.

Notes

Implemented by specialising only Home Assistant's backend-selection step; all of
its connection bookkeeping (slot accounting, in-progress tracking, failure
counts) is left intact. If a future Home Assistant release changes that internal
hook, the option disables itself with a warning in the log and default routing
applies - it cannot break connections.