Hallo,
ich habe einen Fibaro Motion Sensor, der liefert mir die Helligkeit in dem Reading Luminance mit dem Wert und dem "Zusatz" lux. Nun habe ich versucht daraus einen eigenes Reading zu mache, der mir nur die Zahl anzeigt.
lux {(ReadingsVal($name,"luminance","") =~ /[0-9]+/)}
Funktioniert leider nicht, es kommt nur die "1". Habe auch schon etwas rum experimentiert aber keine Lösung gefunden. Ich finde quasi den Fehler nicht.
Zitat von: Hi2Helmi am 31 März 2017, 21:07:56
Hallo,
ich habe einen Fibaro Motion Sensor, der liefert mir die Helligkeit in dem Reading Luminance mit dem Wert und dem "Zusatz" lux. Nun habe ich versucht daraus einen eigenes Reading zu mache, der mir nur die Zahl anzeigt.
lux {(ReadingsVal($name,"luminance","") =~ /[0-9]+/)}
Funktioniert leider nicht, es kommt nur die "1". Habe auch schon etwas rum experimentiert aber keine Lösung gefunden. Ich finde quasi den Fehler nicht.
Probier mal ReadingsNum
Ach so der Code oben steht im Attribut userReadings
Zitat von: Hi2Helmi am 31 März 2017, 21:16:14
Ach so der Code oben steht im Attribut userReadings
Probier mal ReadingsNum
Danke, mit readingsNum funktioniert es. Vielleicht kann mir trotzdem den Fehler in der Regex sagen, nur zum lernen für mich.
Um einen "Treffer" zurück zu geben könnte man bspw. eine matching group benutzen: https://perldoc.perl.org/perlretut.html
ich hab auch das Problem mit dem Fibaro Multisensor
luminance 0 Lux 2023-09-22 18:20:57
lux 1 2023-09-22 18:20:57
userReadings lux {(ReadingsNum($name,"luminance","") =~ /[0-9]+/)}
noch jemand eine Idee ?
Wenn man mit ReadingsNum() arbeitet, sollte man tunlichst darauf verzichten, einen alphanumerischen default-Wert anzugeben. Selbst wenn es sich "nur" um einen Leerstring "" handelt.
Auf den restlichen Blödsinn, der da als Lösung vorgeschlagen wurde, gehe ich jetzt bewusst nicht ein.
Zitat von: derthom am 22 September 2023, 18:23:17userReadings lux {(ReadingsNum($name,"luminance","") =~ /[0-9]+/)}
noch jemand eine Idee ?
Mehrere...
1. Falsche Klammersetzung
2. ReadingsNum() liefert schon den numerischen Wert ohne Einheit aus dem reading, das weitere regexen einer Zahl auf Ziffern ist ziemlich sinnlos.
3. Du solltest einen sinnvollen Trigger für das userReading angeben