Proxmoxwerte aud Dash3 hinzugefügt
This commit is contained in:
parent
e707e0a71c
commit
b426069afb
1 changed files with 125 additions and 10 deletions
135
down.py
135
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
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue