FHEM Forum

FHEM - Anwendungen => Beleuchtung => Thema gestartet von: heinzfo am 10 Januar 2015, 19:01:08

Titel: ReadingsVal FS20
Beitrag von: heinzfo am 10 Januar 2015, 19:01:08
Hallo zusammen

Komme nicht weiter mit dem auslesen von state off
State off geht, der Status von off kann aber auch off 10 sein.

Mit welchen Syntax kann ich all off state abdecken, also nicht nur off sondern auch off 10 oder off 48 usw.

Momentan geht das hier ohne Probleme:
{ if ((ReadingsVal("Stern","state",99) eq "toggle") || (ReadingsVal("Stern","state",99) eq "off")) { fhem "set Stern dim56%% 48" }}

Schon mal vielen Dank für das feedback
Heinz
Titel: Antw:ReadingsVal FS20
Beitrag von: Paul am 10 Januar 2015, 23:13:48
Frage doch auf nicht "on" ab
Titel: Antw:ReadingsVal FS20
Beitrag von: heinzfo am 11 Januar 2015, 09:49:41
Hallo Paul

Wollte vermeiden das die ganzen dim...  state ebenfalls das Licht schalten.

Das geht leider nicht mit ne "on"

Grüße
Heinz
Titel: Antw:ReadingsVal FS20
Beitrag von: heinzfo am 11 Januar 2015, 11:31:57
Ich habe auch die Varianten "off*" und "off.*" gestestet, das geht leider auch nicht.

Übersehe ist etwas, oder geht das nicht?

Grüße
Heinz
Titel: Antw:ReadingsVal FS20
Beitrag von: betateilchen am 11 Januar 2015, 11:41:48
Das geht grundsätzlich schon, nennt sich "regular expression" und dazu gibt es ungefähr 3 Mio Einträge bei google.

ReadingsVal("Stern","state","99") =~ m/^off/

Und nochwas: Deine 99 in den ReadingsVal() solltest Du in "99" ändern, denn Du willst ja alphanumerisch vergleichen.
Titel: Antw:ReadingsVal FS20
Beitrag von: heinzfo am 11 Januar 2015, 12:05:07
Vielen Dank!

Das geht jetzt!

^off verstehe ich.
aber was macht
~ m
und warum die beiden /

Beste Grüße
Heinz
Titel: Antw:ReadingsVal FS20
Beitrag von: heinzfo am 11 Januar 2015, 15:30:38
Verstanden!

^ off ist der Reguläre Ausdruck.
/ begrenzen den Regulären Ausdruck.
^ meint, der Text off muss am Anfang der Zeile stehen um gefunden zu werden.
m meint, matching den Suchmuster Operator.
=~  verknüpft den Regulären Ausdruck mit dem durchsuchten String, also dem state.

Grüße
Heinz
Titel: Antw:ReadingsVal FS20
Beitrag von: Elektrolurch am 11 Januar 2015, 16:02:59
und

$wert =~ s/text1/text2/;

ersetzt in $wert "text1" durch "text2"...
auch nützlich.

siehe auch:
http://www.perlboard.de/perlguide/Inhalt.html

ein bis zweimal durcharbeiten, dann kann mans....

Elektrolurch