FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: CQuadrat am 20 November 2014, 09:55:32

Titel: [gelöst] Userreading in Kombination mit Regexp macht nicht was es soll
Beitrag von: CQuadrat am 20 November 2014, 09:55:32
Hallo Zusammen,

ich würde gerne aus einem Reading (wind_dir), in dem die Windrichtung in Form "123 ABC" (z.B. "313 NW") steht, die Haupthimmelsrichtung in einem Userreading abspeichern. Dazu habe ich ein userReading mit
wind_dir_main:wind_dir {my $wdm=ReadingsVal("TFA_WIND_22","wind_dir","-"); $wdm =~ /(\D\S+\b)/ ; }
konstruiert. Aber irgendwie funktioniert das mit dem Regexp nicht. Im userReading steht immer nur eine Zahl.

Sieht hier vielleicht jemand, woran es hängt.

Danke und Gruß

Christoph

Titel: Antw:Userreading in Kombination mit Regexp macht nicht was es soll
Beitrag von: justme1968 am 20 November 2014, 10:33:04
du musst mit return noch zurückgeben was du im reading stehen haben willst. also bei dir z.b. return $1;

wenn du nicht explizit etwas zurück gibst ist die rückgabe der der 'wert' des letzten ausdrucks. und das ist in deinem fall die anzahl der gefunden matches oder sogar einfach nur true.

gruss
  andre
Titel: Antw:Userreading in Kombination mit Regexp macht nicht was es soll
Beitrag von: Phill am 20 November 2014, 13:10:16
Warum so kompliziert? Hat das einen Grund? /[A-Z]+/;
return $&;
Titel: Antw:Userreading in Kombination mit Regexp macht nicht was es soll
Beitrag von: justme1968 am 20 November 2014, 14:45:01
ich hab mich schon gewundert was du meinst :)

wenn es um die länge geht warum nicht gleich /\w+/? noch ein zeichen gespart.

oder im list kontext gleich das element zurück geben. das spart noch ein paar zeichen:wind_dir_main:wind_dir {(ReadingsVal($name,"wind_dir","-")=~/\w+/)[0]}
Titel: Antw:Userreading in Kombination mit Regexp macht nicht was es soll
Beitrag von: CQuadrat am 20 November 2014, 22:36:39
Naja, ich hatte da noch mit den Regexp exerimentiert. Aber mit euren Hinweisen, tut es jetzt das, was es soll.

1000 Dank!