Check, ob Prometheus Werte zurückgibt

This commit is contained in:
2025-12-28 16:16:56 +01:00
parent ecda8b2300
commit 3f9fbfab72
2 changed files with 56 additions and 9 deletions
+34
View File
@@ -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
+22 -9
View File
@@ -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: