Skip to content

Releases: pymodbus-dev/pymodbus

Pymodbus v3.11.1

10 Aug 15:40
Compare
Choose a tag to compare
  • Auto debug in case of an error. (#2738)
  • Remove duplicate log lines. (#2736)
  • Remove unused callback in ServerRequestHandler (#2737)
  • test on Python 3.14 (#2735)
  • Validate address in all datastores. (#2733)
  • Use asyncio.Event to deterministically ensure simulator start (#2734)
  • Ignore lockfile (#2730)
  • Link api_changes/changelog to README.
  • Add note about semver.org.
  • Datastore, add typing to set/get. (#2729)
  • Move exception codes to constants. (#2728)
  • Move ExceptionResponse to proper file. (#2727)
  • make base frame signature match subclasses (#2726)
  • Switch from venv+pip to uv (#2723)
  • Cleanup CI configuration (#2724)
  • Simplify code flow for broadcast requests (#2720)
  • Fix serial_forwarder.py from examples/contrib (#2715)
  • Remove discord. (#2714)

Pymodbus v3.11.0

05 Aug 15:25
Compare
Choose a tag to compare

v3.11.0 is actually a bug fix to v3.10.0, but since the fix causes an API change it was not possible otherwise make v3.10.1

  • Correct bit handling (each byte is LSB->MSB). (#2707)
  • read_input_registers docstring change count to regs (#2704)
  • Add dev_id/tid check in clients (#2711)

Pymodbus v3.10.0

27 Jul 21:14
Compare
Choose a tag to compare

DO NOT USE THIS RELEASE it is broken
v3.11.0 repair the broken part.

  • Raise runtimeerror if listen() fails. (#2697)
  • Correct values parameter in setValues. (#2696)
  • Correct return from getValues. (#2695)
  • Add request fc to exceptionResponse. (#2694)
  • DummyProtocol is not async (#2686)
  • Handle "little" for multiple values in to_registers (#2678)
  • Remove unused const. (#2676)
  • Add retries to ModbusPDU class (#2672)
  • Don't invoke trace_connect callback twice (#2670)
  • ensure unpacking of proper length during decoding (#2664) (#2665)
  • README clean-up (#2659)
  • Bump coverage to 95,5% (#2658)
  • Simplify response rejection. (#2657)
  • Bump coverage to 93%. (#2656)
  • Solve ModbusDeviceContext bug. (#2653)
  • Bit handling LSB -> MSB across bytes. (#2634)
  • Change slave to device_id and slave= to device_id=. (#2600)
  • Remove payload. (#2524)

This release is made due to a longer delay in releasing v4.0.0 (probably end of year).

Remark, this release contains important changes for the modbus integration in Home Assistant ! The changes are tested in a custom_component modbus.

Pymodbus v3.9.2

18 Apr 15:22
Compare
Choose a tag to compare
  • Reactivate simulator validate. (#2643)
  • Don't bool-test explicit datastores (#2638)
  • Test and hard delayed response test. (#2636)
  • Update simulator doc. (#2635)
  • SimData update
  • Officially working towards 4.0.0

Pymodbus v3.9.1

09 Apr 08:49
Compare
Choose a tag to compare
  • Correct byte order in bits. (#2631)

pymodbus v3.9.0

07 Apr 16:54
Compare
Choose a tag to compare
  • Correct bit handling internally and in API. (#2627)
  • default argument ModbusSequentialDataBlock (#2622)
  • Fix exception error message for decoding response (#2618)
  • Expose exception_code to API. (#2615)
  • Simplify ruff config (#2611)
  • Documentation dont fixed. (#2605)
  • sum() can operate on an Iterator directly (#2610)
  • SimData update. (#2601)
  • StartServer custom_functions -> custom_pdu.
  • Update pyproject.toml to remove python 3.9.
  • Remove validate() from datastores. (#2595)
  • Python 3.9 is EOL, not supported actively. (#2596)
  • correct handle_local_echo for sync client. (#2593)
  • devcontainer, automatic install. (#2583)
  • Don't set_result on completed futures. (#2582)
  • Flush recv_buffer before each transaction write. (#2581)
  • Add missing trace. (#2578)
  • Update github actions. (#2579)

Remark #2627 is a very important commit, because e.g. read_coils returned the coils in a wrong order, meaning the app would misinterpret.
This is a very old, which went unnoticed for years.

pymodbus v3.8.6

10 Feb 11:52
Compare
Choose a tag to compare
  • Allow id=0 and check if response.id == request.id. (#2572)

It turns out that not allowing id=0 was too restrictive, instead now requests with id=0 is allowed provided the device responds with id=0.

pymodbus v3.8.5

09 Feb 12:56
Compare
Choose a tag to compare
  • New simulator is WIP, not to be used. (#2568)
  • dev_id=0 no response expected (returns ExceptionResponse(0xff)). (#2567)
  • New simulator datastore. (#2535)

pymodbus v3.8.4

08 Feb 18:17
Compare
Choose a tag to compare
  • Parameterize string encoding in convert_to_registers and convert_from_registers (#2558)
  • Fix client modbus function calls in remote by adding count as keyword argument (#2563)
  • Fix exception text in ModbusPDU.validateAddress (#2551)
  • Typo arround no_response_expected (#2550)
  • Trace new connection in server. (#2549)
  • Add trace to server.
  • Update misleading DATATYPE text. (#2547)
  • Fix pylint.
  • Clarify server usage.
  • Solve instable transaction testing. (#2538)

v3.8.3

05 Jan 20:37
Compare
Choose a tag to compare

Bug fix release, and remove the deprecated tag on payload.

The main goals have changed, please see https://pymodbus.readthedocs.io/en/latest/source/roadmap.html

For details on the payload decoder/encoder please see #2525

Changes:

  • Remove deprecate from payload. (#2532)
  • Add background parameter to servers. (#2529)
  • Split async_io.py and simplify server start/stop. (#2528)
  • Update custom_msg example to include server. (#2527)
  • Move repl doc to repl repo. (#2522)
  • Add API to set max until disconnect. (#2521)