**********************
FlexMeasures Changelog
**********************
* Statistics shown in the UI default to that of the freshest source [see `PR #1399 `_]
v0.26.0 | June 03, 2025
============================
.. note:: Read more on these features on `the FlexMeasures blog `_.
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``).
New features
-------------
- Support saving the scheduled :abbr:`SoC (state of charge)` by referencing an appropriate sensor in the ``flex-model`` field ``state-of-charge`` [see `PR #1392 `_ and `PR #1406 `_]
* Allow relaxing :abbr:`SoC (state of charge)` minima and maxima, by setting penalties for not meeting these constraints, using two new ``flex-context`` fields [see `PR #1300 `_]
* Allow relaxing device-level power constraints, by setting penalties for not meeting these constraints, using two new ``flex-context`` fields [see `PR #1405 `_]
* Add sensor attribute (``frequency``) to align incoming measurements to a specified time interval [see `PR #1461 `_]
* Save changes in asset flex-context form right away [see `PR #1390 `_]
* Extending sensor CRUD functionality to the UI [see `PR #1394 `_ and `PR #1413 `_]
* Marker clusters on the dashboard map expand in a tree to show the hierarchical relationship of the assets they represent [see `PR #1410 `_]
* Load the sensors individually on the Sensors status page. Reload the jobs table using Ajax calls. Improve page performance and avoid timeouts. [see `PR #1425 `_ and `PR #1466 `_]
* New pages for `Properties`, `Graphs`, `Context`, `Status` and `Audit Log`. Simplified the main asset page. [see `PR #1416 `_, `PR #1387 `_, `PR #1442 `_, `PR #1470 `_, `PR #1473 `_, `PR #1478 `_, `PR #1480`_ and `PR #1482 `_]
* Only show important sensors statuses (flex-context and graph sensors) on the status page [see `PR #1439 `_]
* Let the user interact with the breadcrumbs on asset graphs page when the graphs are loading [see `PR #1472 `_]
* Added DB migrations to apply server defaults to ``generic_asset`` and ``data_sources`` tables [see `PR #1488 `_]
* Show visually distinct siblings and children in the assets dropdown [see `PR #1504 `_]
* Add resolution back to the CLI belief plotting [see `PR #1500 `_]
* Improved permission validation for user role updates. [see `PR #1465 `_]
Infrastructure / Support
----------------------
* Move to using a ``pyproject.toml`` [see `PR #1419 `_]
* Upgraded dependencies [see `PR #1400 `_, `PR #1444 `_, `PR #1448 `_, `PR #1484 `_, `PR #1490 `_ and `PR #1497 `_]
* Save last N jobs from any queue and registry to a file, and support filtering by asset ID or sensor ID [see `PR #1411 `_]
* Prevent accidentally still logging a warning in case a reporter already stopped using the ``use_latest_version_only`` argument [see `PR #1510 `_]
* Describe four supported user roles explicitly (docs and code) [see `PR #1451 `_]
* Updated the directory structure for crud operations for assets, sensors, users and accounts [see `PR #1467 `_ and `PR #1471 `_]
* Docs: Add tutorial scripts [see `PR #1505 `_]
* Docs: fix graphs page for assets in toy tutorial, display plotted sensors when CLI shows asset info [see `PR #1501 `_]
Bugfixes
-----------
* Fixed two alternatives for expressing a variable quantity as a time series; specifically, those involving the ``duration`` field [see `PR #1433 `_]
* Fix the preference to delay curtailment of any device [see `PR #1498 `_ and `PR #1499 `_]
* The data dashboard now supports overlapping sensors with instantaneous and non-instantaneous resolutions [see `PR #1407 `_]
* Fix map not loading when editing an asset [see `PR #1414 `_]
* Fix ``flexmeasures add schedule for-storage`` after flex-context database migration [see `PR #1417 `_ and `PR #1449 `_]
* Fix overriding of flex-context when asset is edited on the UI [see `PR #1469 `_]
* Support entering audit log entries by detached user instances [see `PR #1483 `_]
* Make flex context usage safer against this field being `None` [see `PR #1503 `_]
v0.25.0 | April 01, 2025
============================
.. note:: Read more on these features on `the FlexMeasures blog `_.
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``).
New features
-------------
* Added form modal to edit an asset's ``flex_context`` [see `PR #1320 `_, `PR #1365 `_ and `PR #1364 `_]
* Improve asset status page - distinguish better by data source type [see `PR #1022 `_]
* Better y-axis titles for charts that show multiple sensors with a shared unit [see `PR #1346 `_]
* Add CLI command ``flexmeasures jobs save-last-failed`` (since v0.26: ``flexmeasures jobs save-last``) for saving the last failed jobs [see `PR #1342 `_ and `PR #1359 `_]
* Add CLI command ``flexmeasures jobs delete-queue`` for deleting an obsolete queue [see `PR #1351 `_]
Infrastructure / Support
----------------------
* Support multi-asset scheduling in the ``StorageScheduler`` and job queueing - functionality for (plugin) developers (incl. prep work for future API endpoint for multi-asset scheduling) [see `PR #1313 `_]
* Support PV curtailment in the ``StorageScheduler`` [see `PR #1395 `_]
* Validate shared units are used in time series segments of flex-context prices [see `PR #1396 `_]
* Migrate data for the ``flex-context`` of an asset to a dedicated column in the database table for assets [see `PR #1293 `_, `PR #1354 `_ and `PR #1380 `_]
* Enhance reporting infrastructure by ensuring that all ``Sensor.search_beliefs`` filters can be used as report parameters [see `PR #1318 `_]
* Improve searching for multi-sourced data by returning data from only the latest version of a data generator (e.g. forecaster or scheduler) by default, when using ``Sensor.search_beliefs`` [see `PR #1306 `_]
* Extra reporter tests [see `PR #1317 `_]
* Catch invalid time windows passed to ``flexmeasures add report`` [see `PR #1324 `_]
* Test utility function for device scheduling in a multi-asset setting (sequential and simultaneous) [see `PR #1341 `_]
* Add utils doctests to our CI pipeline [see `PR #1347 `_]
* Clarify default limitations to concurrent connections [see `PR #1391 `_]
Bugfixes
-----------
v0.24.1 | February 27, 2025
============================
Infrastructure / Support
----------------------
* Update cache and Ubuntu versions used for testing in GitHub Actions [see `PR #1329 `_]
Bugfixes
-----------
* Fix map not loading when editing an asset [see `PR #1310 `_]
* Add missing support for fallback attribute for the ``soc-usage`` and ``soc-gain`` fields of the ``flex-model`` [see `PR #1340 `_]
v0.24.0 | January 7, 2025
============================
.. note:: Read more on these features on `the FlexMeasures blog `_.
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``).
New features
-------------
* Allow scheduling against energy contracts, capacity contracts and peak contracts simultaneously, using various new ``flex-context`` fields [see `PR #1144 `_]
* Allow using numeric values for ``flex-model`` fields accepting dimensionless quantities [see `PR #1144 `_]
* The data chart on the asset page splits up its color-coded sensor legend when showing more than 7 sensors, becoming a legend per subplot [see `PR #1176 `_ and `PR #1193 `_]
* Speed up loading the users page, by making the pagination backend-based and adding support for that in the API [see `PR #1160 `_]
* X-axis labels in CLI plots show datetime values in a readable and informative format [see `PR #1172 `_]
* Enhanced API for listing sensors: Added filtering and pagination on sensor index endpoint and created new endpoint to get all sensors under an asset [see `PR #1191 `_ and `PR #1219 `_]
* Speed up loading the accounts page by making the pagination backend-based and adding support for that in the API [see `PR #1196 `_]
* Speed up loading the account detail page by by switching to server-side pagination for assets, replacing client-side pagination [see `PR #1202 `_]
* Added form to edit an asset's sensors_to_show data directly from the UI [see `PR #1212 `_]
* Speed up loading on audit log tables page by switching to server-side pagination, replacing client-side pagination [see `PR #1274 `_ and `PR #1272 `_]
* Simplify and globalize UI messages, using Toast [see `PR #1207 `_]
* Power sensors created through the CLI no longer require a capacity attribute to be set [see `PR #1234 `_]
Infrastructure / Support
----------------------
* The breadcrumbs on asset and sensor pages can now be customized [see `PR #1257 `_]
* The monitoring command to check for users who have been absent too long now can be used to keep data volume low and be more effective [see `PR #1268 `_]
* Speed up status page by choosing for a faster query (only latest belief needed) [see `PR #1142 `_]
* Speed up user page (for users with many assets) [see `PR #1286 `_]
* For MacOS developers, install HiGHS solver automatically [see `PR #1187 `_]
* Migrate data for the ``sensors_to_show`` asset attribute to a dedicated column in the database table for assets [see `PR #1200 `_ and `PR #1282 `_]
* Add support for installing FlexMeasures under Python 3.12 [see `PR #1233 `_]
* Better error handling in UI, for example, in case of a forgotten ``flexmeasures db upgrade`` [see `PR #1302 `_]
Bugfixes
-----------
* Fix table sorting on the assets, accounts and users page (regression from `PR #988 `_) [see `PR #1239 `_, `PR #1242 `_, `PR #1248 `_, `PR #1247 `_ and `PR #1272 `_]
* Fix ``flexmeasures delete measurements`` and ``flexmeasures delete prognoses`` which had an error in counting affected rows after SQLAlchemy2.0 upgrade [see `PR #1095 `_ and `PR #1303 `_]
* Fix asset count on the user page, which showed 0 assets after (de)activating a user or resetting their password [see `PR #1251 `_]
* The UI footer now stays at the bottom even on pages with little content [see `PR #1204 `_]
* Correct stroke dash (based on source type) for forecasts made by forecasters included in FlexMeasures [see `PR #1211 `_]
* Show the correct :abbr:`UTC (Coordinated Universal Time)` offset for the data's time span as shown under sensor stats in the UI [see `PR #1213 `_]
* Fixed issue where audit log buttons are visible to users without the necessary permissions. [see `PR #1228 `_]
* Fix issue with displaying ``deactivate user`` and ``reset password`` buttons for non admin users [see `PR #1220 `_]
* Resolve overlapping time series segments in several flex-model and flex-context fields in a way befitting their nature [see `PR #1223 `_]
v0.23.2 | December 16, 2024
============================
Bugfixes
-----------
* Correct source filters on reporter input, and support piping additional transformations in the ``PandasReporter`` [see `PR #1284 `_]
v0.23.1 | November 12, 2024
============================
Bugfixes
-----------
* Correct unit conversion of reporter output to output sensor [see `PR #1238 `_]
v0.23.0 | September 18, 2024
============================
.. note:: Read more on these features on `the FlexMeasures blog `_.
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``).
New features
-------------
* New chart type on sensor page: histogram [see `PR #1143 `_]
* Add basic sensor info to sensor page [see `PR #1115 `_]
* Add `Statistics` table on the sensor page and also add `api/v3_0/sensors//stats` endpoint to get sensor statistics [see `PR #1116 `_]
* Support adding custom titles to the graphs on the asset page, by extending the ``sensors_to_show`` format [see `PR #1125 `_ and `PR #1177 `_]
* Support zoom-in action on the asset and sensor charts [see `PR #1130 `_]
* Speed up loading the assets page, by making the pagination backend-based and adding support for that in the API, and by enabling to query all accounts one can see in a single call (for admins and consultants) [see `PR #988 `_]
* Added Primary and Secondary colors to account for white-labelled UI themes [see `PR #1137 `_]
* Added Logo URL to account for white-labelled UI themes [see `PR #1145 `_]
* Added PopUp form to edit account details [see `PR #1152 `_]
* When listing past jobs on the `Tasks` page, show the most recent jobs first [see `PR #1163 `_]
* Introduce the ``VariableQuantityField`` to allow three ways of passing a variable quantity in most of the ``flex-model`` and ``flex-context`` fields [see `PR #1127 `_ and `PR #1138 `_]
* Support directly passing a fixed price in the ``flex-context`` using the new fields ``consumption-price`` and ``production-price``, which are meant to replace the ``consumption-price-sensor`` and ``production-price-sensor`` fields, respectively [see `PR #1028 `_]
Infrastructure / Support
----------------------
* Save beliefs faster by bulk saving [see `PR #1159 `_]
* Support new single-belief fast track (looking up only one belief) [see `PR #1067 `_]
* Add new annotation types: ``"error"`` and ``"warning"`` [see `PR #1131 `_ and `PR #1150 `_]
* When deleting a sensor, asset or account, delete any annotations that belong to them [see `PR #1151 `_]
* Removed deprecated ``app.schedulers`` and ``app.forecasters`` (use ``app.data_generators["scheduler"]`` and ``app.data_generators["forecaster"]`` instead) [see `PR #1098 `_]
* Save beliefs faster by bulk saving [see `PR #1159 `_]
* Introduced dynamic, JavaScript-generated toast notifications. [see `PR #1152 `_]
Bugfixes
-----------
* Fix string length exceeding the 255-character limit in the `event` field of `AssetAuditLog` by truncating long updates and logging each field or attribute change individually. [see `PR #1162 `_]
* Fix image carousel on the login page [see `PR #1154 `_]
* Fix styling for User and Documentation menu items [see `PR #1140 `_]
* Fix styling of sensor page, especially the graph chart dropdown [see `PR #1148 `_]
* Fix posting a single instantaneous belief [see `PR #1129 `_]
* Allow reassigning a public asset to private ownership using the ``flexmeasures edit transfer-ownership`` CLI command [see `PR #1123 `_]
* Fix missing value on spring :abbr:`DST (Daylight Saving Time)` transition for ``PandasReporter`` using daily sensor as input [see `PR #1122 `_]
* Fix date range persistence on session across different pages [see `PR #1165 `_]
* Fix issue with account creation failing when the ``--logo-url`` option is omitted. [see related PRs `PR #1167 `_ and `PR #1145 `_]
* Fix ordering of audit logs (asset, account) and job list on status page [see `PR #1179 _` and `PR #1183 `_]
v0.22.0 | June 29, 2024
============================
.. note:: Read more on these features on `the FlexMeasures blog `_.
New features
-------------
* Add `asset//auditlog` to view asset related actions [see `PR #1067 `_]
* On the `/sensor/id` page, allow to link to it with a date range and to copy current view as URL [see `PR #1094 `_]
* Flex-context (price sensors and inflexible device sensors) can now be set on the asset page (and are part of GenericAsset model) [see `PR #1059 `_]
* On the asset page's default view, facilitate comparison by showing the two default sensors together if they record the same unit [see `PR #1066 `_]
* Add flex-context sensors to status page [see `PR #1102 `_]
* Show tooltips on (mobile) touch screen [see `PR #1062 `_]
Infrastructure / Support
----------------------
* Add MailHog to docker-compose stack for testing email functionality [see `PR #1112 `_]
* Allow installing dependencies in docker-compose worker [see `PR #1057 `_]
* Add unit conversion to the input and output data of the ``PandasReporter`` [see `PR #1044 `_]
* Add option ``droplevels`` to the ``PandasReporter`` to drop all the levels except the ``event_start`` and ``event_value`` [see `PR #1043 `_]
* ``PandasReporter`` accepts the parameter ``use_latest_version_only`` to filter input data [see `PR #1045 `_]
* ``flexmeasures show beliefs`` uses the entity path (`/../`) in case of duplicated sensors [see `PR #1026 `_]
* Add ``--resolution`` option to ``flexmeasures show chart`` to produce charts in different time resolutions [see `PR #1007 `_]
* Add ``FLEXMEASURES_JSON_COMPACT`` config setting and deprecate ``JSONIFY_PRETTYPRINT_REGULAR`` setting [see `PR #1090 `_]
Bugfixes
-----------
* Fix ordering of jobs on the asset status page [see `PR #1106 `_]
* Relax max staleness for status page using 2 * event_resolution as default instead of immediate staleness [see `PR #1108 `_]
v0.21.0 | May 16, 2024
============================
.. note:: Read more on these features on `the FlexMeasures blog `_.
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``).
New features
-------------
* Add `asset//status` page to view asset statuses [see `PR #941 `_ and `PR #1035 `_]
* Add `account//auditlog` and `user//auditlog` to view user and account related actions [see `PR #1042 `_]
* Support ``start_date`` and ``end_date`` query parameters for the asset page [see `PR #1030 `_]
* In plots, add the asset name to the title of the tooltip to improve the identification of the lines [see `PR #1054 `_]
* On asset page, show sensor IDs in sensor table [see `PR #1053 `_]
Bugfixes
-----------
* Prevent the time window in the UI from moving to the latest data when refreshing the asset page [see `PR #1046 `_ and `PR #1056 `_]
Infrastructure / Support
----------------------
* Include started, deferred and scheduled jobs in the overview printed by the CLI command ``flexmeasures jobs show-queues`` [see `PR #1036 `_]
* Make it as convenient to clear deferred or scheduled jobs from a queue as it was to clear failed jobs from a queue [see `PR #1037 `_]
v0.20.1 | May 7, 2024
============================
Bugfixes
-----------
* Prevent **p**\ lay/**p**\ ause/**s**\ top of replays when editing a text field in the UI [see `PR #1024 `_]
* Skip unit conversion of :abbr:`SoC (state of charge)` related fields that are defined as sensors in a ``flex-model`` (specifically, ``soc-maxima``, ``soc-minima`` and ``soc-targets`` [see `PR #1047 `_]
v0.20.0 | March 26, 2024
============================
.. note:: Read more on these features on `the FlexMeasures blog `__.
.. warning:: From this version on, the config setting ``FLEXMEASURES_FORCE_HTTPS`` decides whether to enforce HTTPS on requests - and it defaults to ``False``. Previously, this was governed by ``FLASK_ENV`` or ``FLEXMEASURES_ENV`` being set to something else than ``"documentation"`` or ``"development"``. This new way is more clear, but you might be in need of using this setting before upgrading.
New features
-------------
* Add command ``flexmeasures edit transfer-ownership`` to transfer the ownership of an asset and its children from one account to another [see `PR #983 `_]
* Support defining the ``site-power-capacity``, ``site-consumption-capacity`` and ``site-production-capacity`` as a sensor in the API and CLI [see `PR #985 `_]
* Support defining the ``soc-minima``, ``soc-maxima`` and ``soc-targets`` as sensors in the API [see `PR #996 `_]
* Support defining inflexible power sensors with arbitrary power and energy units [see `PR #1007 `_]
* Support saving beliefs with a ``belief_horizon`` in the ``PandasReporter`` [see `PR #1013 `_]
* Skip the check of the output event resolution in any ``Reporter`` with the field ``check_output_resolution`` [see `PR #1009 `_]
Bugfixes
-----------
* Use minimum event resolution of the input (instead of the output) sensors for the belief search parameters [see `PR #1010 `_]
Infrastructure / Support
----------------------
* Align map layers with custom asset types in the UI's dashboard, also facilitating capturing asset types defined within FlexMeasures plugins [see `PR #1017 `_]
* Improve processing time for deleting beliefs via CLI [see `PR #1005 `_]
* Support deleting beliefs via CLI for all offspring assets at once [see `PR #1003 `_]
* Add setting ``FLEXMEASURES_FORCE_HTTPS`` to explicitly toggle if HTTPS should be used for all requests [see `PR #1008 `_]
* Make flexmeasures installable locally on macOS [see `PR #1000 `_]
* Align API endpoint policy w.r.t. trailing slash [see `PR #1014 `_]
v0.19.2 | March 1, 2024
============================
.. note:: Optionally, run ``flexmeasures db upgrade`` after upgrading to this version for enhanced database performance on time series queries.
* Upgrade timely-beliefs to enhance our main time series query and fix a database index on time series data, leading to significantly better performance [see `PR #992 `_]
* Fix server error on loading the asset page for a public asset, due to a bug in the breadcrumb's sibling navigation [see `PR #991 `_]
* Restore compatibility with the `flexmeasures-openweathermap plugin `_ by fixing the query for the closest weather sensor to a given asset [see `PR #997 `_]
v0.19.1 | February 26, 2024
============================
* Support defining the ``power-capacity`` as a sensor in the API and CLI [see `PR #987 `_]
v0.19.0 | February 18, 2024
============================
.. note:: Read more on these features on `the FlexMeasures blog `__.
.. warning:: This version replaces ``FLASK_ENV`` with ``FLEXMEASURES_ENV`` (``FLASK_ENV`` will still be used as a fallback).
New features
-------------
* List child assets on the asset page [see `PR #967 `_]
* Expand the UI's breadcrumb functionality with the ability to navigate directly to sibling assets and sensors using their child-parent relationship [see `PR #977 `_]
* Enable the use of QuantityOrSensor fields for the ``flexmeasures add schedule for-storage`` CLI command [see `PR #966 `_]
* CLI support for showing/savings time series data for a given type of source only, with the new ``--source-type`` option of ``flexmeasures show beliefs``, which let's you filter out schedules, forecasts, or data POSTed by users (through the API), which each have a different source type [see `PR #976 `_]
* New CLI command ``flexmeasures delete beliefs`` to delete all beliefs on a given sensor (or multiple sensors) or on sensors of a given asset (or multiple assets) [see `PR #975 `_]
* Support for defining the storage efficiency as a sensor or quantity for the ``StorageScheduler`` [see `PR #965 `_]
* Support a less verbose way of setting the same :abbr:`SoC (state of charge)` constraint for a given time window [see `PR #899 `_]
Infrastructure / Support
----------------------
* Deprecate use of flask's ``FLASK_ENV`` variable and replace it with ``FLEXMEASURES_ENV`` [see `PR #907 `_]
* Streamline CLI option naming by favoring ``--`` over ``---id`` [see `PR #946 `_]
* Documentation: improve index page, installation overview, feature overview incl. flex-model overview and UI screenshots [see `PR #953 `_]
* Faster database queries of time series data by upgrading SQLAlchemy and timely-beliefs [see `PR #938 `_]
v0.18.2 | February 26, 2024
============================
* Convert unit of the power capacities to ``MW`` instead of that of the storage power sensor [see `PR #979 `_]
* Automatically update table navigation in the UI without requiring users to hard refresh their browser [see `PR #961 `_]
* Updated documentation to enhance clarity for integrating plugins within the FlexMeasures Docker container [see `PR #958 `_]
* Support defining the ``power-capacity`` as a sensor in the API [see `PR #987 `_]
v0.18.1 | January 15, 2024
============================
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``).
Bugfixes
-----------
* Fix database migrations meant to clean up deprecated tables [see `PR #960 `_]
* Allow showing beliefs (plot and file export) via the CLI for sensors with non-unique names [see `PR #947 `_]
* Added Redis credentials to the Docker Compose configuration for the web server to ensure proper interaction with the Redis queue [see `PR #945 `_]
* Fix API version listing (GET /api/v3_0) for hosts running on Python 3.8 [see `PR #917 `_ and `PR #950 `_]
* Fix the validation of the option ``--parent-asset`` of command ``flexmeasures add asset`` [see `PR #959 `_]
v0.18.0 | December 23, 2023
============================
.. note:: Read more on these features on `the FlexMeasures blog `__.
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``). If this fails, update to ``flexmeasures==0.18.1`` first (and then run ``flexmeasures db upgrade``).
New features
-------------
* Better navigation experience through listings (sensors / assets / users / accounts) in the :abbr:`UI (user interface)`, by heading to the selected entity upon a click (or CTRL + click) anywhere within a row [see `PR #923 `_]
* Introduce a breadcrumb to navigate through assets and sensor pages using its child-parent relationship [see `PR #930 `_]
* Define device-level power constraints as sensors to create schedules with changing power limits [see `PR #897 `_]
* Allow to provide external storage usage or gain components using the ``soc-usage`` and ``soc-gain`` fields of the ``flex-model`` [see `PR #906 `_]
* Define time-varying charging and discharging efficiencies as sensors or as constant values which allows to define the :abbr:`COP (coefficient of performance)` [see `PR #933 `_]
Infrastructure / Support
----------------------
* Align database and models of ``annotations``, ``data_sources``, and ``timed_belief`` [see `PR #929 `_]
* New documentation section on constructing a flex model for :abbr:`V2G (vehicle-to-grid)` [see `PR #885 `_]
* Allow charts in plugins to show currency codes (such as EUR) as currency symbols (€) [see `PR #922 `_]
* Remove obsolete database tables ``price``, ``power``, ``market``, ``market_type``, ``weather``, ``asset``, and ``weather_sensor`` [see `PR #921 `_]
* New flexmeasures configuration setting ``FLEXMEASURES_ENFORCE_SECURE_CONTENT_POLICY`` for upgrading insecure `http` requests to secured requests `https` [see `PR #920 `_]
Bugfixes
-----------
* Give ``admin-reader`` role access to the RQ Scheduler dashboard [see `PR #901 `_]
* Assets without a geographical position (i.e. no lat/lng coordinates) can be edited through the UI [see `PR #924 `_]
v0.17.1 | December 7, 2023
============================
Bugfixes
-----------
* Show `Assets`, `Users`, `Tasks` and `Accounts` pages in the navigation bar for the ``admin-reader`` role [see `PR #900 `_]
* Reduce worker logs when datetime exceeds the end of the schedule [see `PR #918 `_]
* Fix infeasible problem due to incorrect estimation of the big-M value [see `PR #905 `_]
* [Incomplete fix; full fix in v0.18.1] Fix API version listing (GET /api/v3_0) for hosts running on Python 3.8 [see `PR #917 `_]
v0.17.0 | November 8, 2023
============================
.. note:: Read more on these features on `the FlexMeasures blog `__.
.. warning:: Upgrading to this version requires running ``flexmeasures db upgrade`` (you can create a backup first with ``flexmeasures db-ops dump``).
New features
-------------
- Different site-level production and consumption limits can be defined for the storage scheduler via the API (``flex-context``) or via asset attributes [see `PR #884 `_]
- Scheduling data better distinguishes (e.g. in chart tooltips) when a schedule was the result of a fallback mechanism, by splitting off the fallback mechanism from the main scheduler (as a separate job) [see `PR #846 `_]
- New accounts can set a consultancy relationship with another account to give read access to external consultants [see `PR #877 `_ and `PR #892 `_]
Infrastructure / Support
----------------------
- Introduce a new one-to-many relation between assets, allowing the definition of an asset's parent (which is also an asset), which leads to a hierarchical relationship that enables assets to be related in a structured manner [see `PR #855 `_ and `PR #874 `_]
- Introduce a new format for the output of ``Scheduler`` to prepare for multiple outputs [see `PR #879 `_]
v0.16.1 | October 2, 2023
============================
Bugfixes
-----------
* Fix infeasible problem due to incorrect parsing of :abbr:`SoC (state of charge)` units of the ``soc-minima`` and ``soc-maxima`` fields within the ``flex-model`` field [see `PR #864 `_]
v0.16.0 | September 27, 2023
============================
.. note:: Read more on these features on `the FlexMeasures blog `__.
New features
-------------
* Introduce new reporter to compute profit/loss due to electricity flows: ``ProfitOrLossReporter`` [see `PR #808 `_ and `PR #844 `_]
* Charts visible in the UI can be exported to PNG or SVG formats in a more automated fashion, using the new CLI command flexmeasures show chart [see `PR #833 `_]
* Chart data visible in the UI can be exported to CSV format [see `PR #849 `_]
* Sensor charts showing instantaneous observations can be interpolated by setting the ``interpolate`` sensor attribute to one of the `supported Vega-Lite interpolation methods `_ [see `PR #851 `_]
* API users can ask for a schedule to take into account an explicit ``power-capacity`` (flex-model) and/or ``site-power-capacity`` (flex-context), thereby overriding any existing defaults for their asset [see `PR #850 `_]
* API users (and hosts) are warned in case a fallback scheduling policy has been used to create their schedule (as part of the the `/sensors//schedules/` (GET) response message) [see `PR #859 `_]
Infrastructure / Support
----------------------
* Allow additional datetime conversions to quantitative time units, specifically, from timezone-naive and/or dayfirst datetimes, which can be useful when importing data [see `PR #831 `_]
* Add a new tutorial to explain the use of the ``AggregatorReporter`` to compute the headroom and the ``ProfitOrLossReporter`` to compute the cost of running a process [see `PR #825 `_ and `PR #856 `_]
* Updated admin dashboard for inspecting asynchronous tasks (scheduling, forecasting, reporting, etc.), and improved performance and security of the server by upgrading Flask and Flask extensions [see `PR #838 `_]
* Script to update dependencies across supported Python versions [see `PR #843 `_]
* Test all supported Python versions in our CI pipeline (GitHub Actions) [see `PR #847 `_]
* Have our CI pipeline (GitHub Actions) build the Docker image and make a schedule [see `PR #800