Skip to content

Releases: pymodbus-dev/pymodbus

pymodbus v3.7.2

27 Aug 10:42
Compare
Choose a tag to compare

v3.7.1 had wrong documentation.

  • Correct README
  • Rename branch wait3.8.0 to wait_next_API

pymodbus v3.7.1

27 Aug 10:09
Compare
Choose a tag to compare
  • Better error message, when pyserial is missing.
  • Slave=0 will return first response, used to identify device address. (#2298)
  • Feature/add simulator api skeleton (#2274)
  • Correct max. read size for registers. (#2295)
  • Ruff complains, due to upgrade. (#2296)
  • Properly process 'slaves' argument (#2292)
  • Update repl requirement to >= 2.0.4 (#2291)
  • Fix aiohttp < 3.9.0 (#2289)
  • Simplify framer test setup (#2290)
  • Clean up ModbusControlBlock (#2288)
  • example docstrings diag_message -> pdu.diag_message (#2286)
  • Explain version schema (#2284)
  • Add more testing for WriteRegisters. (#2280)
  • Proof for issue 2273. (#2277)
  • Update simulator tests. (#2276)

pymodbus 3.7.0

01 Aug 06:46
Compare
Choose a tag to compare

Version 3.7.0

  • Remove unneeded client parameters. (#2272)
  • simulator: Fix context single parameter (#2264)
  • buildPacket can be used for Request and Response (#2262)
  • More descriptive decoder exceptions (#2260)
  • Cleanup ReadWriteMultipleRegistersResponse and testing (#2261)
  • Feature/simulator addressing (#2258)
  • Framer optimization (apart from RTU). (#2146)
  • Use mock.patch.object to avoid protected access errors. (#2251)
  • Fix some mypy type checking errors in test_transaction.py (#2250)
  • Update check for windows platform (#2247)
  • Logging 100% coverage. (#2248)
  • CI, Block draft PRs to use CPU minutes. (#2245, #2246)
  • Remove kwargs client. (#2243, #2244, #2257)
  • remove kwargs PDU messagees. (#2240)
  • Remove message_generator example (not part of API). (#2239)
  • Update dev dependencies (#2241)
  • Fix ruff check in CI (#2242)
  • Remove kwargs. (#2236, #2237)
  • Simulator config, kwargs -> parameters. (#2235)
  • Refactor transaction handling to better separate async and sync code. (#2232)
  • Simplify some BinaryPayload pack operations (#2224)
  • Fix writing to serial (rs485) on windows os. (#2191)
  • Remember to remove serial writer. (#2209)
  • Transaction_id for serial == 0. (#2208)
  • Solve pylint error.
  • Sync TLS needs time before reading frame (#2186)
  • Update transaction.py (#2174)
  • PDU classes --> pymodbus/pdu. (#2160)
  • Speed up no data detection. (#2150)
  • RTU decode hunt part. (#2138)
  • Dislodge client classes from modbusProtocol. (#2137)
  • Merge new message layer and old framer directory. (#2135)
  • Coverage == 91%. (#2132)
  • Remove binary_framer. (#2130)
  • on_reconnect_callback --> on_connect_callback. (#2122)
  • Remove certfile,keyfile,password from TLS client. (#2121)
  • Drop support for python 3.8 (#2112)

API CHANGES:

  • default slave changed to 1 from 0 (which is broadcast).
  • broadcast_enable, retry_on_empty, no_resend_on_retry parameters removed.
  • class method generate_ssl() added to TLS client (sync/async).
  • removed certfile, keyfile, password from TLS client, please use generate_ssl()
  • on_reconnect_callback() removed from clients (sync/async).
  • on_connect_callback(true/false) added to async clients.
  • binary framer no longer supported
  • Framer. renamed to FramerType.
  • PDU classes moved to pymodbus/pdu
  • Simulator config custom actions kwargs -> parameters
  • Non defined parameters (kwargs) no longer valid
  • Drop support for Python 3.8 (its no longer tested, but will probably work)

pymodbus v3.6.9

27 Jun 10:15
Compare
Choose a tag to compare
  • Remove python 3.8 from CI
  • Log comm retries. (#2220)
  • Solve serial unrequested frame. (#2219)
  • test convert registers with 1234.... (#2217)
  • Fix writing to serial (rs485) on windows os. (#2191)
  • Remember to remove serial writer. (#2209)
  • Update client.rst (#2199)
  • Fix usage file names (#2194)
  • Show error if example is run without support files. (#2189)
  • Solve pylint error.
  • Describe zero_mode in ModbusSlaveContext.init (#2187)
  • Datastore will not return ExceptionResponse. (#2175)
  • call async datastore from modbus server (#2144)
  • Transaction id overrun.
  • Add minimal devcontainer. (#2172)
  • Sphinx: do not turn warnings into errors.
  • Fix usage of AsyncModbusTcpClient in client docs page (#2169)
  • Bump actions CI. (#2166)
  • Request/Response: change execute to be async method (#2142)
  • datastore: add async_setValues/getValues methods (#2165)
  • fixed kwargs not being expanded for actions on bit registers, adjusted tests to catch this issue (#2161)
  • Clean datastore setValues. (#2145)
  • modbus_server: call execute in a way that those can be either coroutines or normal methods (#2139)
  • Streamline message class. (#2133)
  • Fix decode for wrong mdap len.
  • SOCKET/TLS framer using message decode(). (#2129)
  • ASCII framer using message decode() (#2128)
  • Add generate_ssl() to TLS client as helper. (#2120)
  • add _legacy_decoder to message rtu (#2119)

pymodbus v3.6.8

14 Apr 08:21
Compare
Choose a tag to compare
  • Allow socket exception response with wrong length

Pymodbus v3.6.7

09 Apr 11:35
Compare
Choose a tag to compare

Solve problems with Home Assistant 2024.4.x modbus integration !!!

Include PRs from dev that do not have API changes.

  • Add lock to async requests, correct logging and length calc. (FIX, not on dev)
  • test_simulator: use unused_tcp_port fixture (#2141)
  • streamline imports in Factory.py (#2140)
  • Secure testing is done with pymodbus in PR. (#2136)
  • Fix link to github in README (#2134)
  • Wildcard exception catch from pyserial. (#2125)
  • Problem with stale CI. (#2117)
  • Add connection exception to list of exceptions catpured in retries (#2113)
  • Move on_reconnect to client level (#2111)
  • Bump github stale. (#2110)
  • update package_test_tool (add 4 test scenarios) (#2107)
  • Bump dependencies. (#2108)
  • Cancel send if no connection. (#2103)

pymodbus v3.6.6

08 Mar 09:36
Compare
Choose a tag to compare

Version 3.6.6

  • Solve transport close() as not inherited method. (#2098)
  • enable mypy --check-untyped-defs (#2096)
  • Add get_expected_response_length to transaction.
  • Remove control encode in framersRemove control encode in framers. (#2095)
  • Bump codeql in CI to v3. (#2093)
  • Improve server types (#2092)
  • Remove pointless try/except (#2091)
  • Improve transport types (#2090)
  • Use explicit ValueError when called with incorrect function code (#2089)
  • update message tests (incorporate all old tests). (#2088)
  • Improve simulator type hints (#2084)
  • Cleanup dead resetFrame code (#2082)
  • integrate message.encode() into framer.buildPacket. (#2062)
  • Repair client close() (intern= is needed for ModbusProtocol). (#2080)
  • Updated Message_Parser example (#2079)
  • Fix #2069 use released repl from pypi (#2077)
  • Fix field encoding of Read File Record Response (#2075)
  • Improve simulator types (#2076)
  • Bump actions. (#2071)

pymodbus v3.6.5

03 Mar 12:55
Compare
Choose a tag to compare

Changes:

  • Update framers to ease message integration (only decode/encode) (#2064)
  • Add negtive acknowledge to modbus exceptions (#2065)
  • add Message Socket/TLS and amend tests. (#2061)
  • Improve factory types (#2060)
  • ASCII. (#2054)
  • Improve datastore documentation (#2056)
  • Improve types for messages (#2058)
  • Improve payload types (#2057)
  • Reorganize datastore inheritance (#2055)
  • Added new message (framer) raw + 100%coverage. (#2053)
  • message classes, first step (#1932)
  • Use AbstractMethod in transport. (#2051)
  • A datastore for each slave. (#2050)
  • Only run coverage in ubuntu / python 3.12 (#2049)
  • Replace lambda with functools.partial in transport. (#2047)
  • Move self.loop in transport to init() (#2046)
  • Fix decoder bug (#2045)
  • Add support for server testing in package_test_tool. (#2044)
  • DictTransactionManager -> ModbusTransactionManager (#2042)
  • eliminate redundant server_close() (#2041)
  • Remove reactive server (REPL server). (#2038)
  • Improve types for client (#2032)
  • Improve HTTP server type hints (#2035)
  • eliminate asyncio.sleep() and replace time.sleep() with a timeout (#2034)
  • Use "new" inter_byte_timeout and is_open for pyserial (#2031)
  • Add more type hints to datastore (#2028)
  • Add more framer tests, solve a couple of framer problems. (#2024)
  • Rework slow tests (use NULL_MODEM) (#1995)
  • Allow slave=0 in serial communication. (#2023)
  • Client package test tool. (#2022)
  • Add REPL documentation back with links to REPL repo (#2017)
  • Move repl to a seperate repo (#2009)
  • solve more mypy issues with client (#2013)
  • solve more mypy issues with datastore (#2010)
  • Remove useless. (#2011)
  • streamline transport tests. (#2004)
  • Improve types for REPL (#2007)
  • Specify more types in base framer (#2005)
  • Move htmlcov -> build/cov (#2003)
  • Avoid pylint complain about lambda. (#1999)
  • Improve client types (#1997)
  • Fix setblocking call (#1996)
  • Actívate warnings in pytest. (#1994)
  • Add profile option to pytest. (#1991)
  • Simplify message tests (#1990)
  • Upgrade pylint and ruff (#1989)
  • Add first architecture document. (#1988)
  • Update CONTRIBUTING.rst.
  • Return None for broadcast. (#1987)
  • Make ModbusClientMixin Generic to fix type issues for sync and async (#1980)
  • remove strange None default (#1984)
  • Fix incorrect bytearray type hint in diagnostics query (#1983)
  • Fix URL to CHANGELOG (#1979)
  • move server_hostname to be local in tls client. (#1978)
  • Parameter "strict" is and was only used for serial server/client. (#1975)
  • Removed unused parameter close_comm_on_error. (#1974)

pymodbus v3.6.4

05 Feb 14:16
Compare
Choose a tag to compare
  • Update datastore_simulator example with client (#1967)
  • Test and correct receiving more than one packet (#1965)
  • Remove unused FifoTransactionManager. (#1966)
  • Always set exclusive serial port access. (#1964)
  • Add server/client network stub, to allow test of network packets. (#1963)
  • Combine conftest to a central file (#1962)
  • Call on_reconnect_callback. (#1959)
  • Readd ModbusBaseClient to external API.
  • Update README.rst
  • minor fix for typo and consistency (#1946)
  • More coverage. (#1947)
  • Client coverage 100%. (#1943)
  • Run coverage in CI with % check of coverage. (#1945)
  • transport 100% coverage. (#1941)
  • contrib example: TCP drainage simulator with two devices (#1936)
  • Remove "pragma no cover". (#1935)
  • transport_serial -> serialtransport. (#1933)
  • Fix behavior after Exception response (#1931)
  • Correct expected length for udp sync client. (#1930)

pymodbus v3.6.3

09 Jan 21:08
Compare
Choose a tag to compare
  • solve Socket_framer problem with Exception response (#1925)
  • Allow socket frames to be split in multiple packets (#1923)
  • Reset frame for serial connections.
  • Source address None not 0.0.0.0 for IPv6
  • Missing Copyright in License file
  • Correct wrong url to modbus protocol spec.
  • Fix serial port in TestComm.