[gelöst] Userreading in Kombination mit Regexp macht nicht was es soll

Begonnen von CQuadrat, 20 November 2014, 09:55:32

Vorheriges Thema - Nächstes Thema

CQuadrat

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

FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

justme1968

#1
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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Phill

#2
Warum so kompliziert? Hat das einen Grund? /[A-Z]+/;
return $&;
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

justme1968

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]}
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

CQuadrat

Naja, ich hatte da noch mit den Regexp exerimentiert. Aber mit euren Hinweisen, tut es jetzt das, was es soll.

1000 Dank!
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue