Skip to content

1.1.2

Choose a tag to compare

@nphil nphil released this 05 Sep 22:20
· 21 commits to main since this release

Fluval BLE v1.1.2

v1.1.2 fixes a permanent hang a live install hit twice: a single wedged
Bluetooth read/write could freeze the whole integration until a full Home
Assistant restart. It also fixes native schedule writes silently reporting
success without confirming the fixture actually applied them, a guardian
schedule-correction path that had never worked against real hardware, and
adds an honest "stale" status for a supervisor that has stopped running.

Highlights

  • No more permanent hangs from a wedged Bluetooth operation. A GATT
    read or write that never gets a response from the proxy or fixture (seen
    against a bleak-esphome proxy) used to be able to hang forever while
    holding every lock that serializes commands - one stuck operation
    wedged the whole integration, with guardian checks and service calls
    piling up behind it and nothing but an HA restart clearing it. Every
    Bluetooth-facing wait (connect, read, write, subscribe, disconnect) is
    now bounded; a timeout marks the connection broken, disconnects it, and
    fails that one call immediately instead of hanging everything behind it.
    Commands and guardian checks also have their own overall deadlines as a
    backstop, and the guardian skips an overlapping check instead of queuing
    it.
  • Native schedule writes now verify the fixture actually applied them.
    fluvalble.set_native_auto_schedule and fluvalble.set_native_pro_schedule
    used to report success as soon as the write was accepted; the fixture
    could silently keep its old schedule. Both actions now re-read the
    schedule after writing, retry once on a mismatch, and raise a clear error
    naming the field that never applied if it still doesn't match. The mode
    select entity also now exposes the fixture's current auto_schedule and
    pro_schedule readback as attributes, so automations can check it
    directly.
  • The guardian's own schedule-correction repush is fixed. When the
    fixture's on-device schedule drifted from what was last programmed, the
    guardian's automatic repush had never actually worked against real
    FACEBD, classic, or Plant Pro hardware - a shape mismatch between a live
    readback and what the packet builders expected made every attempt fail
    silently.
  • A dead guardian now says so. If checks stop completing, the guardian
    status sensor reports stale instead of freezing on its last good
    result, and the schedule-problem alert also trips if that staleness
    persists.