Releases: pymodbus-dev/pymodbus
Releases Β· pymodbus-dev/pymodbus
pymodbus v3.7.1
- 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
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
- 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
- Allow socket exception response with wrong length
Pymodbus v3.6.7
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
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
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
- 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
- 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.
Pymodbus v3.6.2
v.3.6.0 with pypi upload solved, and documentation set at correct version