FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: stobor am 11 Februar 2014, 20:19:03

Titel: fhem.cfg: Wie kann ich auf Zustände prüfen?
Beitrag von: stobor am 11 Februar 2014, 20:19:03
Hallo,

ich  möchte in der fhem.cfg Zustandsprüfungen vornehmen. Dabei gibt es schon folgendes Konstrukt:

define SC_MAX_EG_opened notify SC_MAX_EG_.*:opened.* {\
if ((Value("SC_MAX_EG_Haustuer") eq "opened") || ...


D.h.
Ich warte auf Ereignisse von Geräten, deren Namen mit "SC_MAX_EG_" beginnen und das Ereignis beginnend mit "opened" senden. Danach prüfe ich, ob das Gerät "SC_MAX_EG_Haustuer" den Zustand "opened" hat. Richtig?

Wie kann ich denn prüfen, ob der Zustand von "SC_MAX_EG_Haustuer" mit "opened" beginnt, anstatt, dass er genau "opened" ist? Ich hätte gedacht, das wäre
if ((Value("SC_MAX_EG_Haustuer") eq "opened*")...
Aber ist das so?


Titel: Antw:fhem.cfg: Wie kann ich auf Zustände prüfen?
Beitrag von: betateilchen am 11 Februar 2014, 20:23:48
Zitat von: stobor am 11 Februar 2014, 20:19:03Aber ist das so?

Nein, das ist nicht so. Das Zauberwort heißt regexp. Außerdem hast Du eine Klammer zuviel offen.

Probiers mal so:

if (Value("SC_MAX_EG_Haustuer") =~ /^opened.*/)

Auch wenn ich nicht weiß, welchen brauchbaren Hintergrund Dein Ansinnen hat.