All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Reauth flow: if your API key is revoked or changed, Home Assistant will prompt you to re-enter it rather than requiring a full remove/re-add
entity_categoryassignments: diagnostic entities (connectivity, errors, filter status, chemistry status) are now grouped as diagnostic; config entities (filtration duration/frequency, boost mode) are grouped as config- Developer setup instructions in README
- Known Limitations and Troubleshooting sections in README
- Arctic Spa API documentation links (interactive docs and OpenAPI spec)
- CI workflow now triggers on
masterbranch (was incorrectly set tomain, causing CI to never run) sensor.py: addedNoneguard onnative_valueto preventAttributeErrorwhen coordinator data is unavailableconfig_flow.py: removed duplicateclient.close()call on success pathapi.py_put: now raisesArcticSpaApiError/ArcticSpaConnectionErroron failure instead of silently returningFalse, making command errors visible and loggableapi.pyasync_set_pump: added bounds validation forpump_id(must be 1 or 2)number.py: filtration duration/frequency setters now safely handleNonecoordinator data
- Temperature sensors and number entities now use
UnitOfTemperature.FAHRENHEITconstant (enables HA unit conversion system for metric users) - Filtration Duration sensor now uses
UnitOfTime.HOURSconstant SpaBoy Producingbinary sensor icon changed frommdi:chemical-weapontomdi:flask- Switch and number command handlers now log errors on API failure instead of silently ignoring them
- Migrated from legacy
hass.data[DOMAIN]pattern toentry.runtime_data(HA 2024.x+ best practice) coordinator.py: auth errors during polling now raiseConfigEntryAuthFailed(triggers reauth flow) instead ofUpdateFailed- Coordinator now receives
config_entryparameter per HA 2024.x+ pattern - Config flow now uses HA-managed aiohttp session (
async_get_clientsession) for consistency with runtime behaviour - README: corrected "Pump 1 (3-speed)" to clarify switch controls high speed only
- Redundant explicit device registration from
__init__.py(device is auto-created by HA when entities register theirdevice_info) hacs.json: removed invaliddomainsandiot_classfields
hacs.json: added"zip_release": trueto direct HACS to use the release zip artifact
- Initial release
- Temperature monitoring and setpoint control
- Pump 1 and Pump 2 jet switching (on/off, high speed)
- Light switching
- SpaBoy water chemistry monitoring (pH, ORP, status)
- Filtration schedule management (duration and frequency)
- Boost mode switch
- Error reporting sensors
- Connectivity monitoring
- Home Assistant config flow setup
- HACS compatibility