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
Lösch doch einfach alle Readings, die werden doch dann wieder neu angelegt.
deletereading <NAME> .+
Gruß
Dan
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.
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" ....
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