Check, ob Prometheus Werte zurückgibt
This commit is contained in:
@@ -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
@@ -2,19 +2,25 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import api_call
|
import api_call
|
||||||
|
import api_prometheus
|
||||||
|
import os
|
||||||
import datum_umrechnen
|
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 kW/h in Euro (z.B. 0.31)")
|
||||||
# kosten_pro_kwh = input('Kosten pro kWh (0.31) ')
|
# kosten_pro_kwh = input('Kosten pro kWh (0.31) ')
|
||||||
if kosten_pro_kwh == '':
|
if kosten_pro_kwh == '':
|
||||||
kosten_pro_kwh = 0.31
|
kosten_pro_kwh = 0.31
|
||||||
|
|
||||||
filename=input("Dateinamen angeben")
|
|
||||||
|
|
||||||
if filename == "":
|
|
||||||
filename = '/Users/sven/Downloads/Eve.csv'
|
|
||||||
|
|
||||||
# Datei öffnen
|
# Datei öffnen
|
||||||
file = open(filename, 'r')
|
file = open(filename, 'r')
|
||||||
|
|
||||||
@@ -43,18 +49,25 @@ for zeile in inhalt:
|
|||||||
kosten_gesamt = kosten_gesamt + kosten_zeile
|
kosten_gesamt = kosten_gesamt + kosten_zeile
|
||||||
verbrauch_gesamt = verbrauch_gesamt + verbrauch
|
verbrauch_gesamt = verbrauch_gesamt + verbrauch
|
||||||
# Kilometerstand ermitteln und anfügen
|
# Kilometerstand ermitteln und anfügen
|
||||||
datum_zeit_alt = spalte[1].strip() + ' ' + spalte[2].strip()
|
datum_von = datum_umrechnen.umrechnen(spalte[1].strip() + ' ' + spalte[2].strip())
|
||||||
datum_von = datum_umrechnen.umrechnen(datum_zeit_alt)
|
|
||||||
|
|
||||||
# Homeassistant API rufen
|
# Homeassistant API rufen
|
||||||
api_response = api_call.send_request(datum_von)
|
api_response = api_call.send_request(datum_von)
|
||||||
apitext = api_response.text
|
apitext = api_response.text
|
||||||
position = apitext.find("state")
|
position = apitext.find("state")
|
||||||
kilometer = apitext[position+8:position+13]
|
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)
|
kosten_zeile = str(kosten_zeile)
|
||||||
kilometer = str(kilometer)
|
kilometer = str(kilometer)
|
||||||
|
|
||||||
|
# Formatierungen anpassen
|
||||||
zeile = zeile + ', ' + kilometer + ' , ' + kosten_zeile
|
zeile = zeile + ', ' + kilometer + ' , ' + kosten_zeile
|
||||||
|
zeile = zeile.replace(' ','')
|
||||||
|
zeile = zeile.replace('kWh', ' kWh')
|
||||||
|
zeile = zeile.replace(',',', ')
|
||||||
|
zeile = zeile.replace('Min.','Min. ')
|
||||||
print(zeile)
|
print(zeile)
|
||||||
counter = counter + 1
|
counter = counter + 1
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user