Changelog
Before updating, make sure to check the changelog for any incompatible changes that may affect your installation.
Usually only major version updates contain incompatible changes. E.g. upgrading from v6.x to v7.x.
v6.1.0 - May 2026
Spring cleaning: improved accessibility, rolling 365-day dashboard panel, more reliable data retention and Dropbox sync, and a lighter frontend dependency footprint.
Improvements
Accessibility
- Applied WCAG 2.2 AA accessibility improvements to frontend templates (semantic headings, ARIA attributes, keyboard navigation, screen reader support)
Dashboard
- Added rolling past-365-days consumption panel to the dashboard - #1998
UI
- Improved decimal rendering with experimental formatting — Give yourself a few days to get used to it ;-)
Retention
- Improved retention data rotation query performance by using index-friendly count - #2138
- Improved retention data rotation scheduling to avoid redundant re-runs in steady state - #2138
- Improved retention data rotation to cache progress, skipping already-processed hours on subsequent runs - #2138
Weather
- Improved Buienradar weather station list to be fetched dynamically from the API instead of being hardcoded - #2167
Dropbox
- Improved Dropbox sync to no longer remove credentials on server/API errors, instead rescheduling for 5 minutes
Other changes and fixes
Fixes
- Fixed retention data rotation being stuck in a loop on non-UTC systems (e.g.
Europe/Amsterdam) - #2137 - Fixed empty green badges rendering on the energy contracts page when no electricity returned data is available - #2133
UI
- Improved compare page trend icons and layout
Dependencies
- Updated Font Awesome Free from 7.1.0 to 7.2.0
- Updated ECharts from 5.3.3 to 5.6.0
- Updated jQuery from 3.6.0 to 3.7.1
- Replaced Bootstrap Datepicker 1.9.0 with a custom day/month/year picker (Archive, Compare, Trends)
- Replaced Moment.js with Day.js (~2 KB vs ~70 KB)
- Removed unused vendored libraries: Semantic UI, iCheck, jQuery Inputmask, jQuery placeholder, jQuery slimScroll, jQuery ba-resize, Ionicons, html5shiv, Respond.js
Miscellaneous
- Generic development improvements
v6.0.2 - February 2026
Reverts a PVOutput net power calculation change introduced in v6.0.0.
Fixes
PVOutput
v6.0.1 - February 2026
Security dependency updates.
v6.0.0 - February 2026
Major release dropping bare-metal installations, legacy database/Python versions, and old environment variables. Adds containerized hosting improvements, InfluxDB/MQTT queue management commands, and upgrades to Django 5.2 LTS.
Incompatible changes
Incompatible changes: Installations
Dropped installation support for:
- Native/bare metal installations without containers
This project moves forward by adopting the containerized version of Xirixiz as the de facto standard installation method.
You can always host DSMR-reader yourself without containers and without support, as there are purposely no technical blockers built-in that prevent it. However, future releases will not take these installations into account and might break them unintentionally (e.g. with a Python upgrade). Care when chosing this route and manually updating in the future.
Incompatible changes: Database versions
Dropped database support for:
- PostgreSQL 10
- PostgreSQL 11
- PostgreSQL 12
- PostgreSQL 13
- MariaDB 10.1
- MariaDB 10.2
- MariaDB 10.3
- MariaDB 10.4
- MySQL 5.7 (and lower)
- MySQL 8.0.10 (and lower)
Most database versions are either end-of-life or no longer supported by the Django Framework version DSMR-reader uses (or will upgrade to in the upcoming year).
You are advised to upgrade to PostgreSQL 17 if you need to upgrade anyway. This will likely delay your next database upgrade required, for a few more years, as it's expected to be end-of-life around late 2029.
Incompatible changes: Python versions
Dropped Python support for:
- Python 3.7
- Python 3.8
- Python 3.9
- Python 3.10
- Python 3.11
- Python 3.12
DSMR-reader is developed, tested and built on Python 3.14. Older versions are unlikely to work due to dependency pinning.
Incompatible changes: Legacy environment variables
Dropped:
DSMR_USER(replaced byDSMRREADER_ADMIN_USERsince v5)DSMR_PASSWORD(replaced byDSMRREADER_ADMIN_PASSWORDsince v5)DSMRREADER_BACKUP_INTERVAL_DAYS(replaced by admin setting since v5.9)DSMRREADER_BACKUP_NAME_PREFIX(no replacement)
DSMR-reader is developed, tested and built on Python 3.13 and will soon even move to Python 3.14. Older versions are unlikely to work due to dependency pinning.
New features
Hosting
- Added new dedicated URL route for health check and monitoring purposes:
GET /healthcheck - More Django settings exposed via environment variables - #2010
- Added
DSMRREADER_BACKEND_HIBERNATEin favor of migrating to containerized setup
This greatly improves the flexibility of changing internal settings without having to manually alter the installation.
All environment variables available
InfluxDB
- Use Influx URL instead of Influx hostname + port combination - #1984
- Added command-line alias for clearing InfluxDB queue
- This is an alternative for executing database queries that do the same
shell
./manage.py dsmr_influxdb_clear_queue
- This is an alternative for executing database queries that do the same
MQTT
- Changed message queue primary key from AutoField to BigAutoField to reduce the number if sequence resets needed - #2000
- Added command-line alias for clearing MQTT queue
- This is an alternative for executing database queries that do the same
shell
./manage.py dsmr_mqtt_clear_queue
- This is an alternative for executing database queries that do the same
Other changes and fixes
PVOutput
- Improved net power calculation to use average recent consumption data instead of latest value - #2064
Documentation
- Added explanation about upload time to MinderGas - #1979 by
MrLurch81 - Fixed broken API docs rendering caused by legacy ReDoc link
- Simplified online documentation - #1686
- Dropped Dutch translation for the online documentation
- The DSMR-reader translations inside the application are not affected
Miscelaneous
- Updated Django to 5.2 LTS
- Updated a lot of other dependencies to a more recent version
- The Dropbox SDK is the most important one due to incompatible Dropbox API changes per 1 January 2026
- Updated FontAwesome icons assets to latest version
- Added missing favicon for admin interface
- Fixed some small typo's and translations
Previous release series
Navigate between releases using the tabs below.
v5.12.0 - December 2025
Warning
This is the last release in the DSMR-reader v5.x series. Upgrade to DSMR-reader v6.x for future support and features.
See the v6 upgrade guide for more information.
-
Fixed Updated Dropbox SDK to latest version in favor of incompatible API changes on January 1st, 2026.
-
Dropped support for Python 3.7 and 3.8 - Do NOT update if you run these versions! Switch directly to DSMR-reader v6 instead.
v5.11.0 - February 2024
- Fixed Bugfix for Archive which was causing the electricity returned meter positions to be displayed at all times.
- Fixed #1767 Slightly alter debug info for unsupported database engines.
- Fixed #1841 Restored broken
v4-upgrade-redirectroute for legacy upgrades. - Fixed #1901 Naming in sorted graphs configuration.
-
Fixed #1945 Make retention intervals more accurate. - by
RichieB2B -
Changed #1827 Update to python 3.11.2 - by
goegol - Changed #1861 Added undocumented env var for low level datalogger usage
v5.10.4 - November 2023
- Fixed #1915 Pyyaml dependency unavailable.
v5.10.3 - February 2023
- Fixed #1799 Bugfix in favor of
v5.10DSMR-parser update (only affected Fluvius).
v5.10.2 - January 2023
- Fixed #1770 Disabled an automatic data migration in
v5.10until further notice.
v5.10.1 - January 2023
- Fixed #1795 Bugfix in favor of
v5.10data migration checks.
v5.10.0 - January 2023
- Fixed #1770 Fixed not always logging the right (gas) meter positions in day statistics correctly.
- Fixed #1770 Fixed having gas consumption in day statistics being slightly off (situationally).
- Fixed #1792 Fix dark mode warnings in Django admin
-
Fixed Fixed minor issues on the Dashboard notification page in favor of automatic migration messages.
-
Added #1770 Now tracking meter position timestamps in day statistics. Added them to Archive (day view) and Export.
- Added #1770 Automatic migrations retroactively reassessing meter positions and timestamps. Additionally checks/fixes gas consumption mismatch.
- Added #1794 Added new datalogger configuration option for selecting extra device channel for specific vendor(s)
-
Added Old Dashboard notifications can now be viewed and permanently deleted in the Frontend admin section.
-
Changed #1725 The value of
DSMRREADER_LOGLEVELis now restricted to:DEBUG,WARNINGorERROR - Changed #1725 The value of
DSMRREADER_REMOTE_DATALOGGER_INPUT_METHODis now restricted to:serialoripv4 - Changed #1794 #1764 Updated dsmr_parser (mostly) with latest version
v5.9.0 - November 2022
- Added Support for Python 3.11
- Added Added new "Support" page to access help and debugging information more easily
- Added #1635 Support for quarter-hour peak consumption split-topic MQTT messages - Sent after a new quarter-hour peak is calculated
- Added #1635 Support for quarter-hour peak consumption JSON MQTT messages - Sent after a new quarter-hour peak is calculated
- Added #1635 New REST API endpoint for listing quarter-hour peak electricity consumption
- Added #1746 #1685 New admin setting for changing backup intervals
- Added #1746 #1609 New admin setting for changing backup file names
- Changed Reworked API docs, updated Postman collection.
- Changed Reworked "About" page, splitting it partially into the new "support" page.
- Changed Reworked small GUI stuff, updated some icons.
- Removed Dropped "Export" menu item from the main menu, added a reference to it on the new "Support" page instead.
- Deprecated #1685 Prepared future removal of undocumented
DSMRREADER_BACKUP_INTERVAL_DAYSenv var for overriding backup intervals - Deprecated #1609 Prepared future removal of undocumented
DSMRREADER_BACKUP_NAME_PREFIXenv var for overriding backup name prefix
Attention: The deprecated
DSMRREADER_BACKUP_INTERVAL_DAYSandDSMRREADER_BACKUP_NAME_PREFIXenv vars still take priority over the newly introduced admin settings. However, please remove these env vars from your installation if you use them and just use the admin interface instead.
v5.8.0 - September 2022
- Fixed #1714 Outgoing MQTT message queue not maintaining its own order
Attention: This release fixes a four-year-old bug that may have disrupted the order of your MQTT messages sent by DSMR-reader.
It only affected installations with either a high throughput of data or a delayed backend process (or both). You probably may only have noticed it when running an installation similar to the one above, along using per-topic data sources. The majority of users should be unaffected anyway.
v5.7.0 - September 2022
v5.6.0 - August 2022
v5.5.1 - July 2022
- Fixed #1677 Unable to configure dropbox backup - Dropbox SDK downgrade
v5.5.0 - July 2022
v5.4.0 - July 2022
v5.3.0 - June 2022
v5.2.0 - May 2022
- Added #1084 Support for tracking quarter peak electricity consumption (due to upcoming changes in Belgium's policy)
- Added #1559 Meterstand tonen bij energiecontracten
- Added #1609 Allow overriding backup files name prefix
- Changed Added new admin setting for GUI refresh interval (1 - 5 seconds, default 5)
- Changed Reworked search terms for Configuration page a bit
- Changed Improved error logging for uncaught errors in backend process
- Changed #1612 Added libjpeg-dev to upgrade guide for situational issues
- Fixed #1602 Graph numbers hidden when using OS dark mode + DSMR-reader light mode
- Fixed #1631 Meter statistics tariff description field update
v5.1.0 - March 2022
Warning
The following features/support were changed in an incompatible way due to external requirements!
- Changed #1210 Dropbox Oauth flow: The App Key is no longer configurable in the admin interface and now uses the default App Key of DSMR-reader
Other changes:
- Added #1567 Support for dark mode - by @Justin991q
- Changed #1589 Dagelijkse notificaties uitbreiden
- Changed Trends datepicker start now defaults to today
- Changed Extended some admin forms with additional delete/save/update buttons on top of page
- Changed Added support for deleting "dsmrreading" records and "electricity/gas consumption" records in the admin
- Changed Dependency updates
- Fixed dsmr-reader-docker/#1579 Increased remote datalogger its default log level from
INFOtoERROR - Fixed #1579 Fix docker issue with pg_dump not found - by @sanderdw
- Fixed #1523 Improved empty/error state in Trends
- Fixed #1517 Vergelijken geeft visueel verkeerde kleur bij negatief verschil
- Fixed #1591 Added headers to XHR responses to prevent browser caching
v5.0.0 - February 2022
Note
This release of DSMR-reader requires you to manually upgrade from v4.x to v5.x. See the v5 upgrade guide for more information.
Tip
The following changes may affect your setup of DSMR-reader.
- Changed dsmr_datalogger_api_client.py env vars are now prefixed with
DSMRREADER_REMOTE_(affects new installations only) #1216 - Changed #1561 The default value of
DSMRREADER_MQTT_MAX_CACHE_TIMEOUTwas changed from3600to0, disabling MQTT cache by default - Changed #1561 The default value of
DSMRREADER_MQTT_MAX_MESSAGES_IN_QUEUEwas changed from500to5000 - Changed #1380 The
dsmr_influxdb_export_all_readingsits console arguments were renamed due to InfluxDB 2.x - Changed #1210 Dropbox integratie via OAuth + PKCE
- Changed #1314 Preferred Python version for DSMR-reader is now Python 3.9 (support until end of 2025), minimum version Python 3.7
- Changed #1363 Updated to Django 3.2
- Fixed #1563 OpenAPI specs wijken qua formaat af van de bestandsextensie
- Fixed #1568 InfluxDB 2.x instelling-velden te kort (release candidate 2)
Warning: ⚠️ The following features/support have been dropped or were changed in an incompatible way!
- Changed #1297 Relocated Supervisor processes PID files from
/var/tmp/to/tmp/ - Removed #1314 Dropped support for Python 3.6 (EOL December 2021)
- Removed #1380 Dropped support for InfluxDB 1.x
- Removed #1363 Dropped support for PostgreSQL 9.x and below (due to Django 3.2 + PostgreSQL lifecycle)
- Removed #1363 Dropped support for MySQL 5.6 and below (due to Django 3.2)
- Removed #1210 Dropped support for legacy Dropbox tokens, now using OAuth
- Removed #1141 Dropped
SECRET_KEYenv var, useDJANGO_SECRET_KEYinstead - Removed #1141 Dropped
DB_ENGINEenv var, useDJANGO_DATABASE_ENGINEinstead - Removed #1141 Dropped
DB_NAMEenv var, useDJANGO_DATABASE_NAMEinstead - Removed #1141 Dropped
DB_USERenv var, useDJANGO_DATABASE_USERinstead - Removed #1141 Dropped
DB_PASSenv var, useDJANGO_DATABASE_PASSWORDinstead - Removed #1141 Dropped
DB_HOSTenv var, useDJANGO_DATABASE_HOSTinstead - Removed #1141 Dropped
DB_PORTenv var, useDJANGO_DATABASE_PORTinstead - Removed #1141 Dropped
CONN_MAX_AGEenv var, useDJANGO_DATABASE_CONN_MAX_AGEinstead - Removed #1141 Dropped
TZenv var, useDJANGO_TIME_ZONEinstead - Removed #1141 Dropped
DSMR_USERenv var, useDSMRREADER_ADMIN_USERinstead - Removed #1141 Dropped
DSMR_PASSWORDenv var, useDSMRREADER_ADMIN_PASSWORDinstead - Removed Dropped
DATALOGGER_INPUT_METHODenv var, useDSMRREADER_REMOTE_DATALOGGER_INPUT_METHODinstead - Removed Dropped
DATALOGGER_SERIAL_PORTenv var, useDSMRREADER_REMOTE_DATALOGGER_SERIAL_PORTinstead - Removed Dropped
DATALOGGER_SERIAL_BAUDRATEenv var, useDSMRREADER_REMOTE_DATALOGGER_SERIAL_BAUDRATEinstead - Removed Dropped
DATALOGGER_API_HOSTSenv var, useDSMRREADER_REMOTE_DATALOGGER_API_HOSTSinstead - Removed Dropped
DATALOGGER_API_KEYSenv var, useDSMRREADER_REMOTE_DATALOGGER_API_KEYSinstead - Removed Dropped
DATALOGGER_TIMEOUTenv var, useDSMRREADER_REMOTE_DATALOGGER_TIMEOUTinstead - Removed Dropped
DATALOGGER_SLEEPenv var, useDSMRREADER_REMOTE_DATALOGGER_SLEEPinstead - Removed Dropped
DATALOGGER_MIN_SLEEP_FOR_RECONNECTenv var, useDSMRREADER_REMOTE_DATALOGGER_MIN_SLEEP_FOR_RECONNECTinstead
Changelogs of older versions can be found in the DSMR-reader GitHub repository.