CPU Temperatur in der GUI nach einem Update per Script eintragen

So benutzt du ein einfache Script zum Nachtragen der CPU Temperatur in der GUI:

  1. Script erstellen: sudo nano add_temp.sh (Inhalt einfügen und speichern).
  2. Berechtigung setzen: sudo chmod +x add_temp.sh
# ++++++++++++++ Script +++++++++++++++++++

#!/bin/bash

FILE="/var/www/html/admin/scripts/lua/sidebar.lp"

SEARCH='<span id="cpu"></span><br>'

INSERT='<span id="temperature">\&nbsp;\&nbsp;<i class="fa-solid fa-temperature-three-quarters text-green-light"></i>\&nbsp;\&nbsp; Temp: <%= string.format("%.1f°C", tonumber(io.open("/sys/class/thermal/thermal_zone0/temp"):read("*a")) / 1000) %></span><br/>'

if [ -f "$FILE" ]; then
    sed -i "\|$SEARCH|a $INSERT" "$FILE"
    echo "Temperatur-Zeile wurde erfolgreich nach der CPU-Zeile eingefügt."
else
    echo "Fehler: Datei $FILE wurde nicht gefunden."
    exit 1
fi

# ++++++++++++++ Script Ende +++++++++++++++++++

Aufruf nach einem Update von PiHole
sudo ./add_temp.sh

Das Ergebnis ist sofort nach Browseraktualisierung sichtbar.
Ein Reboot ist nicht nötig.

Danke für den Tipp. Er funktioniert einwandfrei.

Vielen Dank auch an Google Translate, das diese Antwort ermöglicht hat.

Butch

Na klar, wenn sich das ändert, wird angepasst. Ich finde es gut und nützlich, wenn es angezeigt wird.

Pihole läuft bei mir exklusiv auf einem 2B ohne Netzteil an der Fritzbox. Seit Jahren keine Probleme, denn der 2B ist sehr genügsam.

Meinen Pi4 habe ich mit Openmediavault in einem Alu Gehäuse laufen. Läuft mit maximaler Netzwerkgeschwindigkeit im Heimnetz und streamt ohne Ruckler auch 2 4K Filme. Da das ganze Gehäuse ein Kühlkörper ist, ist alles nur handwarm.

ich war mal so frei das script anzupassen:

#!/usr/bin/env bash

set -euo pipefail

FILE="/var/www/html/admin/scripts/lua/sidebar.lp"

SEARCH='<span id="cpu"></span><br>'
INSERT='<span id="temperature">&nbsp;&nbsp;<i class="fa-solid fa-temperature-three-quarters text-green-light"></i>&nbsp;&nbsp; Temp: <%= string.format("%.1f°C", tonumber(io.open("/sys/class/thermal/thermal_zone0/temp"):read("*a")) / 1000) %></span><br/>'

if [[ ! -f "$FILE" ]]; then
    echo "Fehler: Datei nicht gefunden: $FILE" >&2
    exit 1
fi

# Nur einfügen, wenn die Temperatur-Zeile noch nicht existiert
if grep -Fq 'id="temperature"' "$FILE"; then
    echo "Temperatur-Zeile existiert bereits."
    exit 0
fi

# Zeile nach CPU-Span einfügen
sed -i "\|$SEARCH|a\\
$INSERT
" "$FILE"

echo "Temperatur-Zeile wurde erfolgreich eingefügt."

dadurch vermeidet man versehentliches doppelte einträge

Was soll der Mist?

War vielleicht ein KI Bot Antwort...

DEUTSCH: Mein (einzelner) Befehl prüft, ob der Eintrag bereits vorhanden ist, und fügt ihn dann ein, wenn er nicht vorhanden ist.

ENGLISH: My (single) command checks if the entry is already present, then inserts it, if it isn't.

grep -Pzol '<span id=\"query_frequency\"></span><br>\n <span id=\"cpu\"></span><br>\n' /var/www/html/admin/scripts/lua/sidebar.lp | xargs sudo sed -i 's|<span id="cpu"></span><br>|<span id="temperature"><i class="fa fa-fw fa-temperature-three-quarters text-green-light"></i>\&nbsp;\&nbsp;Temp: <%= string.format("%.1f°C", tonumber(io.open("/sys/class/thermal/thermal_zone0/temp"):read("*a")) / 1000) %></span><br/>\n <span id="cpu"></span><br>|'

Geil !
Ich bin beeindruckt, aber der Einzeiler funktioniert bei meinem PI leider nicht.

Das Script von xopez geht einwandfrei, auch beim zweiten Aufruf.

DEUTSCH: Sie müssen sicherstellen, dass es keine Zeilenumbrüche gibt.

ENGLISH: You need to make sure there are no line breaks.