Skip to content

Latest commit

 

History

History
1745 lines (1121 loc) · 94.4 KB

changelog.rst

File metadata and controls

1745 lines (1121 loc) · 94.4 KB

Changelog

Contents


Hint

The releases in this series are currently supported and will receive new features and bug/security fixes until a new major series is released (give or take once a year).

  • Every minor release (e.g. v5.x -> v5.y) is usually compatible with any preceding release in the same series and should allow you to update easily. See :doc:`how to (minor) update in the same series</how-to/upgrading/upgrade>`.
  • Every new major series (e.g. v5.x -> v6.x) usually contains incompatible changes that require you to update with additional manual steps. Upgrading to the last release of a series (e.g. v4.20), should tell you where to find the upgrade steps required.
  • 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-redirect route for legacy upgrades.
  • Fixed [#1901] Naamgeving in configuratie van sorted graphs.
  • Fixed [#1945] Maak intervallen in retentie nauwkeuriger. - by RichieB2B
  • Changed [#1827] Update to python 3.11.2 - by goegol
  • Changed [#1861] Added undocumented env var for low level datalogger usage
  • Fixed [#1915] Pyyaml dependency unavailable.
  • Fixed [#1799] Bugfix in favor of v5.10 DSMR-parser update (only affected Fluvius).
  • Fixed [#1770] Disabled an automatic data migration in v5.10 until further notice.
  • Fixed [#1795] Bugfix in favor of v5.10 data migration checks.
  • 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_REMOTE_DATALOGGER_INPUT_METHOD is now restricted to: DEBUG, WARNING or ERROR
  • Changed [#1725] The value of DSMRREADER_LOGLEVEL is now restricted to: serial or ipv4
  • Changed [#1794] [#1764] Updated dsmr_parser (mostly) with latest version
  • 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_DAYS env var for overriding backup intervals
  • Deprecated [#1609] Prepared future removal of undocumented DSMRREADER_BACKUP_NAME_PREFIX env var for overriding backup name prefix

Attention!

The deprecated DSMRREADER_BACKUP_INTERVAL_DAYS and DSMRREADER_BACKUP_NAME_PREFIX env 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.

  • 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.

  • Added [#1685] New undocumented DSMRREADER_BACKUP_INTERVAL_DAYS for overriding backup intervals - ⚠️ Dropped again in future release
  • Changed [#1636] Entire codebase reformatted with Black
  • Changed [#1711] Gebruik temperature ipv groundtemperature uit Buienradar API - by @mind04
  • Added [#1635] Added peak consumption live graph
  • Changed [#1635] Reworked/improved peak consumption
  • Changed [#979] Deselect live electricity graph kWh totals by default
  • Fixed [#1677] Unable to configure dropbox backup - Dropbox SDK downgrade
  • Added [#979] Total kWh consumed/returned (diff) in live electricity graph
  • Changed [#1665] Python patch bump + optimizations - by @goegol
  • Changed [#1666] Tariefnamen rechttrekken
  • Changed [#1420] Allow graph 'stack' option for live graphs
  • Changed [#979] Reworked live graphs a bit, dropped inverse graphs too
  • Changed [#1390] Pie charts in Trends vervangen door bar/line chart
  • Changed [#1652] Energiecontracten makkelijker kunnen klonen
  • Changed [#1527] Totaalverbruik toevoegen bij "Vergelijk"
  • Changed [#1646] Added comment regarding MinderGas upload mechanism
  • Added [#1640] New API endpoint for fetching the energy supplier price (contracts) entered in DSMR-reader
  • Changed [#1640] Updated/improved API documentation
  • Changed [#1623] Improved Dropbox connection error handling a bit
  • 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

!DANGER!

⚠️ 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 INFO to ERROR
  • 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
.. seealso::

    ℹ️ This release of DSMR-reader requires you to **manually upgrade** from ``v4.x`` to ``v5.x``. See :doc:`the v5 upgrade guide </tutorial/upgrading/to-v5>` for more information.


Attention!

The following changes may affect your setup of DSMR-reader.

  • Added [#1314] Added support for Python 3.10
  • Added [#1380] Added support for InfluxDB 2.x

  • 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_TIMEOUT was changed from 3600 to 0, disabling MQTT cache by default
  • Changed [#1561] The default value of DSMRREADER_MQTT_MAX_MESSAGES_IN_QUEUE was changed from 500 to 5000
  • Changed [#1380] The dsmr_influxdb_export_all_readings its 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)

!DANGER!

⚠️ 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_KEY env var, use DJANGO_SECRET_KEY instead
  • Removed [#1141] Dropped DB_ENGINE env var, use DJANGO_DATABASE_ENGINE instead
  • Removed [#1141] Dropped DB_NAME env var, use DJANGO_DATABASE_NAME instead
  • Removed [#1141] Dropped DB_USER env var, use DJANGO_DATABASE_USER instead
  • Removed [#1141] Dropped DB_PASS env var, use DJANGO_DATABASE_PASSWORD instead
  • Removed [#1141] Dropped DB_HOST env var, use DJANGO_DATABASE_HOST instead
  • Removed [#1141] Dropped DB_PORT env var, use DJANGO_DATABASE_PORT instead
  • Removed [#1141] Dropped CONN_MAX_AGE env var, use DJANGO_DATABASE_CONN_MAX_AGE instead
  • Removed [#1141] Dropped TZ env var, use DJANGO_TIME_ZONE instead
  • Removed [#1141] Dropped DSMR_USER env var, use DSMRREADER_ADMIN_USER instead
  • Removed [#1141] Dropped DSMR_PASSWORD env var, use DSMRREADER_ADMIN_PASSWORD instead
  • Removed Dropped DATALOGGER_INPUT_METHOD env var, use DSMRREADER_REMOTE_DATALOGGER_INPUT_METHOD instead
  • Removed Dropped DATALOGGER_SERIAL_PORT env var, use DSMRREADER_REMOTE_DATALOGGER_SERIAL_PORT instead
  • Removed Dropped DATALOGGER_SERIAL_BAUDRATE env var, use DSMRREADER_REMOTE_DATALOGGER_SERIAL_BAUDRATE instead
  • Removed Dropped DATALOGGER_API_HOSTS env var, use DSMRREADER_REMOTE_DATALOGGER_API_HOSTS instead
  • Removed Dropped DATALOGGER_API_KEYS env var, use DSMRREADER_REMOTE_DATALOGGER_API_KEYS instead
  • Removed Dropped DATALOGGER_TIMEOUT env var, use DSMRREADER_REMOTE_DATALOGGER_TIMEOUT instead
  • Removed Dropped DATALOGGER_SLEEP env var, use DSMRREADER_REMOTE_DATALOGGER_SLEEP instead
  • Removed Dropped DATALOGGER_MIN_SLEEP_FOR_RECONNECT env var, use DSMRREADER_REMOTE_DATALOGGER_MIN_SLEEP_FOR_RECONNECT instead

!DANGER!

These are releases that are no longer supported. There will be no more features added or any bug/security issues fixed for these series!

You can still run these on your own risk, but you're recommended to upgrade (eventually) to the latest supported series of DSMR-reader. Especially if your installation happens to be reachable via the Internet.

Note

This is the last release of DSMR-reader v4.x. You can upgrade to v5.x for future support/features/rework.

  • Added Doc update, FAQ regarding "lagging statistics" - by @balk77 [#1530]
  • Fixed Periode energiecontracten mist laatste dag [#1534]
  • Fixed Geen grafiek "Verhouding tarieven" als 100% nachtverbruik [#1523]
  • Fixed Update checker kan niet overweg met release candidate tags [#1566]
  • Fixed Tijdverschil tussen Live en Archief voor gas [#1385]

Note

This is the last feature release of DSMR-reader v4.x. Upcoming new features will probably only be added to v5.x.

Warning

There has been a bug in the hour statistics since v2.10, offsetting the values by one hour. The bug will no longer occur for upcoming data when you've upgraded to v4.19, but existing data is still affected.

The latter may or may not be fixed in a future release with a one-time migration, depending on whether it can be done reliably, since the bug did not affect the day totals.

  • Fixed Backup wordt op verkeerde tijd weggeschreven [#1416]
  • Fixed Download links in API docs now respect STATIC_URL (or DJANGO_STATIC_URL) [#1401]
  • Fixed Database restore naar Influx: "partial write: field type conflict..." [#1400]
  • Fixed Gemiddelden gas in trends verdwijnen door kleine waarden [#1453]
  • Fixed Error: dsmr_stats_recalculate_prices: unsupported operand type(s) for +: 'decimal.Decimal' and 'NoneType' [#1449]
  • Misc Updated internal copy of dsmr_parser to v0.30 and reapplied DSMR-reader specific improvements/fixes.
  • Misc Added Python type hinting internally to ease development and help preventing type mix ups.

Warning

The InfluxDB fix above (#1400) is not backwards compatible with measurement data already queued for export in DSMR-reader during deploy/upgrade. You can view any measurement data queued in DSMR-reader by visiting the following URL in your installation: /admin/dsmr_influxdb/influxdbmeasurement/

The measurement data is usually only queued for a few seconds, until DSMR-reader exports it and then removes it from the export queue again. You'll likely only suffer a few seconds of data loss in InfluxDB, which should not affect any aggregations or dashboards at all.

  • Fixed CSV export kapot na importeren historische data [#1395]
  • Fixed Typo in uninstallation guide - by @nomnomnomhb [#1438]
  • Changed Add meter positions to CSV export [#1424]
  • Changed Add meter positions to Archive day view [#1424]

Note

The MQTT QoS level is no longer configurable. Level 2 is now always used, since this seems to work fine for any users that had issues recently.

  • Changed Hardcoded to MQTT QoS level 2 [#1393]
  • Fixed Removed print() statement that still lingered around after debugging and testing the previous release

Note

There was a bug in the previous v4.16.0 release when using MQTT with QoS level 0 (the former default). This should be fixed in this new release.

  • Fixed MQTT client keeps reconnecting when using QoS level 0 [#1383]
  • Fixed Automatically reconnect MQTT broker [#1384]

Note

The MQTT implementation has been reworked. If the connection between your MQTT broker and DSMR-reader is unstable, consider using MQTT Quality of Service (QoS) level 1 or 2 (in the broker settings). It will then instruct DSMR-reader to not discard outgoing queued MQTT messages anymore until the broker confirms to DSMR-reader receiving them.

Previous DSMR-reader versions (or when using QoS level 0) do not guarantee this and defaulted to (QoS) level 0, causing you to possibly lose MQTT updates when the connection is unstable.

  • Added New DSMRREADER_MQTT_MAX_MESSAGES_IN_QUEUE env var for MQTT max queue size [#1375]
  • Added New DSMRREADER_MQTT_MAX_CACHE_TIMEOUT env var for MQTT cache duration [#1096]
  • Changed MQTT now uses Quality of Service: Level 2 for new installations [#1375]
  • Fixed Laatste meting op basis van timestamp i.p.v. ID [#1376]
  • Fixed Properly implemented Quality of Service: Level 2 for MQTT messaging [#1375]
  • Fixed Security fix: Bump django from 3.1.7 to 3.1.8 - by dependabot [#1359]
  • Fixed Security fix: Bump django-debug-toolbar from 3.2 to 3.2.1 - by dependabot [#1367]
  • Fixed Kolom voor vaste kosten toevoegen aan CSV-export dagtotalen [#1364]
  • Fixed Voltage grafiek autoscaling in live grafieken [#1349]
  • Changed Upgrade to eCharts 5, reworked graphs and improved responsiveness support [#1331]
  • Changed Added check in post deploy script for collectstatic failure [#1336]
  • Changed Updated docs regarding HTTPS support [#1338]
  • Changed Updated docs regarding Dropbox - by F-erry [#1333]
  • Changed Updated docs regarding data import/export [#1316]
  • Changed Updated docs regarding partial backup import [#1347]
  • Fixed Foutieve vertaling op Statistieken-pagina [#1337]
  • Fixed Teruglevering verbergen op Statistieken-pagina [#1337]
  • Added Trends analyse over selecteerbare periodes [#1296]
  • Changed Rework documentation structure [#1315]
  • Changed Move PVOutput to scheduled process mechanism [#950]
  • Changed Move Dropbox to scheduled process mechanism [#949]
  • Changed GUI: Reworked table alignment for smaller device screens
  • Changed GUI: Display 2 -> 3 decimals where applicable
  • Changed GUI: Restyled "Compare" page colors and its difference column
  • Changed GUI: Many minor changes to layout and client side code
  • Fixed Dashboard responsiveness verbeteren op kleine schermen [#1320]
  • Fixed Verbruik en teruglevering tegelijkertijd tonen [#1324]
  • Added MQTT: Tussenstand huidige maand/jaar [#1291]
  • Added Meterstanden opnemen in dagstatistieken [#1301]
  • Added Na import historische gegevens de dagtotalen berekenen [#1302]
  • Changed Partial backups no longer run daily, but weekly instead [#1301]
  • Changed 6e getal achter de komma nodig bij energiecontracten [#1304]
  • Changed Deprecate Python 3.6 [#1314]
  • Changed Dashboard-total uitbreiden/verbeteren [#1160] / [#1291]
  • Fixed Schoonheidsfoutje op de statistieken pagina [#1305]
  • Fixed Bestaande superusers uitschakelen bij uitvoeren "dsmr_superuser" command [#1309]
  • Fixed E-mailverzending timeout [#1310]
  • Fixed Herstarten processen verduidelijken in docs [#1310]
  • Fixed Live header optimaliseren voor mobiele weergave [#1160]
  • Added Vaste dagkosten via MQTT naar HA [#1289]
  • Changed Samenvatting energiecontracten verbeteren [#1257]
  • Changed Auto-refresh Live-pagina elke 5 minuten [#1298]
  • Fixed Translations - by @denvers [#1260]
  • Fixed Bij update controleren op lokale openstaande wijzigingen [#1259]
  • Fixed Foutmelding na invullen foutieve datum in energiecontract [#1283]
  • Changed MinderGas API-wijziging [#1253]
  • Changed Dependency updates
  • Added Optie om datumtijd uit telegram te negeren [#1233]
  • Changed Clarify grouping options in configuration [#1249]
  • Changed Improve background information on configuration pages [#1250]
  • Changed Verduidelijken InfluxDB export voor terugwerkende kracht [#1055]
  • Fixed Melding over ontbreken recente "readings" lijkt niet juist [#1240]
  • Fixed Small typo in retention policy explanation - by @matgeroe [#1244]
  • Changed Remote datalogger serial settings - by @JoooostB [#1215]
  • Changed Various documentation updates
  • Changed Dependency updates
  • Added Monitoring toevoegen voor dagstatistieken [#1199]
  • Fixed Dagstatistieken worden niet gegenereerd na uitschakelen gas [#1197]
  • Changed Dependencies update
  • Added Dagtotalen via API aanmaken (t.b.v. importeren) [#1194]
  • Changed "Live graphs initial zoom" gebruiken bij gasgrafiek (DSMR-v5 meters) [#1181]
  • Changed More rework of documentation [#1190]
  • Changed Rework of documentation [#1190]
  • Changed Dependencies update

Note

In order to point your local installation to the new location on GitHub, execute the following commands:

sudo su - dsmr
git remote -v
git remote set-url origin https://github.com/dsmrreader/dsmr-reader.git
git remote -v

The last command should reflect the new URL's.

  • Changed DSMR-reader verplaatst op GitHub [#1174]
  • Added Instelling om waarschuwingen over data-grootte te negeren [#1173]
  • Added FreeBSD compatibility [#1175]
  • Added Envvar for DJANGO_STATIC_ROOT [#1175]
  • Deprecation Legacy envvars should be renamed [#1141]
  • Added Django settings instellen via envvars (DJANGO_STATIC_URL, DJANGO_FORCE_SCRIPT_NAME, DJANGO_USE_X_FORWARDED_HOST, DJANGO_USE_X_FORWARDED_PORT, DJANGO_X_FRAME_OPTIONS) [#1140]
  • Added Migratiestatus toevoegen aan dsmr-debuginfo [#1130]
  • Added Check op exit code migrate command bij deploy/update [#1127]
  • Added Allow other notification platforms using plugins [#1151]
  • Changed Versie-check toevoegen aan About [#1125]
  • Changed Status-pagina samenvoegen met About [#1125]
  • Changed Default color update for high tariff [#1142]
  • Changed Move export menu item to configuration page [#1143]
  • Changed Mogelijkheid voor negatieve waarde in Fixed daily cost [#1148]
  • Changed Standaardretentie (nieuwe installaties) verlaagd naar een maand [#1156]
  • Fixed Automatisch opnieuw verbinden bij MQTT-connectiefouten [#1091]
  • Fixed Change incorrect msgstr - by @gerard33 [#1144]
  • Fixed Add missing Telegram text parts to Admin: Notifications - by @gerard33 [#1146]
  • Fixed Dropbox access token max lengte vergroten [#1157]
  • Fixed Server error Energy Contracts [#1128]
  • Fixed 0017_energy_supplier_price_refactoring: psycopg2.IntegrityError: column "description" contains null values [#1126]
  • Fixed API docs broken [#1121]
  • Added Info-dump command voor debugging [#1104]
  • Added Optie om MQTT-integratie niet telkens uit te schakelen bij falende verbinding [#1091]
  • Added Vervanger voor Status endpoint (/api/v2/application/monitoring) [#1086]
  • Changed Overlappende energiecontracten mogelijk maken [#1101]
  • Changed Improved scheduled task indication on Status page [#1093]
  • Changed Simplify version check using GitHub tags API [#1097]
  • Fixed Datalogger altijd opnieuw laten verbinden [#1114]
  • Fixed Fout bij toevoegen/wijzigen energiecontract zonder einddatum [#1094]
  • Fixed Typefoutje [#1095]
  • Changed Django security update
  • Fixed Datalogger buffer-issues bij hoge sleep [#1107]
  • Added Volgorde grafieken zelf instellen [#903]
  • Added Ondersteuning voor vaste leveringskosten per dag [#1048]
  • Changed Improved docs/errors [#1089]
  • Fixed Edge-case telegram parse error door berichtlengte [#1090]
  • Added Add database downgrade steps to FAQ [#1070]
  • Added Bijhouden van veranderingen meterstatistieken [#920]
  • Changed Improved datalogger debug logging [#1067]
  • Changed Reworked datalogger connection [#1057]
  • Changed Upgrade to Django 3.1 (includes new sidebar in admin) [#1082]
  • Fixed Prevent overlapping dates in energy contracts [#1012]
  • Fixed Fixed infite signal looping [#1066]
  • Fixed Invalid baud rate for Fluvius (and Smarty) [#1067]
  • Added Builtin datalogger: Read telegrams from network socket [#1057]
  • Added Remote datalogger: Read telegrams from network socket [#1057]
  • Added Docs for data throughput troubleshooting [#1039]
  • Changed Remote datalogger: Changed config to env vars [#1057]
  • Changed Enabled retention by default for new installations [#1000]
  • Changed Disabled display of Buienradar API errors on dashboard [#1056]
  • Changed Improved handling of DSMRREADER_LOGLEVEL [#1050]
  • Changed Mandatory one-time update of datalogger sleep [#1061]
  • Changed Improved docs for Telegram app integration [#1063]
  • Changed Automatically restart datalogger on settings change [#1066]
  • Fixed Polyphase detection for Fluvius meters [#1052]
  • Removed Outdated or obsolete documentation [#1062]

Warning

This release of DSMR-reader requires you to manually upgrade from v3.x to v4.x. See :doc:`the v4 upgrade guide </tutorial/upgrading/to-v4>` for more information.

  • Added Support builtin password protection for all webviews [#1016]
  • Added Superuser provisioning for Docker (dsmr_superuser) [#1025]
  • Added InfluxDB integration [#857]
  • Added InfluxDB met terugwerkende kracht exporteren [#1055]
  • Changed Replaced settings.py config by (system) env vars [#1035]
  • Changed Pip install psycopg2 vervangen door OS package [#1013]
  • Changed Force SECRET_KEY generation [#1015]
  • Changed Refactor logging [#1050]
  • Changed Typo fixes - by olipayne [#1059]
  • Removed Dropped dsmr_mqtt command [#871] / [#1049]
  • Removed Dropped API support for Status (/api/v2/application/status) [#1024]

Warning

This is the last release of DSMR-reader v3.x. New features will only be added to v4.x. See the v4 upgrade guide for more information.

Warning

API endpoint deprecation

The /api/v2/application/status endpoint has been deprecated and will be removed in DSMR-reader v4.x,

  • [#1036] Deprecate API support for Status
  • [#1037] Laatste v3.x release
  • [#1034] Live weergave en live teller wijken af

  • [#1009] dsmr_stats_recalculate_prices neemt teruglevering niet mee
  • [#1017] Updated eCharts to v4.8
  • [#1023] Django security update
  • [#996] Refer HA add-on by Sander de Wildt
  • [#997] Zoeken naar specifieke dagen in admin
  • [#994] FAQ bijwerken voor meterwissel
  • [#1001] Fixed link in docs - by denniswo
  • [#1002] Improve datalogger installation docs
  • [#947] Standaard zoom live grafieken zelf kunnen instellen
  • [#947] Tijdsrange live grafieken zelf kunnen instellen
  • [#969] In- en uitknijpen van de grafieken werkt niet meer
  • [#966] Error in dsmr_backup_create --compact
  • [#934] Spelling - by Phyxion
  • [#940] Postgresql backup is ignoring port setting - by FrankTimmers
  • [#937] Dashboard €/uur houdt geen rekening met teruglevering
  • [#943] NonExistentTimeError for DST change in backup module
  • [#930] Soms afrondingsfout in grafieken-tooltip
  • [#954] Retention op 3 maanden kunnen zetten
  • [#955] Resetten van meter statistieken
  • [#953] Update to Django 3.0.5
  • [#919] Parsing telegram 3-fasige Fluvius meter faalt
  • [#921] Notificaties bekijken zonder login
  • [#774] Retentie omzetten naar geplande taak
  • [#565] Melding bij onvolledige vergelijking
  • [#923] Backups compressie level configureerbaar maken
  • [#924] Dagtotalen herberekenen op basis van uurtotalen
  • [#911] Weer inzoomen in gas/temperatuur-grafieken
  • [#912] Layout verbeteren
  • [#916] Gecombineerd verbruik teruggeven in API's "Retrieve today's consumption"
  • [#875] Actuele Amperes weergeven via MQTT
  • [#918] Django 3.0.4 update
  • [#894] Wijzigingen in datalogger terugdraaien
  • [#891] Overzichtelijke tussenpagina admin-interface
  • [#875] Actuele Amperes weergeven
  • [#901] Layout voor mobiele/kleine schermen verbeteren
  • [#904] Kleuren van grafieken omgewisseld
  • [#622] Hoogste/laagste dagtotalen inzien
  • [#902] Requirements update (February 2020)
  • [#879] Soms 100% CPU load datalogger
  • [#885] Herindeling dashboard
  • [#883] Show electricity usage as stacked bar chart
  • [#858] Tarieven zelf naamgeven
  • [#878] Huidig tarief aangeven op het dashboard
  • [#887] Django-colorfield update
  • [#860] Gasgrafiek handmatig instellen op staaf of lijn
  • [#862] Hogere backend process sleep toestaan
  • [#864] Requirements upgrade (2020-1)
  • [#847] Datalogger improvements
  • [#869] Sqlsequencereset versimpelen
  • [#870] Django security releases issued: 3.0.3
  • [#841] Dropbox: Foutafhandeling ongeldig token werkt niet meer
  • [#842] Gasgrafiek als staafdiagram
  • [#844] Gas optioneel kunnen groeperen per uur
  • [#854] Fixed doc version link on status page - by martijnb92
  • [#850] No matching distribution found for PyCRC==1.21
  • [#836] Correct background of inactive icons in Archive - by JeanMiK
  • [#828] Status page displays disabled capabilities
  • [#833] Mqtt verbindt niet opnieuw na herstart mosquitto
  • [#820] Meterstatistieken doorgeven via API
  • [#839] Convert API docs to OpenAPI format
  • [#839] Deprecated API endpoint /api/v2/application/status

Warning

Change in Python support

Support for Python 3.5 has been dropped due to the Django upgrade (#735).

  • [#735] Drop support for Python 3.5
  • [#734] Upgrade to Django 3.x
  • [#829] Several Dutch translation fixes - by mjanssens
  • [#823] Remove custom configuration in settings.py

Warning

This is the last release of DSMR-reader v2.x. New features will only be added to v3.x. See :doc:`the v3 upgrade guide </tutorial/upgrading/to-v3>` for more information.

  • [#825] Last v2.x release

Note

Some configuration options inside settings.py were relocated or removed from the application. See the docs for the changes.

  • [#822] Move custom configuration in settings.py to database
  • [#793] Alle meldingen in 1x sluiten
  • [#819] Add mail_from option and changed help text - by jbrunink
  • [#730] Standaard-range dashboard grafieken instelbaar maken
  • [#818] Dataverwerking loopt achter bij wisselen naar woning zonder gasmeter
  • [#780] REVERTED: Backup direct comprimeren
  • [#761] Home Assistant automatische integratie - by depl0y
  • [#784] Unpin requirements patches
  • [#780] Backup direct comprimeren
  • [#790] Updated graph library
  • [#794] Django security releases issued: 2.2.8
  • [#783] Gunicorn 20.x breaks use of docker Alpine Linux
  • [#782] Failed to export to MinderGas: Unexpected status code received
  • [#774] Generic performance improvements
  • [#776] Meerdere foutmeldingen Buienradar API
  • [#777] Requirements update (November 2019)
  • [#778] Gas-metingen werken niet bij meerdere apparaten op m-bus
  • [#766] (1/2) Uurstatistieken missen de laatste minuut of seconde - by JeanMiK
  • [#766] (2/2) Verkeerd aantal uren per dag bij wisseling zomertijd/wintertijd - by JeanMiK
  • [#765] Requirements update (November 2019)
  • [#750] Piek- en dalmetingen omgedraaid (Belgische slimme meter)
  • [#764] Dataverwerking loopt achter
  • [#755] Buienradar API bron/foutafhandeling verbeteren
  • [#752] Configurable plugins by environmental variables - by jorkzijlstra
  • [#743] Nginx: Sites-available gebruiken
  • [#757] Retentie op elk moment van de dag doorvoeren
  • [#733] Fixed weird field formatting for MQTT
  • [#736] Requirements upgrade (October 2019)
  • [#637] Live gas gebruik via MQTT
  • [#718] Improve docs for restoring backups
  • [#543] MQTT alleen starten wanneer nodig
  • [#723] MQTT-waardes cachen
  • [#581] Voltages via MQTT
  • [#584] Foutmeldingen tonen in interface
  • [#726] Requirements update (October 2019)
  • [#615] Dagstatistieken voor DSMR-v5 eerder genereren
  • [#717] Fixed the accuracy of rounding prices
  • [#518] Aflezen gegevens over voltages
  • [#722] Minimale backup (sinds v2.3.0) laat processen stoppen bij MySQL gebruikers
  • [#699] Hergenereren dagtotalen verbeteren
  • [#625] Meter statistieken weergeven wanneer leeg
  • [#710] Waarschuwingen risico's SD-kaartjes
  • [#712] Requirements update (September 2019)
  • [#711] Check backup exit codes
  • [#681] Refactoring backups: improved/simplified Dropbox sync, added extra minimal backup
  • [#638] Dropbox / back-up sync per direct kunnen resetten
  • [#682] Updated help text for tracking phases
  • [#696] API-docs broke after upgrade
  • [#697] Gas wordt niet verwerkt uit telegram bij digitale meters in België - by floyson-reference
  • [#693] Check backup creation path
  • [#702] MQTT-berichten stapelen zich op zonder MQTT-proces
  • [#679] Django 2.2.4 released
  • [#667] Add default value(s) for PORT - by xirixiz
  • [#672] Requirements update (July 2019)
  • [#674] Use CircleCI for tests
  • [#665] Django security releases issued: 2.2.3
  • [#660] Add a timeout to the datalogger web request - by Helmo
  • [#647] Fix for retroactivily inserting reading data - by drvdijk
  • [#646] Inladen oude gegevens gaat mis met live gas consumption
  • [#652] Django security releases issued: 2.2.2
  • [#635] Requirements update (May 2019)
  • [#518] Aflezen telegram in GUI
  • [#574] Add Telegram notification support - by thommy101
  • [#562] API voor live gas verbruik
  • [#555] Ondersteuning voor back-up per e-mail
  • [#613] Eenduidige tijdzones voor back-ups in Docker
  • [#606] Authenticatie API browser
  • [#620] CVE-2019-11324 (urllib3)
  • [#619] Add missing API calls in documentation

Warning

Change in Python support

  • The support for Python 3.4 has been dropped due to the Django upgrade (#512).
  • [#512] Drop support for Python 3.4
  • [#510] Django 2.1 released
  • [#616] Requirements update (April 2019)
  • [#596] Update django to 2.0.13 - by Timdebruijn
  • [#580] Django security releases issued: 2.0.10 - by mjanssens

Note

This will be the last release for a few months until spring 2019.

  • [#571] Trends klok omdraaien
  • [#570] Herinstallatie/verwijdering documenteren
  • [#442] Documentation: Development environment
  • Requirements update
  • [#557] Plugin/hook voor doorsturen telegrammen
  • [#560] Added boundaryGap to improve charts - by jbrunink / Tijs van Noije
  • [#561] Arrows on status page will now be hidden on small screens where they don't make sense anymore - by jbrunink
  • [#426] Temperatuurmetingen per uur inzichtelijk als CSV
  • [#558] Custom backup storage location
  • [#545] Requirements update (October 2018)
  • [#541] AmbiguousTimeError causes excessive notifications
  • [#535] "All time low" implementeren
  • [#536] Retentie-verbeteringen
  • [#537] Fix screenshot urls - by pyrocumulus
  • [#514] Fixed a Javascript bug in Archive and Compare pages, causing the selection to glitch
  • [#527] Docker DSMR Datalogger - by trizz
  • [#533] General English language fixes - by Oliver Payne
  • [#514] Convert Archive page to eCharts
  • [#514] Simplified Compare page
  • [#526] Logging refactoring (datalogger)
  • [#523] Automatische gas consumption dashboard
  • [#532] Update documentation (complete overhaul)

Warning

The default logging level of the backend has been lowered to reduce I/O. See the FAQ for more information.

  • [#494] Extend Usage statistics to include return
  • [#467] PVO uploadtijden in sync houden
  • [#513] Data being ignored in telegram grouping
  • [#514] Convert archive & comparison pages to eCharts
  • [#512] Drop support for Python 3.4
  • [#511] Add support for Python 3.7
  • [#526] Logging refactoring (backend)
  • [#515] Missing mqtt values
  • [#515] Missing mqtt values
  • [#515] Missing mqtt values

Warning

Support for MQTT has been completely reworked in this release and now requires a new dsmr_mqtt process in Supervisor.

  • [#509] MQTT refactoring
  • [#417] --- MQTT does connect/publish/disconnect for EACH message - every second
  • [#505] --- SSL/TLS support for MQTT
  • [#481] --- Memory Leak in dsmr_datalogger / MQTT
  • [#463] MQTT: Telegram als JSON, tijdzones
  • [#508] Trend-grafiek kan niet gegenereerd worden
  • [#292] Statuspagina: onderdelen 'backup' en 'mindergas upload' toevoegen
  • [#499] Upgrade Font Awesome to v5
  • [#506] Fasen-grafiek hangt op 'loading'
  • [#296] 3 fasen teruglevering
  • [#501] Lijn grafiek bij geen teruglevering
  • [#495] Update documentation screenshots
  • [#498] Frontend improvements
  • [#493] Requirements update (July 2018)
  • [#492] Fixed some issues with eCharts (improvements)
  • [#497] Kleinigheidje: missende vertalingen
  • [#489] eCharts improved graphs for data zooming/scrolling
  • [#434] Omit gas readings all together
  • [#264] Check Dropbox API token and display error messages in GUI
  • [#484] API call om huidige versie terug te geven
  • [#291] API option to get status info
  • [#485] Retrieve the current energycontract for the statistics page - helmo
  • [#486] Plugin documentation
  • [#487] Requirements update (July 2018)
  • [#390] Gas- en elektriciteitsverbruik vanaf start energie contract
  • [#482] Aantal items op X-as in dashboardgrafiek variabel maken
  • [#407] Plugin System (More than one pvoutput account)
  • [#462] Get live usage trough API
  • [#246] Add support for Pushover
  • [#479] Tijdsnotatie grafieken gelijktrekken
  • [#480] Requirements update (June 2018)
  • [#475] Notify my android service ended
  • [#471] Requirements update (May 2018)
  • [#458] DSMR v2.x parse-fout - by mrvanes
  • [#455] DOCS: Handleiding Nginx authenticatie uitbreiden - by FutureCow
  • [#461] Requirements update April 2018
  • Fixed some missing names on the contribution page in the DOCS
  • [#449] Meterstatistieken via MQTT beschikbaar
  • [#208] Notificatie bij uitblijven gegevens uit slimme meter
  • [#342] Backup to dropbox never finish (free plan no more space)
  • [#441] PVOutput exports schedulen naar ingestelde upload interval - by pyrocumulus
  • [#436] Update docs: authentication method for public webinterface
  • [#449] Meterstatistieken via MQTT beschikbaar
  • [#445] Upload/export to PVoutput doesn't work
  • [#432] [API] Gas cost missing at start of day
  • [#367] Dagverbruik en teruglevering via MQTT
  • [#447] Kosten via MQTT
  • [#431] Django security releases issued: 2.0.2
  • [#428] Django 2.0: Null characters are not allowed in telegram (esp8266)
  • [#203] One-click installer
  • [#396] Gecombineerd tarief tonen op 'Statistieken'-pagina
  • [#268] Data preservation/backups - by WatskeBart
  • [#425] Requests for donating a beer or coffee
  • [#427] Reconnect to postgresql
  • [#394] Django 2.0
  • [#72] Source data retention
  • [#414] add systemd service files - by meijjaa
  • [#405] More updates to the Dutch translation of the documentation - by lckarssen
  • [#404] Fix minor typo in Dutch translation - by lckarssen
  • [#398] iOS Web App: prevent same-window links from being opened externally - by Joris Vervuurt
  • [#399] Veel calls naar api.buienradar
  • [#406] Spelling correction trends page
  • [#413] Hoge CPU belasting op rpi 2 icm DSMR 5.0 meter
  • [#419] Requirements update (January 2018)
  • [#382] Archief klopt niet
  • [#385] Ververs dagverbruik op dashboard automatisch - by HugoDaBosss
  • [#387] There are too many unprocessed telegrams - by HugoDaBosss
  • [#368] Gebruik van os.environ.get - by ju5t
  • [#370] Pvoutput upload zonder teruglevering
  • [#371] fonts via https laden
  • [#378] Processing of telegrams stalled

Note

This releases turns telegram logging off by default.


  • [#363] Show electricity_merged in the Total row for current month - by helmo
  • [#305] Trend staafdiagrammen afgelopen week / afgelopen maand altijd gelijk
  • [#194] Add timestamp to highest and lowest Watt occurance
  • [#365] Turn telegram logging off by default
  • [#366] Restructure docs

Note

This release contains an update for the API framework, which has a fix for some timezone issues. You may experience different output regarding to datetime formatting when using the API.

  • [#9] Data export: PVOutput
  • [#163] Allow separate prices/costs for electricity returned
  • [#337] API mogelijkheid voor ophalen 'dashboard' waarden
  • [#284] Automatische backups geven alleen lege bestanden
  • [#279] Weather report with temperature '-' eventually results in stopped dsmr_backend
  • [#245] Grafiek gasverbruik doet wat vreemd na aantal uur geen nieuwe data
  • [#272] Dashboard - weergave huidig verbruik bij smalle weergave
  • [#273] Docker (by xirixiz) reference in docs
  • [#286] Na gebruik admin-pagina's geen (eenvoudige) mogelijkheid voor terugkeren naar de site
  • [#332] Launch full screen on iOS device when opening from homescreen
  • [#276] Display error compare page on mobile
  • [#288] Add info to FAQ
  • [#320] auto refresh op statussen op statuspagina
  • [#314] Add web-applicatie mogelijkheid ala pihole
  • [#358] Requirements update (September 2017)
  • [#270] Public Webinterface Warning (readthedocs.io)
  • [#231] Contributors update
  • [#300] Upgrade to Django 1.11 LTS
  • [#346] Defer statistics page XHR
  • [#339] Upgrade Dropbox-client to v8.x
  • [#141] Add MQTT support to publish readings
  • [#331] Requirements update (June 2016)
  • [#299] Support Python 3.6

Warning

Please note that the dsmr_datalogger.0007_dsmrreading_timestamp_index migration will take quite some time, as it adds an index on one of the largest database tables!

It takes around two minutes on a RaspberryPi 2 & 3 with > 4.3 million readings on PostgreSQL. Results may differ on slower RaspberryPi's or with MySQL.

Note

The API-docs for the new v2 API can be found here.

  • [#230] Support for exporting data via API
  • [#269] x-as gasgrafiek geeft rare waarden aan
  • [#303] Archive page's default day sorting
  • [#298] Update requirements (Django 1.10.7)

Warning

Support for MySQL has been deprecated since DSMR-reader v1.6 and will be discontinued completely in a later release. Please use a PostgreSQL database instead. Users already running MySQL will be supported in easily migrating to PostgreSQL in the future.

Note

Change in API: The telegram creation API now returns an HTTP 201 response when successful. An HTTP 200 was returned in former versions.

  • [#221] Support for DSMR-firmware v5.0.
  • [#237] Redesign: Status page.
  • [#249] Req: Add iOS icon for Bookmark.
  • [#232] Docs: Explain settings/options.
  • [#260] Add link to readthedocs in Django for Dropbox instructions.
  • [#211] API request should return HTTP 201 instead of HTTP 200.
  • [#191] Deprecate MySQL support.
  • [#251] Buienradar Uncaught exception.
  • [#257] Requirements update (February 2017).
  • [#274] Requirements update (March 2017).
  • Remove readonly restriction for editing statistics in admin interface (#242).
  • Improve datalogger for DSMR v5.0 (#212).
  • Fixed another bug in MinderGas API client implementation (#228).
  • Remove readonly restriction for editing statistics in admin interface (#242).
  • Improve datalogger for DSMR v5.0 (#212).
  • Fixed another bug in MinderGas API client implementation (#228).
  • Improve MinderGas API client implementation (#228).
  • Automatic refresh of dashboard charts (#210).
  • Mindergas.nl API: Tijdstip van verzending willekeurig maken (#204).
  • Extend API docs with additional example (#185).
  • Docs: How to restore backup (#190).
  • Log errors occured to file (#181).

Note

This patch contains no new features and only solves upgrading issues for some users.

  • Fix for issues #200 & #217, which is caused by omitting the switch to the VirtualEnv. This was not documented well enough in early versions of this project, causing failed upgrades.

Warning

Change in Python support

  • The support for Python 3.3 has been dropped due to the Django upgrade (#103).
  • There is experimental support for Python 3.6 and Python 3.7 (nightly) as the unittests are now built against those versions as well (#167).

Warning

Legacy warning

  • The migrations that were squashed together in (#31) have been removed. This will only affect you when you are currently still running a dsmrreader-version of before v0.13 (β).
  • If you are indeed still running < v0.13 (β), please upgrade to v1.4 first (!), followed by an upgrade to v1.5.
  • Verify telegrams' CRC (#188).
  • Display last 24 hours on dashboard (#164).
  • Status page visualisation (#172).
  • Store and display phases consumption (#161).
  • Weather graph not showing when no gas data is available (#170).
  • Upgrade to ChartJs 2.0 (#127).
  • Improve Statistics page performance (#173).
  • Version checker at github (#166).
  • Remove required login for dismissal of in-app notifications (#179).
  • Round numbers displayed in GUI to 2 decimals (#183).
  • Switch Nosetests to Pytest (+ pytest-cov) (#167).
  • PyLama code audit (+ pytest-cov) (#158).
  • Double upgrade of Django framework Django 1.8 -> Django 1.9 -> Django 1.10 (#103).
  • Force PYTHONUNBUFFERED for supervisor commands (#176).
  • Documentation updates for v1.5 (#171).
  • Requirements update for v1.5 (december 2016) (#182).
  • Improved backend process logging (#184).
  • Consumption chart hangs due to unique_key violation (#174).
  • NoReverseMatch at / Reverse for 'docs' (#175).

Warning

Change in Python support

  • Support for Python 3.5 has been added officially (#55).
  • Push notifications for Notify My Android / Prowl (iOS), written by Jeroen Peters (#152).
  • Support for both single and high/low tariff (#130).
  • Add new note from Dashboard has wrong time format (#159).
  • Display estimated price for current usage in Dashboard (#155).
  • Dropbox API v1 deprecated in June 2017 (#142).
  • Improve code coverage (#151).
  • Restyle configuration overview (#156).
  • Capability based push notifications (#165).
  • Requirements update (november 2016) (#150).
  • CSS large margin-bottom (#144).
  • Django security releases issued: 1.8.14 (#147).
  • Requirements update (August 2016) (#148).
  • Query performance improvements (#149).
  • API endpoint for datalogger (#140).
  • Colors for charts (#137).
  • Data export: Mindergas.nl (#10).
  • Requirement upgrade (#143).
  • Installation wizard for first time use (#139).
  • Energy supplier prices does not indicate tariff type (Django admin) (#126).
  • Requirements update (#128).
  • Force backup (#123).
  • Update clean-install.md (#131).
  • Improve data export field names (#132).
  • Display average temperature in archive (#122).
  • Pie charts on trends page overlap their canvas (#136).
  • 'Slumber' consumption (#115).
  • Show lowest & highest Watt peaks (#138).
  • Allow day & hour statistics reset due to changing energy prices (#95).
  • Trends page giving errors (when lacking data) (#125).
  • Improve readme (#124).
  • Autorefresh dashboard (#117).
  • Improve line graphs' visibility (#111).
  • Easily add notes (#110).
  • Export data points in CSV format (#2).
  • Allow day/month/year comparison (#94).
  • Docs: Add FAQ and generic application info (#113).
  • Support for Iskra meter (DSMR 2.x) (#120).
  • Update licence to OSI compatible one (#119).
  • First official stable release.

Note

All previous beta releases/changes have been combined to a single list below.

  • Move documentation to wiki or RTD (#90).
  • Translate README to Dutch (#16).
  • Delete (recent) history page (#112).
  • Display most recent temperature in dashboard (#114).
  • Upgrade Django to 1.8.12 (#118).
  • Redesign trends page (#97).
  • Support for summer time (#105).
  • Support for Daylight Saving Time (DST) transition (#104).
  • Add (error) hints to status page (#106).
  • Keep track of version (#108).
  • Django 1.8.11 released (#82).
  • Prevent tests from failing due to moment of execution (#88).
  • Statistics page meter positions are broken (#93).
  • Archive only shows graph untill 23:00 (11 pm) (#77).
  • Trends page crashes due to nullable fields average (#100).
  • Trends: Plot peak and off-peak relative to each other (#99).
  • Monitor requirements with requires.io (#101).
  • Terminology (#41).
  • Obsolete signals in dsmr_consumption (#63).
  • Individual app testing coverage (#64).
  • Support for extra devices on other M-bus (0-n:24.1) (#92).
  • Separate post-deployment commands (#102).
  • Show exceptions in production (webinterface) (#87).
  • Keep Supervisor processes running (#79).
  • Hourly stats of 22:00:00+00 every day lack gas (#78).
  • Test Travis-CI with MySQL + MariaDB + PostgreSQL (#54).
  • PostgreSQL tests + nosetests + coverage failure: unrecognized configuration parameter "foreign_key_checks" (#62).
  • Performance check (#83).
  • Allow month & year archive (#66).
  • Graphs keep increasing height on tablet (#89).
  • Delete StatsSettings(.track) settings model (#71).
  • Drop deprecated commands (#22).
  • Datalogger doesn't work properly with DSMR 4.2 (KAIFA-METER) (#73).
  • Dashboard month statistics costs does not add up (#75).
  • Log unhandled exceptions and errors (#65).
  • Datalogger crashes with IntegrityError because 'timestamp' is null (#74).
  • Trends are always shown in UTC (#76).
  • Squash migrations (#31).
  • Display 'electricity returned' graph in dashboard (#81).
  • Optional gas (and electricity returned) capabilities tracking (#70).
  • Add 'electricity returned' to trends page (#84).
  • Archive: View past days details (#61).
  • Dashboard: Consumption total for current month (#60).
  • Check whether gas readings are optional (#34).
  • Django security releases issued: 1.8.10 (#68).
  • Notes display in archive (#69).
  • Status page/alerts when features are disabled/unavailable (#45).
  • Integrate Travis CI (#48).
  • Testing coverage (#38).
  • Implement automatic backups & Dropbox cloud storage (#44).
  • Link code coverage service to repository (#56).
  • Explore timezone.localtime() as replacement for datetime.astimezone() (#50).
  • Align GasConsumption.read_at to represent the start of hour (#40).
  • Cleanup unused static files (#47).
  • Investigated mysql_tzinfo_to_sql — Load the Time Zone Tables (#35).
  • Make additional DSMR data optional (#46).
  • Localize graph x-axis (#42).
  • Added graph formatting string to gettext file (#42).
  • Different colors for peak & off-peak electricity (#52).
  • Admin: Note widget (#51).
  • Allow GUI to run without data (#26).
  • Moved project to GitHub (#28).
  • Added stdout to dsmr_backend to reflect progress.
  • Restore note usage in GUI (#39).
  • Store daily, weekly, monthly and yearly statistics (#3).
  • Improved Recent History page performance a bit. (as result of #3)
  • Updates ChartJS library tot 1.1, disposing django-chartjs plugin. Labels finally work! (as result of #3)
  • Added trends page. (as result of #3)
  • Recent history setting: set range (#29).
  • Mock required for test: dsmr_weather.test_weather_tracking (#32).
  • Massive refactoring: Separating apps & using signals (#19).
  • README update: Exit character for cu (#27, by Jeroen Peters).
  • Fixed untranslated strings in admin interface.
  • Upgraded Django to 1.8.9.