Files
2025-12-29 14:19:48 +01:00

99 lines
2.7 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import api_call
import api_prometheus
import os
import datum_umrechnen
# Prompt user for CSV file location
filename = input("Please enter the path to your CSV file: ")
if filename == '':
filename = '/Users/sven/Downloads/Eve.csv'
if not os.path.exists(filename):
print("Error: File does not exist.")
exit(1)
kosten_pro_kwh = input("Kosten pro kW/h in Euro (z.B. 0.31)")
# kosten_pro_kwh = input('Kosten pro kWh (0.31) ')
if kosten_pro_kwh == '':
kosten_pro_kwh = 0.31
# Datei öffnen
file = open(filename, 'r')
# Zeilenweise einlesen
#inhalt = file.read().splitlines()
inhalt = file.readlines()
file.close()
# Zeilenweise abloopen
counter = 0
kosten_gesamt = 0
verbrauch_gesamt = 0
for zeile in inhalt:
spalte = zeile.strip().split(',')
if counter > 0:
rfidkarte = spalte[0].strip()
if rfidkarte != '04D56A2A577484':
rfidkarte = '04D56A2A577484'
# Kosten pro Ladevorgang ermitteln
verbrauch = spalte[4].strip()
verbrauch = verbrauch.replace('kWh','')
verbrauch = float(verbrauch)
kosten_zeile = verbrauch * kosten_pro_kwh
kosten_gesamt = kosten_gesamt + kosten_zeile
verbrauch_gesamt = verbrauch_gesamt + verbrauch
# Kilometerstand ermitteln und anfügen
datum_von = datum_umrechnen.umrechnen(spalte[1].strip() + ' ' + spalte[2].strip())
# Homeassistant API rufen
api_response = api_call.send_request(datum_von)
apitext = api_response.text
position = apitext.find("state")
kilometer = apitext[position+8:position+13]
# Prometheus API rufen
if kilometer == '':
kilometer = api_prometheus.api_prom(datum_von)
if kilometer == '':
kilometer = "n/a"
kosten_zeile = str(kosten_zeile)
kilometer = str(kilometer)
# Formatierungen anpassen
zeile = zeile + ', ' + kilometer + ' , ' + kosten_zeile
zeile = zeile.replace(' ','')
zeile = zeile.replace('kWh', ' kWh')
zeile = zeile.replace(',',', ')
zeile = zeile.replace('Min.','Min. ')
print(zeile)
counter = counter + 1
else:
zeile = zeile + ', ' + "Kilometerstand, " + "Kosten"
print(zeile)
print(zeile)
counter = counter + 1
continue
print(" ")
# Fusszeile mit Gesamtkosten und Gesamtverbrauch
print('Kosten Gesamt: ', kosten_gesamt)
strkostenkwh = str(kosten_pro_kwh)
print("Kosten pro kWh: " + strkostenkwh + "")
verbrauch_gesamt = str(verbrauch_gesamt)
try:
formatted = "{:.3f}".format(float(verbrauch_gesamt)).replace('.', ',')
except:
formatted = verbrauch_gesamt
print("Verbrauch Gesamt: " + formatted)