- REST endpoints for managing assets: /assets/ (GET, POST) and /asset/<id> (GET, PATCH, DELETE)
Affects all versions since v1.0.
Separated the dual purpose of the "horizon" parameter in the getMeterData and getPrognosis endpoints by introducing the "prior" parameter:
- The "horizon" parameter in GET endpoints is now always interpreted as a rolling horizon, regardless of whether it is stated as an ISO 8601 repeating time interval.
- The getMeterData and getPrognosis endpoints now accept an optional "prior" parameter to select only data recorded before a certain ISO 8601 timestamp (replacing the unintuitive usage of the horizon field for specifying a latest time of belief).
Affects all versions since v1.0.
- The getMeterData and getPrognosis endpoints now return the INVALID_SOURCE status 400 response in case the optional "source" parameter is used and no relevant sources can be found.
Affects all versions since v1.0.
- Endpoints to POST meter data will now check incoming data to see if the required asset's resolution is being used ― upsampling is done if possible. These endpoints can now return the REQUIRED_INFO_MISSING status 400 response.
- Endpoints to GET meter data will return data in the asset's resolution ― downsampling to the "resolution" parameter is done if possible.
- As they need to determine the asset, all of the mentioned POST and GET endpoints can now return the UNRECOGNIZED_ASSET status 4000 response.
- Improved support for use cases of the getDeviceMessage endpoint in which a longer duration, between posting UDI events and retrieving device messages based on those UDI events, is required; the default time to live of UDI event identifiers is prolonged from 500 seconds to 7 days, and can be set as a config variable (FLEXMEASURES_PLANNING_TTL)
- Changed backend support (API specifications unaffected) for scheduling charging stations to scheduling Electric Vehicle Supply Equipment (EVSE), in accordance with the Open Charge Point Interface (OCPI).
- Fixed example entity addresses in simulation section
- Backend change: the default planning horizon can now be set in FlexMeasures's configuration (FLEXMEASURES_PLANNING_HORIZON)
- Introduced new event type "soc-with-targets" to support scheduling charging stations (see extra example for the postUdiEvent endpoint)
- The postUdiEvent endpoint now triggers scheduling jobs to be set up (rather than scheduling directly triggered by the getDeviceMessage endpoint)
- The getDeviceMessage now queries the job queue and database for an available schedule
Updated endpoint descriptions with additional possible status 400 responses:
- INVALID_DOMAIN for invalid entity addresses
- UNKNOWN_PRICES for infeasible schedules due to missing prices
- Added a list of registered types of weather sensors to the Simulation section and postWeatherData endpoint
- Changed example for the postPriceData endpoint to reflect Korean situation
- Added a local table of contents to the Simulation section
- Added a description of the postPriceData endpoint in the Simulation section
- Added a description of the postWeatherData endpoint in the Simulation section
- Revised the subsection about posting power data in the Simulation section
- Revised the entity address for UDI events to include the type of the event
i.e.
{
"type": "PostUdiEventRequest",
"event": "ea1.2018-06.io.flexmeasures.company:7:10:203:soc",
}
rather than the erroneously double-keyed:
{
"type": "PostUdiEventRequest",
"event": "ea1.2018-06.io.flexmeasures.company:7:10:203",
"type": "soc"
}
- Added a description of the postUdiEvent endpoint in the Prosumer and Simulation sections
- Added a description of the getDeviceMessage endpoint in the Prosumer and Simulation sections
- Fixed the getConnection endpoint where the returned list of connection names had been unnecessarily nested
- Added support for posting daily and weekly prices for the postPriceData endpoint
Added the Simulation section:
- Added information about setting up a new simulation
- Added examples for calling the postMeterData endpoint
- Added example for calling the getPrognosis endpoint
- Added the postPrognosis endpoint
- Added the postPriceData endpoint
- Added a description of the postPrognosis endpoint in the Aggregator section
- Added a description of the postPriceData endpoint in the Aggregator and Supplier sections
FLEXMEASURES_MODE == "play"
- Added the restoreData endpoint
- Added the getConnection endpoint
- Added the postWeatherData endpoint
Changed the Introduction section:
- Added information about the sign of power values (production is negative)
- Updated information about horizons (now anchored to the end of each time interval rather than to the start)
- Added an optional horizon to the postMeterData endpoint
- Added the getPrognosis endpoint
- Changed the getMeterData endpoint to accept an optional resolution, source, and horizon
Changed the Introduction section:
- Added information about timeseries resolutions
- Added information about sources
- Updated information about horizons
- Added a description of the getPrognosis endpoint in the Supplier section
Moved specifications to be part of the platform's Sphinx documentation:
- Each API service is now documented in the docstring of its respective endpoint
- Added sections listing all endpoints per version
- Documentation includes specifications of all supported API versions (supported versions have a registered Flask blueprint)
- Started change log
Added Introduction section with notes regarding:
- Authentication
- Relevant roles for the API
- Key notation
- The addressing scheme for assets
- Connection group notation
- Timeseries notation
- Prognosis notation
- Units of timeseries data
- Added a description of the getService endpoint in the Introduction section
- Added a description of the postMeterData endpoint in the MDC section
- Added a description of the getMeterData endpoint in the Prosumer section