Releases: FlexMeasures/flexmeasures
Release list
v1.0.0: Commercial & Industrial sites
Version v1.0.0 of FlexMeasures is a big milestone 🎉 - for one, it contains a little more than 100 PRs and adds huge abilities to schedule industry assets! Second, we decided that FlexMeasures is now mature enough to rip off the band-aid and move to major versions.
Here is a short list of most important improvements:
- Modelling Commercial & Industrial sites
- Reduce some modeling friction
- More agent-friendly Job API
- Faster charts
- Rate limiting / plans for accounts
- Creating new sites from templates
- Storing encrypted secrets & tokens
See the changelog for a complete list of improvements or below. A blog post going into the main improvements above is here.
What's Changed
- feat: Floor datetimes on ingestion by @BelhsanHmida in #2146
- Chore/upgrade dependencies after v0.33 by @nhoening in #2215
- feat: support source filters in sensor references for flex-model and flex-context by @Flix6x with @Copilot in #2209
- Click >= 8.2 upgrade by @Flix6x with @Copilot in #2219
- Make CLI test failures verbose by not catching exceptions in the test runner by @Flix6x with @Copilot in #2220
- Feat: scheduler support for device groups by @Ahmad-Wahid in #1934
- Document modelling choice for storing source types under one or multiple sensors by @Flix6x in #2217
- Fix: Fixed broken sorting on jobs table by @joshuaunity in #2216
- Feat: Start Claude settings by @Flix6x in #2225
- Feat: Cleanup stale assets in graphs and configs by @joshuaunity in #2210
- update the Readme by @nhoening in #2232
- fix: allow root assets to have non-unique names by @nhoening in #2226
- Fix: power capacity does not need to be mandatory by @BelhsanHmida in #2222
- feat: CLI option to add/edit an account attribute by @Flix6x in #2242
- Feat: filter sensors and assets by ID by @nhoening in #2231
- Fix: soc min does not need to be mandatory by @BelhsanHmida in #2221
- Upgrade deps incl. cryptography minimum to v48.0.1 by @dependabot[bot] in #2243
- docs: small section about suggested cloud architecture for hosts by @nhoening in #2245
- docs: recommend and explain TRUSTED_HOSTS by @nhoening in #2246
- feat: support storing, retrieving and refreshing encrypted secrets at account or asset level by @nhoening in #2236
- Docs/schedule inspection by @nhoening in #2247
- Fix flex-model datakey and description by @Flix6x in #2237
- Fix Charge Point sessions chart loading, plus zoom-sync, epoch-bar, and alignment improvements by @Ahmad-Wahid in #2259
- chore: filter out more 404s for Sentry by @nhoening in #2257
- refactor the auth for user role editing by @nhoening in #2228
- Feat: Add copy-existing-asset tab to asset creation flow by @joshuaunity in #2195
- docs: switch to source-types in tutorial, and explain the source filters by @Flix6x in #2261
- Release workflows by @Flix6x in #2260
- fix(ci): scope QA workflow's uv cache glob, install uv before docker compose up by @Flix6x in #2262
- fix(ci): fetch full git history in QA workflow so server reports real version by @Flix6x in #2263
- fix(ci): checkout repo in pypi-smoke-test job by @Flix6x in #2265
- Change flex-EMS architecture image from PNG to SVG by @Flix6x in #2266
- Add soft constraint analysis (unresolved/resolved SoC constraints) to scheduling job results by @Flix6x with @Copilot in #2072
- Add multi‑commodity support to device scheduler by @Ahmad-Wahid in #1946
- fix: harden multi-commodity flex-context (correctness + API decisions) ahead of v1 by @Flix6x in #2271
- ci: trim agent-system docs and add real pre-commit/test enforcement by @Flix6x in #2275
- Fix/detached forecasting sensors by @BelhsanHmida in #2035
- Feat: add configurable forecast post processing by @BelhsanHmida in #2273
- chore: make toy tutorials robust against pre-existing IDs by @nhoening in #2269
- Three initial starter templates & improved copy-asset UX by @nhoening in #2268
- Fix nine failing tests on main (regressor forecasting on pandas 2.2+, swallowed CLI messages, task-run 500, task-run timestamps) by @Flix6x in #2303
- Stamp LatestTaskRun at insertion time, not at import time (follow-up to #2303) by @Flix6x in #2304
- Add num-beliefs to scheduling job result by @Flix6x with @Copilot in #2280
- Feat: Create Accounts on UI by @joshuaunity in #2176
- fix: indentation mismatch in job status endpoint docstring by @nhoening in #2308
- Chore: check on startup if the db schema is on alembic head by @nhoening in #2309
- Guard the shared checkout: block branch-switching git commands outside a worktree by @Flix6x in #2307
- Fix: guard against scheduler result dicts without a 'name' key by @Flix6x in #2313
- Improve chart viz for event values not around zero by @Flix6x in #2244
- Fix broken column sorting on the assets listing page by @Flix6x in #2314
- Block image files from being committed by @Flix6x in #2315
- fix(ci): never claim :latest on a manual docker-publish run by @Flix6x in #2316
- update asset tree to be interactive by @Ahmad-Wahid in #2025
- Track devices via a typed device inventory in the StorageScheduler by @Flix6x in #2321
- Fix: couple stock constraints for multi-device batteries whose SoC comes from a sensor by @Flix6x in #2322
- feat: use ECharts to have faster charts (and more interactive) by @Ahmad-Wahid in #2234
- Speed up device_scheduler with a recursive stock balance by @Flix6x in #2282
- Smarter commodity-context defaults and Commitment commodity field by @Flix6x in #2272
- refactor(ui): drive flex-context field types from UI_FLEX_CONTEXT_SCHEMA by @Flix6x in #2281
- Share storage-efficiency per stock group and index solver stock by group by @Flix6x in #2325
- Feat/offtick soc projection by @BelhsanHmida in #2194
- Support intermediate power constraints on groups of devices (flex-model group field) by @Flix6x in #2276
- refactor: derive the UI flex-model schema from the DB schema by @Flix6x in #2330
- Run VACUUM ANALYZE after
flexmeasures db upgrade(with --no-vacuum opt-out) by @Flix6x in #2333 - feat: add custom job timeouts, also configurable per queue by @nhoening in #2318
- Add FLEXMEASURES_LP_SOLVER_OPTIONS to configure solver options by @Flix6x in #2283
- Add annotation regressors to forecaster config, merged holidays command, and timezone fix by @Flix6x with @Copilot in #2178
- Show asset annotations in asset charts by @Flix6x in #2312
- Fix: render a sensor in every fast-chart subplot that configures it by @Flix6x in #2338
- Speed ...
v0.33.1
This is a patch release in the 0.33.x series and includes some regression fixes. We recommend that all users upgrade to this version.
See our changelog for a list of all the changes.
Full Changelog: v0.33.0...v0.33.1
Copy assets, account sources
Summary
Version v0.33 of FlexMeasures adds the ability to copy assets and supports filtering beliefs data by source much better.
Also, we improved many small things as usual. One interesting change is that pushing data into FlexMeasures now is not blocking API handling instances from accepting other requests. Another is more fine-grained monitoring of failed tasks and absent users.
Read more on these features on the FlexMeasures blog.
This release consists of more than 30 PRs:
What's Changed
- Return 422 ValidationError for zero-duration single-value posts on non-instantaneous sensors by @Copilot in #2116
- Fix/asset context page bugs by @Flix6x in #2117
- upgrade dependencies after release of v0.32 by @nhoening in #2114
- Navigate to parent asset after deleting a child asset; show deletion toast by @Copilot in #2119
- Feat/sensor data source account filtering by @BelhsanHmida in #2083
- Always enable RQ embedded scheduler in flexmeasures jobs run-worker by @Ragnar-the-mighty in #2112
- feat: Cleanup of stale sensor references by @joshuaunity in #2106
- Feat/copy assets by @joshuaunity in #2017
- Add "Copy this asset" button to the asset properties page by @Copilot in #2121
- fix: default stats window is for the selected period by @Flix6x in #2129
- Check read permissions for regressor sensors when triggering forecasts by @Copilot in #2096
- Fix/ajax dialogue regression by @joshuaunity in #2124
- Fix account PATCH endpoint rejecting valid requests on accounts with a consultancy set, and show attributes on the account page by @Copilot in #2140
- fix attributes being overwritten in asset form by @nhoening in #2138
- Feat/clean up old rolling forecasting code by @BelhsanHmida in #2082
- Feat: check flex config permissions schedule by @BelhsanHmida in #2125
- Add GET /api/v3_0/sources endpoint for accessible data sources and types by @Copilot in #2126
- Chore/update to timely beliefs v3.5.5 by @Flix6x in #2148
- Add unified job status endpoint GET /api/v3_0/jobs/ by @Copilot in #2141
- Feat: sensor data source type filter by @BelhsanHmida in #2127
- Fix/drop unchanged beliefs per event by @Flix6x in #2150
- Fix forecast regressor filtering by belief time by @Ragnar-the-mighty in #2134
- Feat/monitoring more fine grained by @nhoening in #2158
- Chore(deps): Bump urllib3 from 2.6.3 to 2.7.0 by @dependabot[bot] in #2161
- Fix: include belief time in fixed-value records for chart data by @joshuaunity in #2147
- Standardize resolution formatting across API endpoints for consistent response payloads by @joshuaunity in #2152
- fix: reporter crashing on
KeyError: 'Level source not found'by @Flix6x in #2159 - Fix/build device soc values by @Flix6x in #2160
- Fix auth check when running CLI command with
flaskby @Flix6x in #2169 - Fix auth issues: child asset creation, account page access by @Copilot in #2163
- feat: add account_id filter for sources in search_beliefs by @Copilot in #2065
- Fix: All use of raw json when updating flex_configs by @joshuaunity in #2162
- Feat/validate source type filter by @Flix6x in #2151
- Feat/speed up stats panel on sensor page by @Flix6x in #2173
- Fix/sensor data deletion window by @Flix6x in #2175
- Fix/migrate darts package by @BelhsanHmida in #2180
- Feat/efficiencyfield support sensor by @joshuaunity in #2142
- Fix: visually distinguish data sources beyond source name by @BelhsanHmida in #2185
- Move sensor data ingestion to job queue by @Copilot in #2101
- fix the links with sed between endpoint listing and endpoint details by @nhoening in #1753
- Fix/force new job when scheduling an asset (tree) by @Flix6x in #2182
- Fix sensor forecast button to send train-start from available history by @Copilot in #2187
- Docs/fix various api doc issues by @nhoening in #2122
- Fix: DST transition handling by supporting both datetime and pandas Timestamp objects by @Ahmad-Wahid in #2197
- Create .github/instructions folder with cross-cutting topic instruction files by @Copilot in #2198
- Harden RQ Dashboard job views against non-JSON-serializable job data by @Copilot in #2200
- Fix StorageScheduler crash on devices without sensor in flex-model by @saerts-gp in #2085
- Derive seasonal lags from sensor resolution by @BelhsanHmida in #2157
- docs: improve docstring for asset copy endpoint by @nhoening in #2204
- CLI command to inspect a job by @nhoening in #2202
- Chore/avoid autouse fixtures by @Flix6x in #2206
- uploading/posting beliefs works without Redis (again) by @nhoening in #2207
- Fail clearly on insufficient forecasting history by translating Darts fit errors by @Copilot in #2192
- Select regressor beliefs per
(event_start, regressor)in forecasting covariate assembly by @Copilot in #2155 - Handle standardized
sensors_to_showplots inflexmeasures show assetby @Copilot in #2189 - feat: allow setting a consumption/production sensor in the flex-model of an asset by @Flix6x in #2190
- docs: improve API units section with conversion examples and Pint reference by @Copilot in #2211
- Catch 404 errors in Sentry interation without exc_info as well by @nhoening in #2212
- Fix/storage efficiency validation using consumption/production field by @Flix6x in #2213
New Contributors
- @saerts-gp made their first contribution in #2085
Full Changelog: v0.32.0...v0.33.0
v0.32.3
This is a patch release in the 0.32.x series and includes some regression fixes. We recommend that all users upgrade to this version.
See our changelog for a list of all the changes.
Full Changelog: v0.32.2...v0.32.3
v0.32.2
This is a patch release in the 0.32.x series and includes some regression fixes. We recommend that all users upgrade to this version.
See our changelog for a list of all the changes.
Full Changelog: v0.32.1...v0.32.2
v0.32.1
This is a patch release in the 0.32.x series and includes some regression fixes. We recommend that all users upgrade to this version.
See our changelog for a list of all the changes.
Full Changelog: v0.32.0...v0.32.1
v0.32: Flex-config on graphs
Summary
Version v0.32 of FlexMeasures improves the UX of building dashboards with information in the flex-context and flex-model.
Also, we added functionality on the sensor page: a button to create forecasts and a button to delete data. Plus, the layout of actions on the sensor page is now nicer & more usable.
Here are some other notable features:
improving hovering the data points on graphs
switch dev environment to uv (faster installations)
Annotations (see v0.31 how they look like in the UI) can be sent via the API
Read more on https://flexmeasures.io/v032-flex-config-on-graphs/
What's Changed
- Fix/copilot setup steps shares steps with lint and test by @Flix6x in #1998
- Docs/missing flex config fields by @Flix6x in #2003
- Feat: redirect to RTD if local docs missing by @Flix6x in #2006
- Fix: forecasting CLI for v0.31 by @Flix6x in #2007
- Add if_exists=True to index drops in migration b8f3cda5e023 by @Ahmad-Wahid in #2009
- Fix/resample to instantaneous for scheduling by @Flix6x in #2012
- Support saving state-of-charge schedules to sensors with % unit by @Copilot in #1996
- Add
unitquery parameter to GET schedule endpoint for unit conversion by @Copilot in #1993 - fix: ensure context attribute exists before accessing it by @BelhsanHmida in #2014
- refactor: migrate from pip-tools to uv for dependency management by @TeaDrinkingProgrammer in #1973
- fix: do not fail API endpoint listing if an endpoint has no docstring by @nhoening in #2032
- feat: show sensor attributes on sensor page by @Flix6x in #2015
- Fix/small forecasting pipeline fixes by @BelhsanHmida in #2011
- chore: re-add the bcrypt dependency by @nhoening in #2029
- feat: Adapting flex-config to SensorsToShowSchema by @joshuaunity in #1904
- update contact details on get-in-touch page by @nhoening in #2022
- Upgrade some dependencies for security reasons by @nhoening in #2037
- Expand audit logging for password life-cycle by @nhoening in #2036
- Stop creating new toy assets when restarting the docker-compose stack by @Copilot in #2018
- Add FlexMeasures-Version and API-Version response headers by @Copilot in #2021
- Feat: full SoC preference by @Flix6x in #2023
- Make review lead main agent contact point by @Flix6x in #2066
- Fail fast in forecasting when omitted --start resolves to a predict_start after --end by @Copilot in #2064
- Fix lead agent initialization by @Copilot in #2068
- Feat/handle security error by @Flix6x in #2054
- Filter 404 errors from Sentry reports by default by @Copilot in #2071
- fix: regression in upsampling speed by updating timely-beliefs to v3.5.4 by @Flix6x in #2060
- Feat:
save_to_dbno longer attempts to save duplicate beliefs by @Flix6x in #2059 - Add POST endpoints for creating annotations on accounts, assets, and sensors by @Copilot in #1968
- Enhance JSON field change formatting for audit logs by @joshuaunity in #2055
- Feat/forecasting belief time by @Flix6x in #1978
- Sensor page: Stop side-panels using vertical space when closed by @nhoening in #2033
- docs: add Available Agents section to AGENTS.md so specialist subagents are discoverable by @Copilot in #2090
- Add "Create forecast" button to sensor page by @Copilot in #1985
- Feat/dynamic soc at start by @BelhsanHmida in #2026
- Fix drop_unchanged prior-belief selection regression by @Ragnar-the-mighty in #2086
- Fix: multiple regressors bug by @BelhsanHmida in #2088
- fix: DST bug in processing time series segments by @Flix6x in #2069
- Feat: JSON editor for sensor/asset/account attributes by @Flix6x in #2093
- Feat/show vertical graph lines by @joshuaunity in #2079
- Refactor/remove existing beliefs by @Flix6x in #2098
- Support coupling data sources to accounts, and preserve user ID and account ID references in audit logs and data sources by @Copilot in #2058
- Docs/new page about scripting and hems example by @nhoening in #2097
- Fix asset status page crash on old
sensors_to_showformat by @Copilot in #2103 - Add "Delete data" action to sensor page with filtered DELETE endpoint by @Copilot in #2095
- docs: document fallback schedule mechanism and 303 See Other redirects by @Copilot in #2107
- Fix: scheduling none soc mixed assets by @BelhsanHmida in #2108
- Fix: wrong ID type for fetching a schedule via OpenAPI by @Flix6x in #2109
New Contributors
- @TeaDrinkingProgrammer made their first contribution in #1973
Full Changelog: v0.31.0...v0.32.0
v0.31.3
This is a patch release in the 0.31.x series and includes some regression fixes. We recommend that all users upgrade to this version.
See our changelog for a list of all the changes.
Full Changelog: v0.31.2...v0.31.3
v0.31.2
This is a patch release in the 0.31.x series and includes some regression fixes. We recommend that all users upgrade to this version.
See our changelog for a list of all the changes.
Full Changelog: v0.31.1...v0.31.2
v0.31.1
This is a patch release in the 0.31.x series and includes some regression fixes. We recommend that all users upgrade to this version.
See our changelog for a list of all the changes.
Full Changelog: v0.31.0...v0.31.1