v2.1.0 — HT25G2 Gen2, RSSI/status sensors, BLE proxy hardening
New devices
- HT25G2-0001 (Gen2 hose-tap, fw0111) — protobuf-protocol valve support. Thanks @exactmike (#11).
- HT34-0001 (fw0058) — now routed to the XD protobuf class alongside HT34A-0001.
New entities
- Signal strength (RSSI) sensor, read from Home Assistant's bluetooth manager so it reports even while disconnected (disabled by default).
- Connected and Watering binary sensors per device.
- Battery sensors are now created for every BLE timer instead of being gated on a cloud-cached value (BT-only devices the cloud never primed now get them).
Reliability
- Marginal-link hardening: the BLE handshake is now bounded with a timeout and the open is retried a few times, so a weak ESPHome-proxy link fails cleanly instead of wedging the connection.
- Capped write-ack: the ATT Write Response wait is capped — the device acks via notification, not a write response, and some transports never relay the absent response. The notification drain is the real ack.
- HT25 re-bind per command: actuation now re-runs the bind/init before every START/STOP, so a stale pooled bind can't silently drop a watering command (~1.2 s extra latency per actuation).
- HT34A status confirmation: battery + watering-status decode, with retry-and-confirm start/stop that verifies the real device state.
Other
probe_senddebug service for sending arbitrary inner-plaintext frames during protocol work.
Notes
- HT34A / HT34 actuation is not verified on hardware — treat as experimental.
- Most of the reliability and sensor work was ported from @stuartdenne's fork; Gen2 device support is from @exactmike.
Full changelog: v2.0.6...v2.1.0