FHEM Forum

FHEM => Sonstiges => Thema gestartet von: betateilchen am 07 April 2014, 22:21:09

Titel: fhem.pl - userReadings mit Bindestrich werden nicht angelegt
Beitrag von: betateilchen am 07 April 2014, 22:21:09
Das funktioniert einwandfrei:

userReadings pressure_nn:airpress {relDruck(ReadingsVal("BMP180","airpress",1000))}



Das funktioniert nicht (kein reading angelegt, keine Fehlermeldung, einfach nix):

userReadings pressure-nn:airpress {relDruck(ReadingsVal("BMP180","airpress",1000))}



Wieso ist das so?

(ich brauche das Reading mit Bindestrich im Namen, weil ich sonst ca. 120 Verwendungsstellen ändern muss, da das bisher genutzte Device das Reading pressure-nn von Haus aus an Board hatte. Per notify lässt sich das Reading mit Bindestrich problemlos anlegen.)

Titel: Antw:fhem.pl - userReadings mit Bindestrich werden nicht angelegt
Beitrag von: justme1968 am 07 April 2014, 22:53:33
das liegt daran das die regex zum parsen des userReadings attributs nur \w+ für den reading namen verwendet (fhem.pl zeile 2138)

da sollte man alle sonst noch erlaubten zeichen einbauen.
Titel: Antw:fhem.pl - userReadings mit Bindestrich werden nicht angelegt
Beitrag von: rudolfkoenig am 08 April 2014, 13:14:45
Das Problem ist, dass beim Anlegen eines Readings keine Pruefung gibt, insofern sind theoretisch alle Zeichen erlaubt, was wiederum an diversen Stellen zur Problemen fuehrt.
Kannst du bitte testen, ob dein Problem mit Ersetzung der Zeile
      my $regexi= '\s*(\w+)(:\S*)?\s+((\w+)\s+)?({.*?})\s*';
durch
      my $regexi= '\s*([\w-]+)(:\S*)?\s+((\w+)\s+)?({.*?})\s*';
behoben ist?
Titel: Antw:fhem.pl - userReadings mit Bindestrich werden nicht angelegt
Beitrag von: betateilchen am 08 April 2014, 13:28:15
Das reading wird mit Bindestrich angelegt und auch gefüllt, sieht soweit ganz gut aus.

Mir ist schon klar, dass man eigentlich eine Prüfung in irgendeiner Form braucht, aber der Bindestrich kommt nunmal in vielen Readings bzw. Device(typen) vor.
Titel: Antw:fhem.pl - userReadings mit Bindestrich werden nicht angelegt
Beitrag von: betateilchen am 08 April 2014, 13:30:39
Vielleicht könnte man in der commandref einen Hinweis darauf einbauen, welche Zeichen für userReadings erlaubt sind - ich hatte gesten keinen Hinweis gefunden und im Logfile gab es auch keine Meldung, aus der man einen Grund ableiten hätte können, warum ein userReading nicht angelegt wird.
Titel: Antw:fhem.pl - userReadings mit Bindestrich werden nicht angelegt
Beitrag von: betateilchen am 08 April 2014, 20:06:14
ok, jetzt habe ich den Patch auch im Produktivsystem getestet: Funktioniert.
Titel: Antw:fhem.pl - userReadings mit Bindestrich werden nicht angelegt
Beitrag von: rudolfkoenig am 09 April 2014, 18:13:32
Habs eingecheckt, und im userReadings Abschnitt die moeglichen Zeichen im Namen beschrieben.
Titel: Antw:fhem.pl - userReadings mit Bindestrich werden nicht angelegt
Beitrag von: betateilchen am 09 April 2014, 19:38:03
danke schön :)