Hallo,
ich habe derzeit ein kleines Probem.
Ein ReadingsVal liefert mir Werte aus folgendem Berich: "off",15,15.5, ....
Dummerweise ist "off" ein String, damit kann > oder < logischerweise nicht machen ....
Mein Notify arbeitet zwar korrekt, jedoch erhalte ich immer eine Meldung, dass der Ausdruck nicht numerisch ist.
Gibt es eine Übersicht über die Vergleichsoperatoren? Mich persönlich würde eine Art "isnumeric()" interessieren.
Grüße
Nimm doch einfach ReadingsNum() anstatt ReadingsVal(), das könnte vielleicht schon helfen.
perl Vergleichsoperatoren findest Du in der perl Doku. Das ist kein fhem-spezifisches Thema.
Ein wenig Google hätte Dir schneller weiter geholfen :)
Schau mal hier: http://perldoc.perl.org/perlop.html#Equality-Operators (oder hier http://perldoc.perl.org/perlfaq4.html)
Letztendlich gibt es einige Ansätze, wie man zum ziel kommen kann (z. B. auch per Regex).
Hallo,
vielen Dank für die schnelle Hilfe, ReadingsNum() sollte für mein Problem ausreichend sein:
ReadingsNum(<devicename>,<reading>,<defaultvalue>)
Wie ReadingsVal, löscht aber alles, was kein Zahl ist, um den Wert bei Berechnungen verwenden zu können.
Ansonsten die Allzweckwaffe in der 99_myUtils.pm verwenden 8)
use Scalar::Util qw(looks_like_number);