Hi,
so zwei- bis dreimal im Jahr ist der verfügbare Speicherplatz in ext4 auf 0 % und diverse Programme und Funktionen hängen.
Sobald ich das mitbekomme, wird der Müll händisch gelöscht - das können u.a.FHEM-Sicherungen sein, verirrte Dateisicherungen, Logs, SonosSpeak, voller Mülleimer usw.
Es wäre aber schon, wenn ich den Speicherstand über das Frontend laufend im Blick haben könnte, um frühzeitig einzugreifen.
Hat jemand eine Idee, wie sich das realisieren ließe?
Vielen Dank,
Ingo
{`df -h`}
liefert:
Filesystem Size Used Avail Use% Mounted on
udev 461M 0 461M 0% /dev
tmpfs 95M 468K 95M 1% /run
/dev/nvme0n1p1 40G 3.7G 34G 10% /
tmpfs 473M 0 473M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/nvme0n1p15 124M 12M 113M 10% /boot/efi
Das lässt sich doch wunderbar zeilenweise auswerten?
Noch einfacher:
{`df -h |grep nvme`}
liefert nur die "echten" Speicherorte:
/dev/nvme0n1p1 40G 3.7G 34G 10% /
/dev/nvme0n1p15 124M 12M 113M 10% /boot/efi
Zitat von: is2late am 02 Dezember 2025, 15:26:33der verfügbare Speicherplatz in ext4 auf 0 %
Ähm... "ext4" ist kein Speicherort, sondern die Typbezeichnung eines Filesystems.
Vielen Dank, Betateilchen!
ZitatDas lässt sich doch wunderbar zeilenweise auswerten?
Tja... dafür fehlt mir leider das Handwerkszeug, fürchte ich.
Kannst Du mir verraten, wie man von Fhem aus auf diese Infos zugreifen kann?
zB, wenn man Deine Lösung für die Abfrage der "echten" Speicherorte nutzen möchte?
LG
defmod hdd at +*01:00:00 {getHdd $SELF}
In der 99_myUtils.pm die Funktion getHdd() anlegen:
sub getHdd {
my $dev = shift;
my @disks = split("\n",(`df -h |grep nvme`));
map {my @l = split(" ",$_); fhem "setreading $dev ".makeReadingName($l[0])." $l[4]";} @disks;
return;
}
Dann entstehen einmal pro Stunde zwei readings in dem at-device mit den Namen der Partitionen und der Belegung:
setstate hdd 2025-12-02 16:08:28 /dev/nvme0n1p1 10%
setstate hdd 2025-12-02 16:08:28 /dev/nvme0n1p15 10%
Es gibt für solche Aufgaben auch fertige FHEM Module.
https://commandref.fhem.de/#SYSMON
https://commandref.fhem.de/#SYSSTAT
Mir sind die aber alle zu überladen für solche "Kleinigkeiten".
Super Hilfe, herzlichen Dank, Betateilchen!
Ich muss leider mal nachfragen....
Bekomme außer dem state kein Reading. Kann das damit zusammenhängen, dass der Speicher keine Karte, sondern ein USB-Stick ist?
So sieht es aus:
[code]define hdd at +*01:00:00 {getHdd $SELF}
attr hdd room Geräte,System
# CFGFN
# COMMAND {getHdd $SELF}
# DEF +*01:00:00 {getHdd $SELF}
# FUUID 69301b4d-f33f-6337-fb84-789b0fdaaa5dcbae
# NAME hdd
# NR 1612
# NTM 15:13:17
# PERIODIC yes
# RELATIVE yes
# REP -1
# STATE Next: 15:13:17
# TIMESPEC 01:00:00
# TRIGGERTIME 1764771197.56771
# TRIGGERTIME_FMT 2025-12-03 15:13:17
# TYPE at
# eventCount 4
# READINGS:
# 2025-12-03 14:13:17 state Next: 15:13:17
# hmccu:
#
setstate hdd Next: 15:13:17
setstate hdd 2025-12-03 14:13:17 state Next: 15:13:17
[/code]
Den Code für die 99_myUtils habe ich doch wohl hoffentlich richtig kopiert ;-)
####### Speicherplatz auf Karte/Stick des Raspi abfragen ######
sub getHdd {
my $dev = shift;
my @disks = split("\n",(`df -h |grep nvme`));
map {my @l = split(" ",$_); fhem "setreading $dev ".makeReadingName($l[0])." $l[4]";} @disks;
return;
}
#### HINWEIS: "1;" muss immer das letzte Zeichen sein! Neue Routinen also oberhalb eintragen! ######
1;
LG Ingo
naja, den Teil mit dem "nvme" musst Du schon an Deine Gegebenheiten anpassen.
Was ergibt denn (in der Befehlszeile eingeben)
{`df -h`}
als Rückmeldung in FHEM?
Danke!
Die Abfrage ergibt
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/root 28G 15G 12G 57% /
devtmpfs 3,6G 0 3,6G 0% /dev
tmpfs 3,7G 0 3,7G 0% /dev/shm
tmpfs 1,5G 2,0M 1,5G 1% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
/dev/sda1 253M 56M 197M 23% /boot
tmpfs 739M 20K 739M 1% /run/user/1000
LG
Ein kleines bisschen geistige Transferleistung hatte ich in der Tat vorausgesetzt...
Ersetze mal in der Funktion in 99_myUtils.pm 'grep nvme' durch 'grep root' (ohne die Anführungszeichen!)
Danach kannst mit "set hdd execNow" testen, ob es funktioniert.
Ein kleines bisschen geistige Transferleistung hatte ich in der Tat vorausgesetzt...Asche auf mein Haupt... Aber ehrlich gesagt, die allermeisten Dinge hier sind für mich bömische Dörfer.
Aber ich sammele jeden Tipp und muss daher wenigstens nur einmal pro Problem fragen ;-)
Herzlichen Dank, Betateilchen, für Deine geduldige Hilfe!
LG Ingo