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)
4.6.1 (2026-08-31)
4.6.0 (2026-08-27)
4.5.3 (2026-08-26)
4.5.2 (2026-08-25)
4.5.1 (2026-07-23)
4.5.0 (2026-07-23)
4.4.0 (2026-07-23)
4.3.1 (2026-07-22)
4.3.0 (2026-07-17)
4.2.1 (2026-07-11)
4.2.0 (2026-07-07)
4.1.0 (2026-07-07)
- 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)
- 💥 rename HIDRO/ION Low Flow status keys to Low + add Redox Low (#40)
- 💥 add high-level relay / setpoint / flag API (#39)
- 💥 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)
- 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)
3.4.1 (2026-06-18)
- client: 🩹 log int value instead of TimerRelayMode repr in write debug (648045d)
3.4.0 (2026-06-18)
- registers: ✨ add named bitmask constants (5f6417f)
3.3.0 (2026-06-18)
- registers: ✨ add named constants for all integration-facing registers (a8330d7)
3.2.0 (2026-06-17)
3.1.3 (2026-06-17)
- client: 🩹 rename MBF_CELL_RUNTIME* combined keys to CELL_RUNTIME_* (932e5ff)
3.1.2 (2026-06-17)
- client: 🩹 async_sync_device_time takes a unix timestamp (08cadb5)
3.1.1 (2026-06-17)
- decoders: 🩹 rename cell-boost mode "active_with_redox" to "active_redox" (fd73a95)
3.1.0 (2026-06-17)
3.0.0 (2026-06-17)
async_read_all()returns 32-bit register pairs as single combined keys instead of the_LOW/_HIGHhalves.
2.2.0 (2026-06-16)
2.1.1 (2026-06-14)
- 🩹 relax pymodbus upper bound for HA core hassfest (c9d9133)
2.1.0 (2026-06-13)
- 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)
2.0.0 (2026-06-07)
- callers that caught pymodbus.ConnectionException / pymodbus.ModbusException must catch NeoPoolError (or a subclass) instead.
1.1.0 (2026-06-06)
1.0.0 (2026-06-06)
- 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
selectentity and live in custom_components/neopool/const.py from v4.0.0 onwards. Library consumers that imported either dict must inline the mapping themselves.
- 💥 raise ValueError on invalid AUX relay index (269b7df)
- 💥 remove PERIOD_MAP / PERIOD_SECONDS_TO_KEY, mark library Production/Stable (827fe3d)
- 🩹 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)
- ♻️ collapse aux relay set/clear if-else into ternary (aff22fa)
- 🎨 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)
- ✨ 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)
- 🩹 remove unsupported
//comment from pyrightconfig.json (504efcb)
- 🎨 reflow long lines after modbus_acall inlining (6fdc344)
- Initial public API —
NeoPoolModbusClient, register address constants, exceptions. - Extracted from the Home Assistant
neopoolintegration.