Releases: pymodbus-dev/pymodbus
Release list
Pymodbus v3.14.0
Bug fixes and 3rd party libs (used only for development) are upgraded.
The function generate_ssl() is moved to examples.
- Remove self signed certificate from production. (#2954)
- Correct inequality in validation error message (#2953)
- Fix non-deterministic convert_from_registers (#2951)
- Fix swapped SimDevice in ModbusDeviceContext (#2952)
- Update CI actions and pyproject. (#2938)
- Add ruff format check to ci.yml (#2947)
- Remove 'useless-suppression' pylint (#2949)
- Format test_client.py with ruff (#2948)
- Update clean_workflows CI (node@20 problem). (#2946)
- Ruff format (due to ruff upgrade). (#2945)
- Fix
ModbusServerContextinitialization with dictdevicesparameter (#2944) - Support configured ASCII input delimiter (#2942)
- Fix default no-response behavior for force listen only (#2941)
- Use correct format character for
DataType.REGISTERS'h' -> 'H' (#2940)
pymodbus v3.13.1
Small summer maintenance release:
- Update CI Workflows.
- Fix dropping the next frame after a skipped one (#2934)
- Correct Log repeat. (#2931)
- Fix address bounds check in get_reg_block (#2926)
- Fix reg_count calc (#2924)
- guard short frames and validate mbap in TLS framer (#2921)
- Use latest uv in CI. (#2922)
- Change MIN_SIZE in ascii frame. (#2920)
- Harden ASCII framer. (#2918)
pymodbus v3.13.0
- Correct missing types. (#2914)
- Altherma heat pump control, with Home Assistant and updating server. (#2907)
- SimDevice, use_bit_address allows different addressing for BITS. (#2908)
- Remove 3.5char frame time check. (#2912)
- Fixed Modbus*Context. (#2910)
- Fix bug in ModbusDeviceContext. (#2909)
- Fix log level in examples (#2902)
- Fix CSS lookup for simulator server (#2904)
- Fix usage docs in examples: add missing option --baudrate (#2903)
- Doc:Finalice server/simulator narrative (#2896)
- Fix codespell bug. (#2900)
- Datastores uses SimData/SimDevice. (#2897)
- Doc on how to convert to SimData/SimDevice. (#2899)
- Fix Read Fifo Query RTU Frame Size (#2898)
- Update server documentation (datstore). (#2895)
- Update server examples to use SimData/SimDevice. (#2893)
- Add server.async_get/setValues. (#2889)
- Solve codeql caching problem. (#2890)
- Remove unused methods in datastore. (#2888)
- Remove datastore get/setValues (async_get/set exist) (#2886)
- Revert "Combine ModbusSparseDataBlock with ModbusSequentialDataBlock."
- Combine ModbusSparseDataBlock with ModbusSequentialDataBlock.
- Remove RemoteDeviceContext datastore. (#2885)
v3.12.1
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
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
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
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
- 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
- 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)