From 3f9fbfab7239dc998ceb0bc93f5dc0967e2f7f23 Mon Sep 17 00:00:00 2001 From: Sven Date: Sun, 28 Dec 2025 16:16:56 +0100 Subject: [PATCH] =?UTF-8?q?Check,=20ob=20Prometheus=20Werte=20zur=C3=BCckg?= =?UTF-8?q?ibt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api_prometheus.py | 34 ++++++++++++++++++++++++++++++++++ ladeprotokoll.py | 31 ++++++++++++++++++++++--------- 2 files changed, 56 insertions(+), 9 deletions(-) create mode 100644 api_prometheus.py diff --git a/api_prometheus.py b/api_prometheus.py new file mode 100644 index 0000000..cde15f6 --- /dev/null +++ b/api_prometheus.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Sun Dec 28 08:01:22 2025 + +@author: sven +""" + +import requests + +def api_prom(datumzeit): + + response = ' ' + # date = input("Datum in dd.mm.YYYY") + # time = input("Zeit in HH:MM:SS") + # datetime = datum_umrechnen.umrechnen(date + ' ' + time) +# datetime = datum_umrechnen.umrechnen(datumzeit) + + + url = "http://192.168.178.183:9090/api/v1/query" + + querystring = {"query":"last_over_time(homeassistant_sensor_distance_km{entity=\"sensor.id_4_odometer\"}[24h])","time":datumzeit}#"2025-12-27T11:48:00Z"} + + # API rufen, Daten aus der API in data verfügbar machen. + response = requests.get(url, params=querystring) + data = response.json() + results = data.get("data", {}).get("result", []) + if not results: + value = 'n/a' + else: + timestamp, value_str = data["data"]["result"][0]["value"] + value = int(value_str) + + return value \ No newline at end of file diff --git a/ladeprotokoll.py b/ladeprotokoll.py index 0ff7f57..bb565f7 100644 --- a/ladeprotokoll.py +++ b/ladeprotokoll.py @@ -2,19 +2,25 @@ # -*- 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 -filename=input("Dateinamen angeben") - -if filename == "": - filename = '/Users/sven/Downloads/Eve.csv' - # Datei öffnen file = open(filename, 'r') @@ -43,18 +49,25 @@ for zeile in inhalt: kosten_gesamt = kosten_gesamt + kosten_zeile verbrauch_gesamt = verbrauch_gesamt + verbrauch # Kilometerstand ermitteln und anfügen - datum_zeit_alt = spalte[1].strip() + ' ' + spalte[2].strip() - datum_von = datum_umrechnen.umrechnen(datum_zeit_alt) - + 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] - + 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: