Bonjour,
je n’ai pas eu de réponse mais j’ai trouvé une solution manuelle mais fonctionnelle et donc je vais vous la proposer en attente de mieux.
1 : télécharger le fichier fourni par le site gazpasserelle. Il me semble être complet mais vérifiez bien la première date au cas où, il faudra peut être le cumuler pour obtenir un fichier complet.
Pour cela, allez sur gazpasserelle puis téléchargez votre historique
2 : supprimer les lignes en bas de fichier et mettre une entête adaptée
On supprime les lignes en trop à la fin et je mets cette entête pour la suite du procédé
Date relevé;Ind;Type relevé;Consommation en m3;Coefficient de conversion;Consommation en kWh
3 : Calculer une moyenne d’utilisation par heure.
Le fichier contient les valeurs par jour, on va diviser cela par heure pour bien remplir la base. Ce n’est pas forcément juste mais cela permet de faire des stats par jour ou d’afficher les données dans l’onglet Energie.
Pour cela j’utilise un script Python dans Repl.it C’est basique, vite fait mais cela fonctionne et donne un fichier résultat.
Le code vite fait :
import csv
import pandas as pd
from datetime import datetime, timedelta
# Step 1: Specify the path to your CSV file
file_path = 'Relevés_journaliers.csv'
db = pd.read_csv(file_path,delimiter=";")
print(db)
print(db.head())
compteur = -1
sensorname = 'sensor:gas_passerelle'
db_finale = pd.DataFrame(columns=['statistic_id', 'unit', 'start','state','sum'])
# boucle sur les lignes de db
for index, row in db.iterrows():
if compteur == -1:
compteur = row['Ind'] * 11
print(compteur)
date_debut = datetime.strptime(row['Date relevé'].strip(), "%d/%m/%Y")
date_debut = date_debut.replace(hour=0)
#print(date_debut)
conso_jour = row['Consommation en m3'] * 11
print(f"Conso du jour : {conso_jour}")
heures_du_jour = [date_debut + timedelta(hours=i) for i in range(24)]
# Ajouter les lignes pour chaque heure dans le DataFrame
for heure in heures_du_jour:
morceau = conso_jour / 24
start_format = heure.strftime("%d.%m.%Y %H:%M")
nouvelle_ligne = {'statistic_id': sensorname, 'unit': 'kWh', 'start': start_format, 'state': round(compteur + morceau,2), 'sum': round(compteur + morceau,2)}
compteur += morceau
db_finale.loc[len(db_finale)] = nouvelle_ligne
# export db_finale to csv
db_finale.to_csv('db_finale.csv', index=False)
4 - Une fois le fichier obtenu encore faut il l’introduire dans la base.
J’utilise pour cela le service : import_statistics: import_from_file
Je dépose le fichier obtenu en python sur le serveur (avec file editor par exemple)
Je vais dans Développement / Services avec les paramètres ci dessous
Et c’est chargé !
Je peux ensuite voir mon gaz dans l’onglet Energie
Ou faire des stats sur l’utilisation du gaz en prenant sensor.gas_passerelle
En espérant aider d’autres personnes, n’hésitez pas à me poser des questions si besoin