From 20a9eb78d88b2a6424b5b19a35f9faad0f6ff4fd Mon Sep 17 00:00:00 2001 From: Bobby Noelte Date: Tue, 30 Sep 2025 17:23:07 +0200 Subject: [PATCH] chore(release): add changelog for release 0.0.0 and 0.1.0 (#703) Signed-off-by: Bobby Noelte --- CHANGELOG.md | 193 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..b98cfc7 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,193 @@ +# Changelog + +All notable changes to the akkudoktoreos project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [0.1.0] - 2025-09-30 + +### Added + +- Added Changelog for 0.0.0 amd 0.1.0 + +## [0.0.0] - 2025-09-30 + +This version represents one year of development of EOS (Energy Optimization System). From this point forward, release management will be introduced. + +### Added + +#### Core Features +- Energy Management System (EMS) with battery optimization +- PV (Photovoltaic) forecast integration with multiple providers +- Load prediction and forecasting capabilities +- Electricity price integration +- VRM API integration for load and PV forecasting +- Battery State of Charge (SoC) prediction and optimization +- Inverter class with AC/DC charging logic +- Electric vehicle (EV) charging optimization with configurable currents +- Home appliance scheduling optimization +- Horizon validation for shading calculations + +#### API & Server +- Migration from Flask to FastAPI +- RESTful API with comprehensive endpoints +- EOSdash web interface for configuration and visualization +- Docker support with multi-architecture builds +- Web-based visualization with interactive charts +- OpenAPI/Swagger documentation +- Configurable server settings (port, host) + +#### Configuration & Data Management +- JSON-based configuration system with nested support +- Configuration validation with Pydantic +- Device registry for managing multiple devices +- Persistent caching for predictions and prices +- Manual prediction updates +- Timezone support with automatic detection +- Configurable VAT rates for electricity prices + +#### Optimization +- DEAP-based genetic algorithm optimization +- Multi-objective optimization (cost, battery usage, self-consumption) +- 48-hour prediction and optimization window +- AC/DC charging decision optimization +- Discharge hour optimization +- Start solution enforcement +- Fitness visualization with violin plots +- Self-consumption probability interpolator + +#### Testing & Quality +- Comprehensive test suite with pytest +- Unit tests for major components (EMS, battery, inverter, load, optimization) +- Integration tests for server endpoints +- Pre-commit hooks for code quality +- Type checking with mypy +- Code formatting with ruff and isort +- Markdown linting + +#### Documentation +- Conceptual documentation +- API documentation with Sphinx +- ReadTheDocs integration +- Docker setup instructions +- Contributing guidelines +- English README translation + +#### Providers & Integrations +- PVForecast.Akkudoktor provider +- BrightSky weather provider +- ClearOutside weather provider +- Electricity price provider + +### Changed +- Python version requirement updated to 3.10+ +- Optimized Inverter class for improved SCR calculation performance +- Improved caching mechanisms for better performance +- Enhanced visualization with proper timestamp handling +- Updated dependency management with automatic Dependabot updates +- Restructured code into logical submodules +- Package directory structure reorganization +- Improved error handling and logging +- Windows compatibility improvements + +### Fixed +- Cross-site scripting (XSS) vulnerabilities +- ReDoS vulnerability in duration parsing +- Timezone and daylight saving time handling +- BrightSky provider with None humidity data +- Negative values in load mean adjusted calculations +- SoC calculation bugs +- AC charge efficiency in price calculations +- Optimization timing bugs +- Docker BuildKit compatibility +- Float value handling in user horizon configuration +- Circular runtime import issues +- Load simulation data return issues +- Multiple optimization-related bugs + +### Security +- Added Bandit security checks +- Fixed XSS vulnerabilities +- Mitigated ReDoS attacks with input length validation +- Improved credential management with environment variables + +### Dependencies +Major dependencies included in this release: +- FastAPI 0.115.14 +- Pydantic 2.11.9 +- NumPy 2.3.3 +- Pandas 2.3.2 +- Scikit-learn 1.7.2 +- Uvicorn 0.36.0 +- Bokeh 3.8.0 +- Matplotlib 3.10.6 +- PVLib 0.13.1 +- Python-FastHTML 0.12.29 + +### Development Notes +This version encompasses all development from the initial commit (February 16, 2024) through September 29, 2025. The project evolved from a basic energy optimization concept to a comprehensive energy management system with: +- 698+ commits +- Multiple contributor involvement +- Continuous integration/deployment setup +- Automated dependency updates +- Comprehensive testing infrastructure + +### Migration Notes +As this is the initial versioned release, no migration is required. Future releases will include migration guides as needed. + +--- + +**Full Changelog**: Initial development phase (v0.0.0) + + +## v0.1.0-a0 (2025-09-30) + +### BREAKING CHANGE + +- This is a BREAKING CHANGE as the configuration structure changed +once again and the server API was also enhanced and streamlined. The server API +that is used by Andreas and Jörg in their videos has not changed +- This is a BREAKING CHANGE as the configuration structure changed +once again and the server API was also enhanced and streamlined. The server API +that is used by Andreas and Jörg in their videos has not changed. +- EOS configuration changed. V1 API changed. +- Default IP address for EOS and EOSdash changed to 127.0.0.1 +- Azimuth configurations that followed the PVForecastAkkudoktor convention +(north=+-180, east=-90, south=0, west=90) must be converted to the general azimuth definition: +north=0, east=90, south=180, west=270. + +### Feat + +- **VRM forecast**: add load and pv forecast by VRM API (#611) +- run pytest for PRs +- be helpful, provide a list of valid routes when visiting / +- add documentation, enable makefile driven usage +- Detailliertere README +- andere ports/bind ips erlauben + +### Fix + +- dependencies and optimization solution beginning +- typos in bokeh.py +- automatic optimization +- handle float values in userhorizon configuration (#657) +- **docker**: make EOSDash accessible in Docker containers (#656) +- **ElecPriceEnergyCharts**: get history series, update docs (#606) +- logging, prediction update, multiple bugs (#584) +- add required fields to example optimization request (#574) +- pvforecast fails when there is only a single plane (#569) +- delete empty inverter from testdata optimize_input_2.json (#568) +- azimuth setting of pvforecastakkudoktor provider (#567) +- BrightSky with None humidity data (#555) +- Catch optimize error and return error message. (#534) +- Circular runtime import Closes #533 (#535) +- **docker**: enable BuildKit to support --mount (closes #493) +- mitigate ReDoS in to_duration via max input length check (closes #494) (#523) +- relax stale issue/pr handling +- remove verbose comment +- make port configurable via env + +### Refactor + +- remove `README-DE.md`