Proxmoxwerte aud Dash3 hinzugefügt

This commit is contained in:
hubobel 2026-05-31 18:51:21 +02:00
parent e707e0a71c
commit b426069afb

135
down.py
View file

@ -171,6 +171,39 @@ from(bucket: "{INFLUX_BUCKET}")
# Verlauf der letzten Downloads
# -------------------------------------------------
def get_influx_value(measurement):
try:
client = InfluxDBClient(
url=INFLUX_URL,
token=INFLUX_TOKEN,
org=INFLUX_ORG
)
query_api = client.query_api()
query = f'''
from(bucket: "{INFLUX_BUCKET}")
|> range(start: -24h)
|> filter(fn: (r) => r["_measurement"] == "{measurement}")
|> filter(fn: (r) => r["_field"] == "value")
|> group()
|> sort(columns: ["_time"])
|> tail(n:1)
'''
tables = query_api.query(query)
for table in tables:
for record in table.records:
return float(record.get_value())
except:
pass
return 0
def get_download_history():
try:
@ -640,11 +673,27 @@ def draw_dashboard_2():
# -------------------------------------------------
def draw_dashboard_3():
cpu_freq = get_influx_value("Proxmox_Frequ")
cpu_load = get_influx_value("Proxmox_CPU_Auslastung")
ram_load = get_influx_value("Proxmox_RAM_Auslastung")
cpu_temp = get_influx_value("Proxmox_Temp")
img = Image.new("RGB", (WIDTH, HEIGHT), "black")
server_temp = get_influx_value("Temp_Server_oben")
draw = ImageDraw.Draw(img)
cpu_color = "green"
if cpu_load > 80:
cpu_color = "red"
elif cpu_load > 50:
cpu_color = "yellow"
temp_color = "green"
if cpu_temp > 70:
temp_color = "red"
elif cpu_temp > 50:
temp_color = "yellow"
# Header wie Dashboard 1
draw.text(
@ -693,23 +742,89 @@ def draw_dashboard_3():
# Inhalt Dashboard 3
draw.text(
(20, 110),
"Bereit fuer weitere",
fill="green",
(20, 95),
"CPU-FREQUENZ",
fill="cyan",
font=font_small
)
draw.text(
(20, 140),
"Informationen",
(20, 115),
f"{cpu_freq:.0f} MHz",
fill="green",
font=font_small
font=font_download
)
draw.text(
(20, 210),
"GPIO21 aktiv",
fill="orange",
(20, 185),
"CPU-LAST",
fill="white",
font=font_small_bold
)
draw.text(
(200, 185),
f"{cpu_load:.0f} %",
fill=cpu_color,
font=font_small_bold
)
ram_total = 30.77
ram_used = ram_total * ram_load / 100
if ram_load < 60:
ram_color = "lime"
elif ram_load < 80:
ram_color = "yellow"
else:
ram_color = "red"
draw.text(
(20, 215),
"RAM-LAST",
fill="white",
font=font_small_bold
)
draw.text(
(145, 215),
f"{ram_load:.0f} % ({ram_used:.1f} / {ram_total:.1f} GB)",
fill=ram_color,
font=font_small_bold
)
draw.text(
(20, 245),
"CPU-TEMP",
fill="white",
font=font_small_bold
)
draw.text(
(200, 245),
f"{cpu_temp:.0f} °C",
fill=temp_color,
font=font_small_bold
)
draw.text(
(20, 275),
"RAUM-TEMP",
fill="white",
font=font_small_bold
)
if server_temp < 25:
room_color = "lime"
elif server_temp < 30:
room_color = "yellow"
else:
room_color = "red"
draw.text(
(200, 275),
f"{server_temp:.1f} °C",
fill=room_color,
font=font_small_bold
)