Features:
- Add plugin feature to define custom tasks
Other changes:
- Celery config is merged with core config
- Celery worker should now be launched as bemserver_core.celery_worker
Bug fixes:
- Fix energyindex2energy: divide by interval
Bug fixes:
- Fix filtering timeseries by multiple properties (again)
Bug fixes:
- Fix filtering timeseries by multiple properties
Features:
- Allow filtering by property data when querying timeseries
Features:
- Remove bemserver_core.__version__
Other changes:
- Require pint>=0.23
- Change license to MIT
Other changes:
- Support Python 3.12
Features:
- Rehash password on login if needed
Other changes:
- Remove passlib dependency
- Require pandas >= 2.2.0
Bug fixes:
- Don't forward fill interpolate after last value in indexenergy2power/energy
Other changes:
- Support Python 3.11
Features:
- Completeness: include full buckets on edges
Features:
- Improve missing/outlier data event description
Features:
- Improve notification email subject
Bug fixes:
- CSV import: catch too many columns error
- Bulk insert: don't use fixed VALUES clause
- Email: use send_message, not sendmail
Bug fixes:
- Enforce model (reanalysis vs. forecast) when getting weather data
Bug fixes:
- Validate unit on Timeseries flush
Features:
- Add energy <=> power conversion processes
- Add send email feature
- Send email on notification
Other changes:
- Require psycopg 3.x
Bug fixes:
- Forward fill process: ceil start_dt to respect bucket width parameters
Bug fixes:
- Fix DownloadWeatherData and DownloadWeatherForecastData tasks names
Bug fixes:
- Rollback session on end of task
Other changes:
- Remove official Python 3.11 support
Features:
- Add forward fill process
- Add TimeseriesDataIO.get_last
- Add unit and ratio arguments to energy consumption breakdown process
- Add get_property_value method to Site/Building/...
Bug fixes:
- Fix energy consumption breakdown computation crash on timeseries duplicate
Features:
- Download forecast weather feature
Features:
- Weather: differentiate forecast data
Features:
- Add "ratio" unit
Bug fixes:
- TimeseriesDataJSONIO: catch wrong value type error
- Fix conversion to "%"
Other changes:
- Require Pint 0.21
Features:
- TimeseriesDataIO TS stats: add count
Features:
- TimeseriesDataIO: TS stats
Features:
- Add Heating/Cooling Degree Days computation process
- Add BEMServerCoreUnitError base exception for unit errors
Bug fixes:
- CSV IO: don't crash on empty file
Features:
- Weather data download: catch API key error
Features:
- Rework session management: only commit in tasks and commands
- Add latitude and longitude to Site
- Add convert_from argument to TimeseriesDataIO and TimeseriesDataCSV/JSONIO
- Add weather data download feature: Oikolab client, model, process, task
- Ignore underscore variables in config files
Bug fixes:
- Catch DefinitionSyntaxError in BEMServerUnitRegistry.validate_unit
- Scheduled task: skip if is_enabled is False
Other changes:
- Require Pandas 2.x
- Require SQLAlchemy 2.x
- Set upper bound to requirements versions in setup.py
Features:
- Load configuration from Python file provided by BEMSERVER_CORE_SETTINGS_FILE environment variable
- Init authentication at BEMServerCore init
- Add direct/diffuse solar radiation to WeatherParameterEnum
Bug fixes:
- TimeseriesDataCSV/JSONIO: catch OutOfBoundsDatetime when loading data
Features:
- Rename EnergySource -> Energy
- Add EnergyProductionTechnology
- Add EnergyProductionTimeseriesBySite/Building
- Add WeatherParameterEnum and WeatherTimeseriesBySite
Bug fixes:
- Add bemserver_core/common/units.txt to MANIFEST.in
Features:
- Add unit conversions, convert on-the-fly when getting timeseries data
- Remove wh_conversion_factor from EnergyConsumptionTimeseriesBySite/Building
Bug fixes:
- Fix migrations/env.py for SQLAlchemy 2.0
Other changes:
- Reintroduce SQLAlchemy 1.4 support
Features:
- BEMServerCoreCelery: get DB URL from config file rather than env var
Bug fixes:
- TimeseriesDataIO.get_*: fix columns order in returned dataframe, which fixes an issue with the completeness computation process
Other changes:
- Require SQLAlchemy 2.x
Features:
- Add Notification.mark_all_as_read and Notification.get_count_by_campaign
- Add Notification campaign_id filter
Bug fixes:
- Make TimeseriesDataIODatetimeError child of TimeseriesDataIOError
Features:
- Check outliers data scheduled task
Features:
- Rework Timeseries event filter
- Rework Timeseries site,... filters
- Rework Event site,... filters
Features:
- Add Notification
- Add EventCategoryByUser
- Create notifications on event creation, asynchronously (Celery)
Features:
- Split Timeseries site_id/... and event_id filters into separate functions
- Add Event campaign_id, user_id, timeseries_id and site_id/... filters
Features:
- Replace EventLevel table with EventLevelEnum
- Add Timeseries.get event_id filter
Features:
- Add EventBySite, EventByBuilding,...
- Fix tables relation and backref names for consistency
- Enable and fix SQLAlchemy 2.0 compatibilty warnings
Other changes:
- Fix CI to test Python 3.11
Features:
- Event model
- Check missing data scheduled task
Other changes:
- Support Python 3.11
The migration revision for this release was named 0.3 by mistake.
Features:
- Timeseries data IO: JSON I/O
- Timeseries data IO: improve error handling
Features:
- User management
- Authorization layer (Oso)
- Timeseries data storage
- Site, building,... data model
- Completeness, cleanup and energy consumption processes
- Cleanup scheduled task (Celery)