Hauptmenü

[gelöst]delete Syntax

Begonnen von JensS, 13 Februar 2018, 10:13:12

Vorheriges Thema - Nächstes Thema

JensS

Gibt es die Möglichkeit, nur die FileLogs in einem Raum zu löschen?delete room=neue-GeräteLöscht alle Devices im Raum neue-Geräte zuverlässig. Beidelete FileLog.* room=neue-Gerätebzw.delete room=neue-Geräte FileLog.*passiert nichts. In commandref und WIKI habe ich keine Lösung gefunden und hoffe, Ihr könnt mir weiterhelfen.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

marvin78

Bitte commandref zu devspec und im speziellen FILTER lesen.  Ich würde einen FILTER auf TYPE setzen.

JensS

#2
Danke marvin78!
delete room=neue-Geräte:FILTER=TYPE=FileLog
hat's gebracht, was mich gleich zur nächsten Frage bringt.
Gibt es die Möglichkeit, mit dem delete-Aufruf, gleich die FileLog-Dateien zu löschen?

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

marvin78

So direkt sicher nicht. Ggf. kannst du dir hierfür aber einen cmdalias bauen.

JensS

#4
Ok, habe mir eine sub in 99_myUtils.pm eingefügt und rufe diese Funktion regelmäßig mit at auf.
sub delete_neue_Geraete{
my $Rueckgabe;
my @logs=devspec2array("room=neue-Geräte:FILTER=TYPE=FileLog");
fhem("delete room=neue-Geräte:FILTER=TYPE=SVG");
foreach my $i (@logs){
fhem("attr $i disable 1");
my $FileLogDatei = InternalVal($i,"currentlogfile","");
fhem("delete $i");
$Rueckgabe = $Rueckgabe.qx(rm -f -v $FileLogDatei);
}
return "geloeschte Dateien:\n".$Rueckgabe;
}

Nach{delete_neue_Geraete}werden alle SVGs, FileLogs und die aktuell dazugehörigen Logdateien im Raum neue-Geräte gelöscht. Als Rückmeldung kommt folgende Ausgabe:geloeschte Dateien:
'./log/SD_WS37_TH_161-2018.log' wurde entfernt
'./log/SD_WS37_TH_852-2018.log' wurde entfernt
'./log/SD_WS_51_TH_57281-2018.log' wurde entfernt
'./log/SD_WS_51_TH_57301-2018.log' wurde entfernt
'./log/SD_WS_51_TH_57361-2018.log' wurde entfernt
'./log/SD_WS_58_TH_1173-2018.log' wurde entfernt
'./log/SD_WS_58_TH_2401-2018.log' wurde entfernt
'./log/SD_WS_58_TH_592-2018.log' wurde entfernt
'./log/THR128_02_1-2018.log' wurde entfernt
'./log/THWR288A_ee_2-2018.log' wurde entfernt


Vielleicht gehts auch einfacher aber vorerst bin ich einigen Datenmüll los.

Danke nochmals für die Hilfe!
Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.