WallpaperMachine
The wallpapers you love. A new home on your Mac.
Relevez vos compteurs d'eau, de gaz, d'électricité et de mazout (fioul), et prévoyez votre consommation à climat égal. Gratuit, sans compte, vos données restent sur votre téléphone.
Translation pending
LifestyleKotlinGitHub @doolieSoftOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Android app to track water, gas, electricity, heating oil and heat meters: readings, charts and yearly forecasts adjusted for degree days. Free and open source, no account, no ads, your data stays on your phone. EN · FR · NL · DE
Loading the full README.
Read the full README ↗English · Français
Android app for tracking water, gas, electricity and heating oil meters. It gives you charts, a forecast for the year and a year-on-year comparison adjusted for degree days, so that a harsh winter isn't mistaken for consumption creeping up.
Free, with no account and no ads: all your data stays on your phone. The only thing fetched from the internet is the weather, from Open-Meteo.
Project page · ⬇ Latest release · ♥ Donate
| Where | What |
|---|---|
| Google Play (closed test) | join the testers group, then accept the test and install the app from the Play Store with the same Google account. Automatic updates; your help is needed to open the public release |
| F-Droid | automatic updates, no proprietary components: you type the reading in by hand |
suivi-compteurs.apk | reads the meter from a photo (Google ML Kit, on the phone): choose this one if unsure |
suivi-compteurs-libre.apk | same app as on F-Droid, without photo reading: no proprietary components, you type the reading in by hand |
To install an APK, open it from your phone's file manager and allow the installation when Android asks. Since version 1.6.2, the F-Droid build and these APKs are signed with the same key, so you can switch between them. The Google Play version is signed differently: switching to or from it means uninstalling, so export your data to Excel first. The same applies once if you installed an F-Droid version older than 1.6.2.
The calculation engine is in
android/app/src/main/java/be/suivicompteurs/app/moteur/,
in pure Kotlin with no Android dependency.
A reading records the number on the meter, not a consumption. Two readings may
be seven days apart or three hundred. To compare years, each difference between
readings is therefore spread over the days it covers (Consommation.kt).
Spreading it evenly is fine for water. For gas it's wrong: 300 m³ used between October and March doesn't fall evenly across those months, it follows the cold.
So the app fits a straight line, meter by meter:
consumption for the day = base + k × degree days for the day
base covers what doesn't depend on the weather: hot water, cooking,
standby power.k is the sensitivity to cold, in m³ (or kWh) per degree day. In essence,
it's the thermal cost of the building.The fit uses least squares weighted by the length of each period: a 300-day period counts for more than a 7-day one. It's kept only if R² ≥ 0.5; otherwise the app falls back to an even spread and says so.
The model is fitted only for gas, heating oil and electricity. Water consumption follows how the home is occupied, not the weather: an apparent correlation over a few years would be a coincidence, and "correcting" for it would distort everything.
Once k is known, each year is brought back to an average winter:
adjusted consumption = measured consumption + k × (normal DD − actual DD)
A colder-than-normal year therefore has its consumption revised downwards, and vice versa. This adjusted figure is the one to compare from year to year. Normal DD is the ten-year average for each calendar day.
What was actually measured is never rewritten: only the days after the latest
reading are estimated (Previsions.kt).
With an annual reading, the year runs from one anniversary of that reading to the next. The gap between the actual reading date and that boundary is estimated, so years stay comparable even if the reading slips by a few days.
This is the beginning of the README. Read the rest at the original. Read the full README ↗