Horologium est un simple outil de bibliothèque et de ligne de commande qui aide à suivre la consommation et les coûts. Actuellement, il aborde principalement les consommables facturés par des mètres, par exemple la puissance, l'eau,….
L'application de ligne de commande est un outil simple pour obtenir un aperçu des coûts et de la consommation au cours des derniers mois:
$ > horologium -lastMonths 6 powerConsumption.yml
| MONTH | YEAR | CONSUMPTION | COSTS |
| ----------- | ------ | ------------- | --------- |
| January | 2020 | 22.11 | 1987.52 |
| February | | 33.59 | 2292.43 |
| March | | 48.41 | 2686.05 |
| April | | 44.59 | 2584.59 |
| May | | 48.61 | 2691.36 |
| June | | 66.58 | 3168.64 |
| July | | 0.00 | 1400.28 |
L'exemple ci-dessus a été exécuté en juillet 2020, ainsi les six derniers mois sont évalués.
Les lectures du compteur et les plans de prix doivent être donnés dans un fichier YAML ayant le format suivant:
name : " A pseudo power consumption for testing "
consumptionFormat : " %.2f " # Optional, defaults to %.2f
currencyFormat : " %.2f " # Optional, defaults to %.2f
plans :
- {name: 2018, basePrice: 1241.34, unitPrice: 26.32, validFrom: "2018-01-01", validTo: "2018-01-01"}
- {name: 2019, basePrice: 1341.12, unitPrice: 27.28, validFrom: "2019-01-01", validTo: "2019-01-01"}
- {name: 2020, basePrice: 1400.28, unitPrice: 26.56, validFrom: "2020-01-01", validTo: "2020-01-01"}
readings :
- {date: 2019-12-01, count: 1104.25}
- {date: 2020-01-01, count: 1201.23}
- {date: 2020-02-01, count: 1223.34}
- {date: 2020-03-01, count: 1256.93}
- {date: 2020-04-01, count: 1305.34}
- {date: 2020-05-01, count: 1349.93}
- {date: 2020-06-01, count: 1398.54}
- {date: 2020-07-01, count: 1465.12}En règle générale, chaque mois, il y a une lecture de compteur ajouté au fichier (avec un éditeur externe).
Cette application interprète les dates comme étant au début de la journée. Par conséquent, la gamme 2020-01-04 à 2020-01-06 s'étend sur 48 heures, du 4 janvier 0h00 au janvier, le 5h 24h00 ou le 6 janvier 0h00.
Le code peut également être utilisé dans un autre programme GO en tant que bibliothèque. Les fonctions exportées sont entièrement documentées.
Il s'agit d'un projet de passe-temps. Il y a certaines choses que j'aime améliorer et ajouter, je ne sais pas quand ni si cela se produira.