Skip to content

Latest commit

 

History

History
314 lines (148 loc) · 17.3 KB

File metadata and controls

314 lines (148 loc) · 17.3 KB

Changelog

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.

4.6.2 (2026-08-31)

🐛 Bug Fixes

  • client: 🐛 prevent stale poll from overwriting a completed masked write (#70) (d1293f8)

4.6.1 (2026-08-31)

🐛 Bug Fixes

  • client: 🐛 serialize RMW cache writes against the poll (#68) (0fbb27d)

4.6.0 (2026-08-27)

✨ Features

  • decoders: ✨ add public decode_masked_flag helper (#66) (b039b0a)

4.5.3 (2026-08-26)

🐛 Bug Fixes

  • client: 🐛 raise on rejected write instead of returning None (#64) (775d9e8)

4.5.2 (2026-08-25)

🐛 Bug Fixes

  • client: 🐛 write RMW results back into the register cache (#62) (8489cb4)

4.5.1 (2026-07-23)

🐛 Bug Fixes

  • client: 🐛 guard backwash against auto mode and align filtvalve API with relays (#58) (8109819)

4.5.0 (2026-07-23)

✨ Features

  • client: ✨ add async_stop_backwash and skip verify for countdown registers (#56) (0d6e4d9)

4.4.0 (2026-07-23)

✨ Features

  • client: ✨ add async_start_backwash via FILTVALVE registers (#54) (4e434d5)

4.3.1 (2026-07-22)

🐛 Bug Fixes

  • client: gate filtration-state fixup to variable-speed pumps (#52) (86596ad)

4.3.0 (2026-07-17)

✨ Features

  • client: add boost guard to manual filtration (#50) (ecfe26b)

4.2.1 (2026-07-11)

🐛 Bug Fixes

  • client: 🐛 read relay auto-mode guard from timer cache (#48) (1abb9ef)

4.2.0 (2026-07-07)

✨ Features

  • exceptions: ✨ add reason discriminator to NeoPoolInvalidStateError (#47) (91c09f6)

🐛 Bug Fixes

  • client: 🩹 default apply=True on async_set_setpoint (#45) (eb8f536)

4.1.0 (2026-07-07)

✨ Features

  • client: ✨ add ConfigKind + async_set_config_option for discrete config slots (#44) (08d5a1e)
  • client: ✨ extend async_set_setpoint with SMART_TEMP kinds and apply kwarg (#42) (8fda90c)

4.0.0 (2026-07-07)

⚠ BREAKING CHANGES

  • 💥 rename HIDRO/ION Low Flow status keys to Low + add Redox Low (#40)
  • 💥 add high-level relay / setpoint / flag API (#39)

✨ Features

  • 💥 add high-level relay / setpoint / flag API (#39) (30a5a8e)
  • 💥 rename HIDRO/ION Low Flow status keys to Low + add Redox Low (#40) (61f9747), closes #33

3.6.0 (2026-07-02)

✨ Features

  • decoders: ✨ add calculate_next_interval_time helper (#37) (e489a88)
  • decoders: ✨ add device time codec (#38) (eff733d)
  • decoders: ✨ add parse_register_int helper (#36) (64cd80a)
  • registers: ✨ add find_corrupted_gpio_registers helper (#34) (0ba247b)

3.5.0 (2026-07-01)

✨ Features

  • decoders: ✨ expose label collections and add ph alarm / filtvalve codecs (#31) (468db01)

3.4.1 (2026-06-18)

🐛 Bug Fixes

  • client: 🩹 log int value instead of TimerRelayMode repr in write debug (648045d)

3.4.0 (2026-06-18)

✨ Features

  • registers: ✨ add named bitmask constants (5f6417f)

3.3.0 (2026-06-18)

✨ Features

  • registers: ✨ add named constants for all integration-facing registers (a8330d7)

3.2.0 (2026-06-17)

✨ Features

  • ✨ tier-2 register types and decoders (#25) (782619d)

3.1.3 (2026-06-17)

🐛 Bug Fixes

  • client: 🩹 rename MBF_CELL_RUNTIME* combined keys to CELL_RUNTIME_* (932e5ff)

3.1.2 (2026-06-17)

🐛 Bug Fixes

  • client: 🩹 async_sync_device_time takes a unix timestamp (08cadb5)

3.1.1 (2026-06-17)

🐛 Bug Fixes

  • decoders: 🩹 rename cell-boost mode "active_with_redox" to "active_redox" (fd73a95)

3.1.0 (2026-06-17)

✨ Features

  • decoders: ✨ rename get_filtration_speed to compute_filtration_speed_state (#20) (414b7ba)

3.0.0 (2026-06-17)

⚠ BREAKING CHANGES

  • async_read_all() returns 32-bit register pairs as single combined keys instead of the _LOW/_HIGH halves.

✨ Features

  • ✨ tier-1 extraction of integration logic into the library (#18) (94f2934)

2.2.0 (2026-06-16)

✨ Features

  • api: ✨ accept unit_id config key (with slave_id fallback) (#16) (ea720ec)

2.1.1 (2026-06-14)

🐛 Bug Fixes

  • 🩹 relax pymodbus upper bound for HA core hassfest (c9d9133)

2.1.0 (2026-06-13)

✨ Features

  • client: ✨ add public async_read_register API (#13) (1dc6af1)
  • registers: ✨ expand COMMAND_REGISTERS with 4 auto-clearing commands (#12) (a95de93)

2.0.1 (2026-06-10)

🐛 Bug Fixes

  • client: 🐛 suppress verification warning for MBF_ACTION_COPY_TO_RTC (#9) (a0c16e9)

♻️ Refactoring

  • ♻️ adopt mypy strict alongside basedpyright (#11) (21e6f41)

2.0.0 (2026-06-07)

⚠ BREAKING CHANGES

  • callers that caught pymodbus.ConnectionException / pymodbus.ModbusException must catch NeoPoolError (or a subclass) instead.

✨ Features

  • 💥 raise NeoPool*Error subclasses on every failure path (#3) (f026d69)

1.1.0 (2026-06-06)

✨ Features

  • ✨ add async_probe_serial for one-shot device discovery (#4) (29995b8)

1.0.0 (2026-06-06)

⚠ BREAKING CHANGES

  • async_write_aux_relay() now raises ValueError when relay_index is outside 1-4, where the previous version returned None and logged an error. Callers that relied on the silent no-op must validate the index themselves or wrap the call in a try/except.
  • PERIOD_MAP and PERIOD_SECONDS_TO_KEY have been removed from neopool_modbus.registers. They were only meaningful to the Home Assistant integration's select entity and live in custom_components/neopool/const.py from v4.0.0 onwards. Library consumers that imported either dict must inline the mapping themselves.

✨ Features

  • 💥 raise ValueError on invalid AUX relay index (269b7df)
  • 💥 remove PERIOD_MAP / PERIOD_SECONDS_TO_KEY, mark library Production/Stable (827fe3d)

🐛 Bug Fixes

  • 🩹 grant publish-pypi job contents:write for asset upload (cd48aed)
  • client: 🐛 fall through to device read when timer cache is incomplete (c5268ad)
  • client: 🐛 move get_client() and total_writes bump into _perform_write_timer try block (e261f47)
  • client: 🐛 verify isError() on EEPROM save and EXEC after timer write (488e8c5)
  • client: 🐛 verify isError() on every AUX relay write (d5598f4)

♻️ Refactoring

  • ♻️ collapse aux relay set/clear if-else into ternary (aff22fa)

🎨 Style

  • 🎨 collapse one-statement raise to single line (974e709)
  • 💄 fix lint findings in test files (B/RUF/SIM) (25c743c)
  • 💄 replace ambiguous unicode dashes with ASCII hyphens (8fbbc38)

0.2.0 (2026-06-06)

✨ Features

  • ✨ add decoders module (6c69762)
  • ✨ add registers module (37ac24c)
  • ✨ add status_mask module (211bf66)
  • ✨ define public exception hierarchy and module API (d17d9a6)
  • ✨ port NeoPoolModbusClient to library (d130527)

🐛 Bug Fixes

  • 🩹 remove unsupported // comment from pyrightconfig.json (504efcb)

🎨 Style

  • 🎨 reflow long lines after modbus_acall inlining (6fdc344)

[Unreleased]

Added

  • Initial public API — NeoPoolModbusClient, register address constants, exceptions.
  • Extracted from the Home Assistant neopool integration.