O Horologiium é uma biblioteca GO simples e uma ferramenta de linha de comando que ajuda a acompanhar o consumo e os custos. Atualmente, ele aborda principalmente os consumíveis faturados por medidores, por exemplo, poder, água,….
O aplicativo de linha de comando é uma ferramenta simples para obter uma visão geral sobre os custos e o consumo nos últimos meses:
$ > 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 |
O exemplo acima foi executado em julho de 2020, portanto, os últimos seis meses são avaliados.
As leituras e planos de preços do medidor devem ser fornecidos em um arquivo YAML com o seguinte formato:
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}Normalmente, todo mês há uma leitura de medidor adicionada ao arquivo (com um editor externo).
Este aplicativo interpreta as datas como estando no início do dia. Portanto, o intervalo 2020-01-04 a 2020-01-06 se vira 48 horas, de 4 de janeiro 0:00 a janeiro, 5:00 ou janeiro, 6º 0:00.
O código também pode ser usado em outro programa GO como biblioteca. As funções exportadas estão totalmente documentadas.
Este é um projeto de hobby meu. Há algumas coisas que eu gosto de melhorar e adicionar, não sei quando ou se isso acontecerá.