Releases: rellerton/ha-aiper
Releases · rellerton/ha-aiper
Release list
v1.3.3
Release v1.3.3
- Strengthened the physically validated S1 charging reconciliation: Charging
now overrides both an omittedin_waterfield and an explicitly replayed
stale wet value. This remains model-specific; other cleaners keep their
payload-reported water state.
Full Changelog: v1.3.2...v1.3.3
v1.3.2
Release v1.3.2
- Suppressed an observed Scuba S1 MQTT lifecycle replay where redundant cloud
topics briefly republished an older Cleaning snapshot immediately after a
Parked or Charging report. The narrow two-second guard is enabled only for
Scuba_S1_2025, preserves the newer terminal state and battery/runtime/water
fields, and does not block a later genuine cleaning start. - Fixed
Scuba_S1_2025charging reports that omitin_water: charging now
authoritatively clears a stale submerged state. Other models retain their
existing payload-driven water semantics.
Full Changelog: v1.3.1...v1.3.2
v1.3.1
Release v1.3.1
- Added a reusable, capability-gated Estimated Cleaning Time duration sensor.
It is enabled initially only forScuba_S1_2025, whose runtime units,
lifecycle timer, reset, charging, and stale-report behavior have been
physically validated. It anchors to the separate raw Current Cleaning Time
sensor and advances locally once per minute only while normalized state is
Cleaning/running/not charging; changed cloud samples correct the estimate
immediately, while unchanged stale snapshots do not suppress progression.
The estimator restores across Home Assistant restarts only when Cleaning is
still authoritative and resets to zero otherwise. If Aiper remains falsely
latched at Cleaning after the physical robot stops, the estimate can continue
until a newer lifecycle report arrives. The same mechanism can be enabled
for other Aiper robots after their runtime and lifecycle semantics are
validated; no other model profile changes in this release. - Fixed S1 path/mode capability refreshes briefly republishing stale cached
lifecycle values over newer MQTT state. Capability refreshes now update only
their path and mode fields, preserving current status, battery, water state,
and runtime. - Fixed config-entry diagnostics reading the obsolete
hass.dataruntime
location. Diagnostics now useConfigEntry.runtime_datawhile retaining a
compatibility fallback for older loaded entries.
Full Changelog: v1.3.0...v1.3.1
v1.3.0
Release v1.3.0
Added
- Added hardware-verified
Scuba_S1_2025clean-path support using the official
app'sAT+AUTO?query andAT+AUTO=0/1set contract. This model no longer
uses speculative REST, shadow, or fallback command variants for clean path. - Added the app-derived
Scuba_S1_2025cleaning-mode profile: Auto, Floor,
Wall, and Scheduled. The S1 now queries withAT+MODE?, writes only the
correspondingAT+MODE=1/2/3/5commands, and no longer exposes Waterline. - Added bounded S1 clean-path write confirmation so stale immediate readback
cannot briefly revert a newly acknowledged selection in Home Assistant. - Added an explicit S1 capability profile that retains the observed MicroMesh
consumable while suppressing unsupported temperature, charge-type, roller,
tread, and propeller entities. - Fixed
Scuba_S1_2025post-cycle charging reconciliation. A fresh REST
charging status now supersedes an hours-old MQTT Cleaning/Wet report and
coherently reports Charging, Not running, Dry, Mode 0, and zero active
cleaning runtime. If explicit status is absent, three increasing battery
samples spanning at least two minutes may provide the same fallback only
when no newer MQTT Machine report exists. Diagnostics identify the trigger
used. Other device models retain the existing MQTT precedence. - Fixed the S1 flipping from Wet to Dry when a fresh REST poll reports Cleaning
together with a stalein_water=0. For this model, active Cleaning is always
Wet. Observed status 10 represents parking underwater and remains Wet when
REST omits a newer water-state report. - Fixed recent MQTT lifecycle state being retained indefinitely over newer REST
status. MQTT now remains authoritative per field for two polling intervals;
after that, fresh REST can update running, status, charging, and mode. Active
cleaning remains visible even when the independent cloud-online flag is
false, and redacted diagnostics report each field's source and age. - Fixed MQTT remaining disconnected after temporary AWS credentials expire or
the AWS IoT connection is interrupted. REST-backed entities stay available,
signing credentials refresh without blocking Home Assistant, and a
rate-limited watchdog rebuilds and re-subscribes prolonged connections.
Device callbacks are retained even when MQTT is unavailable during initial
setup, and diagnostics expose connection-recovery timing without credential
material. - Persisted the last confirmed
Scuba_S1_2025clean-path preference across
integration restarts. S1 path and mode queries now also run on an independent
five-minute timer, so frequent MQTT push updates cannot postpone them by
continually resetting the general coordinator refresh.
Full Changelog: v1.2.4...v1.3.0