Ce projet permet de visualiser la consommation énergétique (électricité et gaz) d'une habitation.
- Installer Docker
- Obtenir un jeton d'accès via Conso API. Ce service est rendu possible via le projet @bokub/linky
- Copier le fichier
.maConso.env.dist
vers.maConso.env
cp .maConso.env.dist .maConso.env
- Editer
.maConso.env
avec vos identifiants ENEDIS et/ou GRDF
nano .maConso.env
- Lancer les conteneurs
docker compose up --build -d
- Se rendre sur l'interface Grafana http://localhost:3000/, les identifiants par défauts sont admin/admin. Il vous sera normalement demandé de définir un nouveau mot de passe.
Un tableau de bord préconfiguré est déjà disponible, mais vous pouvez en créer un autre à partir des données collectées dans la base de données.
Les enregistrements incluent un tag contenant le numéro du compteur (PRM pour Linky et PCE pour Gazpar), ainsi si vous possédez un accès à plusieurs compteurs, vous pouvez filtrer les données pour ne sélectionner qu'un compteur:
from(bucket: "maconso")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "ENEDIS__ENERGIE_SOUTIRAGE")
|> filter(fn: (r) => r["PRM"] == "06587593521409")
|> filter(fn: (r) => r["_field"] == "kWh")
from(bucket: "maconso")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "ENEDIS__ENERGIE_SOUTIRAGE")
|> filter(fn: (r) => r["_field"] == "kWh")
from(bucket: "maconso")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "ENEDIS__PMAX_SOUTIRAGE")
|> filter(fn: (r) => r["_field"] == "kVA")
from(bucket: "maconso")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "ENEDIS__CDC_SOUTIRAGE")
|> filter(fn: (r) => r["_field"] == "kW")
from(bucket: "maconso")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "ENEDIS__ENERGIE_PRODUCTION")
|> filter(fn: (r) => r["_field"] == "kWh")
from(bucket: "maconso")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "ENEDIS__CDC_PRODUCTION")
|> filter(fn: (r) => r["_field"] == "kW")
from(bucket: "maconso")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "GRDF__CONSOMMATION")
|> filter(fn: (r) => r["_field"] == "kWh")
from(bucket: "maconso")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "GRDF__CONSOMMATION")
|> filter(fn: (r) => r["_field"] == "m3")