FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: gestein am 11 Februar 2023, 10:03:30

Titel: [gelöst] Wie Reading mit “;” im Namen löschen?
Beitrag von: gestein am 11 Februar 2023, 10:03:30
Hallo,

Durch einen Programmierfehler habe ich nun etliche Readings in einem DOIF-Device, die ein ,,;" im Namen enthalten.

Wenn ich die mit deletereading löschen möchte, dann wird der ,,;" als Trennzeichen interpretiert.
Wie kann ich die readings löschen?
Oder muss ich das Device neu anlegen?

Danke im Voraus
Lg, Gerhard
Titel: Antw:Wie Reading mit “;” im Namen löschen?
Beitrag von: DeeSPe am 11 Februar 2023, 10:10:25
Lösch doch einfach alle Readings, die werden doch dann wieder neu angelegt.
deletereading <NAME> .+

Gruß
Dan
Titel: Antw:Wie Reading mit “;” im Namen löschen?
Beitrag von: betateilchen am 11 Februar 2023, 12:15:18
Ergänzung: vor dem empfohlenen deletereading das device in einem zweiten Fenster (oder Tab) ein zweites mal öffnen, dort die raw definition aufrufen und die setstate Zeilen der nicht geünschten readings entfernen.

Im ersten Fenster das deletereading für alle readings ausführen.
Danach das execute im zweiten Fenster ausführen, um alle anderen readings wieder herzustellen.

Ein anschließendes "save config" schreibt auch ein neues statefile ohne die fehlerhaften readings.
Titel: Antw:Wie Reading mit “;” im Namen löschen?
Beitrag von: Wernieman am 11 Februar 2023, 12:27:13
deletereading kann doch auch Regex, also:
deletereading <NAME-Device> <NAME-Reading>.*

NAME-Reading natürlich ohne das ";".
Hinweis: Vorher prüfen, ob der Name eindeutig ist. Wenn der Reading-Name "Test" ist, löscht obiges RegEx natürlich nicht nur "Test;", sondern auch "TestHilfe" ....
Titel: Antw:Wie Reading mit “;” im Namen löschen?
Beitrag von: gestein am 12 Februar 2023, 15:59:02
Vielen Dank für die Tips.

Das mit dem setstate war mir so gar nicht bewusst - echt cool.
Leider habe ich das mit dem regex-Ausdruck habe ich so leider nicht zusammengebracht.
Da waren die Namen zu ähnlich.
Mit besseren Kenntnissen hätte es wahrscheinlich geklappt.

Aber mit alle löschen und dann setstate hat's funktioniert.

Vielen Dank.
Lg, Gerhard