From b426069afbdc1913b93b157ea4db250239e2d584 Mon Sep 17 00:00:00 2001 From: hubobel Date: Sun, 31 May 2026 18:51:21 +0200 Subject: [PATCH] =?UTF-8?q?Proxmoxwerte=20aud=20Dash3=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- down.py | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 125 insertions(+), 10 deletions(-) diff --git a/down.py b/down.py index b9bae81..271d22c 100644 --- a/down.py +++ b/down.py @@ -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 )