Skip to content

v1.0.0

Choose a tag to compare

@ant0nkr ant0nkr released this 20 Feb 19:36

v1.0.0 — Architecture Overhaul, 140+ New Entities & Battery BMS Support

Version 1.0.0 is our biggest release yet! This milestone features a complete internal rewrite following SOLID principles, support for 140+ new entities covering the full Modbus V23 protocol, and direct battery BMS monitoring with auto-discovery.


🚀 New Features

🔋 Battery BMS Monitoring (Only for LXP Batteries) (#114)

  • Direct Battery Data: Read real-time data from your battery BMS via Modbus register range 5000+.
  • 18 Sensors Per Battery: Capacity, Voltage, Current, SOC, SOH, Cycle Count, Max/Min Cell Voltage, Max/Min Cell Temperature, Cell Voltage Difference, Firmware Version, and more.
  • Auto-Discovery Mode: Set battery entities to auto and the integration will automatically detect connected batteries and create entities dynamically.
  • Manual Configuration: Specify comma-separated battery serial numbers for explicit control.
  • Per-Battery Sub-Devices: Each battery appears as a separate sub-device under the main inverter when Device Grouping is enabled.

⚡ 140+ New Entity Definitions

  • 109 new number entities for comprehensive inverter control: three-phase power settings, advanced battery management, grid peak shaving, and generator controls.
  • 23 new sensor entities for three-phase power monitoring (S/T phases), battery diagnostics, BMS exception reasons, and charge/discharge disable reasons.
  • 6 new time entities for additional Charge First and AC First scheduling periods.
  • 2 new button entities for inverter control actions.
  • Enabled by Default: All entities are now enabled by default—no more hunting through disabled entities to find what you need.

🔋 BMS Charge Request Sensors (#109)

  • New sensors to indicate when the battery BMS is actively requesting charge from the inverter.

📋 Protocol V23 Register Updates

  • 7 new input register constants: Three-phase diagnostic registers (ExceptionReason1/2, ChgDischgDisableReason), Generator power S/T phases, On-grid load power S/T phases.
  • Grid Overload warning code (W010) for Trip6-20k models.

🐛 Bug Fixes

  • Fixed warning code byte swap: Warning codes are now correctly extracted from the low byte of the register value, resolving incorrect warning displays.

🛠️ Architecture & Code Quality (#113)

🏗️ SOLID Refactoring

The entire Modbus client has been decomposed into focused, single-responsibility classes:

  • ConnectionManager: TCP connection lifecycle, reconnection logic, and retry management.
  • PacketRecoveryHandler: Recovers valid Modbus frames from corrupted or partial data streams.
  • DataValidator: Validates register data sanity (time values, ranges).
  • InverterDiscovery: Model identification during initial setup.
  • Coordinator: Extracted into its own module for cleaner separation of concerns.

🧪 Comprehensive Test Suite

4 new test modules with 124 tests covering all critical paths:

  • test_connection_manager.py: Connection lifecycle, retry logic, reconnection behavior.
  • test_packet_recovery.py: Frame recovery from corrupted and partial streams.
  • test_data_validator.py: Register data validation and boundary conditions.
  • test_modbus_client.py: End-to-end client behavior and data flow.

⚠️ Breaking Changes

  • Entity Visibility: All entities are now enabled by default. If you previously relied on certain entities being disabled, you may need to manually disable them after upgrading.

🤝 Contributors

Special thanks to @ivanfmartinez for the original battery data decoding implementation in PR #65, which served as the foundation for the battery BMS support.


📈 Statistics

  • 38 files changed, 4,997 additions, 879 deletions.
  • 4 pull requests merged.
  • 140+ new entities added.
  • 124 automated tests across 4 test modules.
  • 18 battery sensors per connected battery.
  • 5 new architectural classes for maintainability.

Full Changelog: 0.2.5...1.0.0