Skip to content
This repository has been archived by the owner on Jun 20, 2024. It is now read-only.

v0.9.0

Compare
Choose a tag to compare
@github-actions github-actions released this 13 Jan 15:50
· 141 commits to main since this release

Added

  • 💪 Create RegisterCache and RegisterGetter to contain the custom register data structures in one place. Also
    started a Plant model to be a container for all devices in a given system.
  • 🛠 Add JSON processing for the RegisterCache – mostly to help with testing but also expecting debugging other plants
    to benefit from it.
  • 👷 Add some more test cases with actual register data.
  • 🚨 Added some recovery logic to the framer – try to scan ahead for other messages instead of truncating the entire
    buffer when there's unexpected data incoming. Hopefully this helps when the communication stream seems to get out of
    sync a bit.
  • 🙅 Add an ErrorResponse PDU so we can try and cope better when the inverter throws error responses.
  • 🧽 Added absolufy-imports and autoflake to pre-commit checks.

Changed

  • ⚠️ Ensure we check charge and discharge limits: current hardware cannot support >50% (i.e. >2.6kW) rates.
  • ✅ Make sure we query the 180+ block of input registers too, since it contains (amongst others) battery energy
    counters.
  • 🤔 Split out querying the battery/BMS registers since this will vary depending on how many batteries the user has. The
    slave address of the request determines which battery unit is targeted.
    • Also start modeling the Battery as separate from the Inverter.
  • 🔎 Collapse the register cache to a single dict since we can use the HoldingRegister/InputRegister identity to
    discern between the types. It makes the data structures a lot simpler.
  • 🛠 Improve the CLI – it is already a useful tool to dump registers for debugging right now.
  • 😳 Changed to target slave id 0x11 by default instead of 0x32. 0x32 shadows 0x11 but seems to be the first battery,
    with subsequent batteries living at the following slave addresses.
    • ☝️ reverted that change because it seems to affect the cloud metrics quite badly when you query frequently.
  • 🤫 Squelch flake8 warnings about missing constructor and magic method docstrings.
  • 🩹 Update README to show usage properly.
  • 🧹 Update python deps.