- Frequently Asked Questions (FAQ)
- How can I update my application?
- Dropbox: Automated backup sync
- Mindergas.nl: Automated gas meter position export
- PVOutput.org: Automated electricity consumption export
- Usage notification: Daily usage statistics on your smartphone
- I only pay for a single electricity tariff but I see two!
- I want to see the load of each electricity phase as well
- Recalculate prices retroactively
- I’m not seeing any gas readings
- How do I restore a database backup?
- How do I enable timezone support for MySQL?
- How do I retain MQTT support when upgrading to v1.23.0 or higher?
- Feature/bug report
The version you are running is always based on the ‘latest’ version of the application, called the master branch.
Every once in a while there may be updates. Since
v1.5 you can also easily check for updates by using the application’s Status page.
Before updating, please make sure you have a recent backup of your database! More information about backups can be found here.
You can update your application to the latest version by executing deploy.sh, located in the root of the project.
Make sure to execute it while logged in as the
sudo su - dsmr ./deploy.sh
It will make sure to check, fetch and apply any changes released. Summary of deployment script steps:
- GIT pull (codebase update).
- PIP update requirements.
- Apply any database migrations.
- Sync static files to Nginx folder.
- Reload Gunicorn application server (web interface) and backend processes (such as the datalogger).
- Clear any caches.
DSMR (and your energy supplier) always reads both high and low tariff from your meter. It’s possible however that you are only paying for a single tariff. In that case your energy supplier will simply merge both high and low tariffs to make it look like you have a single one.
This application displays separate tariffs by default, but supports merging them to a single one as well.
Just make sure that you apply the same price to both electricity 1 and 2 and enable the option
Merge electricity tariffs in the frontend configuration.
DSMR-reader v1.5 it’s possible to track your
P+ (consumption) phases as well. You will need to enable this in the
There is a setting called
Track electricity phases. When active, this will log the current usage of those phases and plot these on the Dashboard page.
Please keep in mind:
- This will not work retroactively. The datalogger always discards all data not used.
- This feature will only work when your smart meter is connected to three phases. Even when having the setting enabled.
- When having tracking phases enabled, you should see a button in the Dashboard called
Display electricity phases. Click on it to show the graph.
You should see something similar to:
I’ve adjusted my energy prices but there are no changes! How can I regenerate them with my new prices?
Statistics for each day are generated once, the day after. However, you can flush your statistics by executing:
./manage.py dsmr_backend_delete_aggregated_data --statistics
The application will delete all statistics and (slowly) regenerate them in the background. Just make sure the source data is still there.
Please make sure that your meter supports reading gas consumption and that you’ve waited for a few hours for any graphs to render. The gas meter positions are only be updated once per hour (for DSMR v4). The Status page will give you insight in this as well.
Restoring a backup will replace any existing data stored in the database and is irreversible!
Do you need a complete reinstall of DSMR-reader as well? Then please follow the install guide and restore the database backup using the notes at the end of chapter 1.
Only want to restore the database?
- This asumes you are still running the same application version as the backup was created in.
- Stop the application first with
sudo supervisorctl stop all. This will disconnect it from the database as well.
- Importing the data could take a long time. It took MySQL 15 minutes to import nearly 3 million readings, from a compressed backup, on a RaspberryPi 3.
For PostgreSQL restores:
sudo sudo -u postgres dropdb dsmrreader sudo sudo -u postgres createdb -O dsmrreader dsmrreader # Either restore an uncompressed (.sql) backup: sudo sudo -u postgres psql dsmrreader -f <PATH-TO-POSTGRESQL-BACKUP.sql> # OR # Restore a compressed (.gz) backup with: zcat <PATH-TO-POSTGRESQL-BACKUP.sql.gz> | sudo sudo -u postgres psql dsmrreader
For MySQL restores:
sudo mysqladmin create dsmrreader sudo mysqladmin drop dsmrreader # Either restore an uncompressed (.sql) backup: cat <PATH-TO-MYSQL-BACKUP.sql.gz> | sudo mysql --defaults-file=/etc/mysql/debian.cnf -D dsmrreader # OR # Restore a compressed (.gz) backup with: zcat <PATH-TO-MYSQL-BACKUP.sql.gz> | sudo mysql --defaults-file=/etc/mysql/debian.cnf -D dsmrreader
- Start the application again with
sudo supervisorctl start all.
In case the version differs, you can try forcing a deployment reload by:
sudo su - dsmr and then executing
Check these docs for more information about how to enable timezone support on MySQL. On recent versions it should be as simple as executing the following command as root/sudo user:
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
v1.23.0 DSMR-reader requires a dedicated process for processing MQTT messages (
Fresh installations automatically include the
dsmr_mqtt process. Existing installations however, should add
dsmr_mqtt manually. Instructions:
Please upgrade to
v1.23.0or higher first.
Now execute the following commands as root/sudo-user:
# NOTE: This will overwrite /etc/supervisor/conf.d/dsmr-reader.conf sudo cp /home/dsmr/dsmr-reader/dsmrreader/provisioning/supervisor/dsmr-reader.conf /etc/supervisor/conf.d/ sudo supervisorctl reread sudo supervisorctl update