Skip to content

Releases: pymodbus-dev/pymodbus

v3.12.1

19 Feb 21:01

Choose a tag to compare

Minor bug fixes.

  • SimDevice / SimRuntime fixes. (#2871)
  • No inter_frame_time check for baudrate > 38000. (#2882)
  • Fix smaller bugs in test, part 2. (#2880)
  • simulator startup armoring and update 3.x docs (#2877)
  • Fix smaller bugs in test, part 1. (#2879)
  • Update README.rst. (#2878)
  • Coverage limit is 99.95% (to allow a little margin).
  • Removed simulator README, due to unused.
  • fix: add warning log when using internal default simulator config (#2874)
  • Document simulator entrypoint in README (#2873)

pymodbus v3.12.0

08 Feb 22:11

Choose a tag to compare

This release contains a lot of smaller (but still important) bug fixes, and 2 big new items:

  • SimData/SimDevice are not released and integrated. This is a modern way of defining data storage for the server.
    The old datastore classes will disappear in v4.0.0 or a bit later.
  • All internal import paths are now relative.
    This allows pymodbus to be added as a subproject to your repo with your a name of your choosing, and thus making
    your project independent of which pymodbus version other shared projects use (think e.g. HomeAssistant).

We are also please to welcome 4 new contributors, who we hope will contribute more. A big thanks to all that have helped
make this release happen.

Please remember this is an Y type release (in our X.Y.Z scheme) so please remember to check API_CHANGES.RST to see if
your project needs to make small changes.

Detailed changes:

  • Upgrade library versions installed by pip. (#2868)
  • SimData/Device integrate in server. (#2866)
  • Add bind to ModbusUdpClient. (#2867)
  • Solve Zuban problem. (#2864)
  • Fix wrong parameter name in function docstring. Fix set_values does not accept tuple. (#2858)
  • Add context.async_get/setValues with device_id. (#2863)
  • SimData/SimDevice ready for server integration. (#2857)
  • Reactivate pytest coverage. (#2862)
  • No blank issue template.
  • Update issue templates
  • Fix ReadFifoQueueResponse count (#2861)
  • Limited support for multiple devices on RS485. (#2846)
  • Simulator DataBlock docstring corrections (#2853)
  • fix README.rst and troubleshooting (#2851)
  • Solve DoS vulnerability. (#2852)
  • server handle_local_echo only in comm_params. (#2847)
  • di is for discrete input (#2842)
  • Allow any dev_id, when requesting dev_id 0. (#2845)
  • Allow response transaction_id 0. (#2844)
  • Use relative import. (#2836)
  • ModbusServerContext.device_ids() docstring (#2835)
  • Include ModbusSequentialDataBlock into the documentation (#2833)
  • Fix Modbus TCP protocol ID validation in FramerSocket (#2830)
  • Remove idle_time() from sync client, which anyhow was void. (#2828)
  • Correct check_ci.sh. (#2829)
  • Replace mypy with zuban (#2825)
  • Fix monitoring of functions (#2826)
  • Improve types (#2824)
  • dicts have preserved insertion order since 3.7 (#2823)
  • asyncio.iscoroutinefunction() is deprecated (#2822)
  • Remove pypi-alias. (#2818)

Pymodbus v3.11.4

30 Nov 10:35

Choose a tag to compare

Small maintenance release.

Most important change is that there are now full support for python 3.14 and a number of packages (like mypy) have been updated.

Pymodbus v3.11.3

25 Sep 13:04

Choose a tag to compare

A small maintenance release.

  • Coverage 100% (using no cover, when needed). (#2783)
  • Create pypi alias for home-assistant. (#2782)
  • Bump utilities in pyproject.toml. (#2780)
  • Fix pymodbus.simulator. (#2773)

Most important change is it creates an alias in pypi for the library, allowing home-assistant to overcome a version problem.

Pymodbus v3.11.2

10 Sep 10:01

Choose a tag to compare

  • Clarify documentation on reconnect_delay (#2769)
  • Solve CI complaints. (#2766)
  • Coverage not allowed below 99.5%. (#2765)
  • Test coverage global 100%. (#2764)
  • Test coverage simulator 100%. (#2763)
  • Test coverage server 100%. (#2760)
  • Fix python3.14 deprecation. (#2759)
  • Test coverage datastore 100%. (#2757)
  • Context test failed due to function code overwritten. (#2758)
  • Test coverage transaction 100%. (#2756)
  • Test coverage pdu 100%. (#2755)
  • Framer test 100%. (#2754)
  • llow sub_function_code is custom PDU. (#2753)
  • Generate pdu table direct. (#2752)
  • Clean pdu lookup in simulator. (#2751)
  • diag sub_function_code is 2 bytes. (#2750)
  • Requesthandler ignore missing devices logging (#2749)
  • Simplify pdu lookup. (#2745)
  • Missing coma in string representation of ModbusPDU (#2748)
  • Correct "install uv". (#2744)
  • Suppress aiohttp missing. (#2743)
  • Remove garbage bytes in serial comm. (#2741)
  • Test now included python 3.14.
  • Stricter types with pyright (#2731)

Remark: in the test coverage commits are a change of the ExceptionResponse PDU, which could cause problems on v3.11.1.

Pymodbus v3.11.1

10 Aug 15:40

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

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

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

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

Choose a tag to compare

  • Correct byte order in bits. (#2631)