Autor Thema: ReadingsVal FS20  (Gelesen 1673 mal)

Offline heinzfo

  • Full Member
  • ***
  • Beiträge: 400
ReadingsVal FS20
« 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
« Letzte Änderung: 10 Januar 2015, 19:09:03 von HeinzFo »

Offline Paul

  • Sr. Member
  • ****
  • Beiträge: 920
Antw:ReadingsVal FS20
« Antwort #1 am: 10 Januar 2015, 23:13:48 »
Frage doch auf nicht "on" ab
Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

Offline heinzfo

  • Full Member
  • ***
  • Beiträge: 400
Antw:ReadingsVal FS20
« Antwort #2 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
« Letzte Änderung: 11 Januar 2015, 10:10:22 von HeinzFo »

Offline heinzfo

  • Full Member
  • ***
  • Beiträge: 400
Antw:ReadingsVal FS20
« Antwort #3 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

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16059
  • s/fhem\.cfg/configDB/g
Antw:ReadingsVal FS20
« Antwort #4 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.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Nächster Hamburg Stammtisch am 20.09.2019

Offline heinzfo

  • Full Member
  • ***
  • Beiträge: 400
Antw:ReadingsVal FS20
« Antwort #5 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
« Letzte Änderung: 11 Januar 2015, 12:19:35 von HeinzFo »

Offline heinzfo

  • Full Member
  • ***
  • Beiträge: 400
Antw:ReadingsVal FS20
« Antwort #6 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
« Letzte Änderung: 11 Januar 2015, 15:33:19 von HeinzFo »

Offline Elektrolurch

  • Hero Member
  • *****
  • Beiträge: 1456
Antw:ReadingsVal FS20
« Antwort #7 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
configDB und Windows befreite Zone!