Skip to content

[3.0.2] - 2026-05-05

Choose a tag to compare

@DTekNOdev DTekNOdev released this 05 May 08:39

Fixed

  • Deadlock when turning filter off — the filter-off command could hang indefinitely
  • Rapid polling storm during preheat — excessive API traffic during the preheat cycle
  • Command confirmation timeout loop — unconfirmed commands could trigger infinite rapid-poll cycles
  • 30-second command latency — duplicate confirmation mechanisms caused unnecessary delays
  • Silent command failures — commands acknowledged by the cloud but ignored by the spa are now retried once
  • Rapid command sequences — sending two commands quickly no longer causes stale retries or conflicting state

Added

  • 3-tier adaptive polling — polling interval adjusts automatically based on spa activity:
    • Idle (120s): nothing running, state stable for 10+ minutes
    • Active (30s): heater, filter, bubble or jet is on
    • Rapid (1s for 15s): after sending a command from HA
    • External change (5s for 15s): when someone uses the physical panel or MSpa Link app
  • Historical prediction bias correction — past prediction accuracy is used to correct future time-to-target estimates, fading naturally as the rate model improves
  • Device Detail diagnostic sensor — extended device info fetched once on startup (product images, device UUID, warning code, etc.)
  • Temperature-bucketed heating rates — heating rate tracked in three temperature ranges for more accurate long-run estimates
  • Session condition scalar — ambient conditions (hot/cold day) are reflected in the estimate within the first few minutes of heating
  • Prediction accuracy tracker — logs estimated vs actual heating times for each session (last 10 persisted)
  • Time-decay on stored rates — stale seasonal data gradually loses influence over time
  • New sensor attributes: heat_rate_cold/mid/hot_deg_per_hour, session_condition_scalar, prediction_bias