All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add multi device support
- Update
tokio-modbus
to version0.16
- Update
thiserror
to version2.0
- Increase MSRV to 1.76
- Add workaround to model discovery for devices without end model (e.g. some SMA inverters)
0.7.1 - 2024-11-06
- Fix timeout handling in model discovery
- Change default order of discovery addresses to
[40000, 0, 50000]
. A lot of devices timeout at address0
and the Python implementation from the sunspec Alliance uses the same order: [SunSpecModbusClientDevice.base_addr_list]
0.7.0 - 2024-10-26
- Add
AsyncClient
which provides a more ergonomic API
ModelAddr
andPointRef
now implementCopy
andClone
and are passed by value and not by reference.- Move all client specific code into
client
module. - Rename
PointDef
toPoint
.
- Remove old client functions
0.6.1 - 2024-10-18
- Add
+ Sync
toCommunicationError::Modbus
variant
0.6.0 - 2024-10-17
- Add
+ Send
toCommunicationError::Modbus
variant
- Update
tokio-modbus
to version0.15
0.5.0 - 2024-09-11
- Add Config struct for timeouts and discovery addresses
- Update
tokio_modbus
to version0.14
0.4.0 - 2024-03-20
- Add
serde
(de)serialization support
- Update
strum
to version0.26
- Update
tokio-modbus
to version0.11
- Update sunspec models (2024-02-15)
- Remove model 64110 (Outback AXS device)
0.3.1 - 2023-12-21
- Model discovery no longer fails if the device returns a
Illegal data address
for addresses it does not support.
0.3.0 - 2023-12-09
- Generate types for Enum16 and Enum32 points
- Generate types for Bitfield16, Bitfield32 and Bitfield64 points
- Load models bigger than 125 registers in chunks
- Change representation of IPv6 addresses to
std::net::Ipv6addr
- Change representation of IPv4 addresses to
std::net::Ipv4addr
- Load optional points as None if they don't contain a value
- Use
heck
to generate bettertype
andfield
names - Make
models::model*
module public as they do now contain more than just theModel
struct.
- Model* reexports in
models
module
0.2.0 - 2023-11-21
- Added 7xx models which were only part of the JSON files.
- Generate models from JSON instead of SMDX.
- Removed the obsolete
LENGTH
field from all models. This field will come back once repeating groups are supported.
0.1.0 - 2023-11-04
- First release