FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: outhouse am 07 April 2013, 11:36:22

Titel: Dimmer auslesen
Beitrag von: outhouse am 07 April 2013, 11:36:22
Hallo

Folgend Formel funktioniert problemlos

define Stehlampe notify WZ_Stehlampe:dim.* set ....

Auch das funtkioniert, wenn der Dimmer auf 50 % eingeschaltet ist ...

define StehlampeZeit notify WZ_Stehlampe { if (Value("WZ_Stehlampe") eq "on" || Value("WZ_Stehlampe") eq "dim50%%") {fhem....

Sobald ich aber für den Dimmer in der obigen Formel einen Platzhalter verwende,

define StehlampeZeit notify WZ_Stehlampe { if (Value("WZ_Stehlampe") eq "on" || Value("WZ_Stehlampe") eq "dim.*%%") {fhem....

funktioniert es nicht mehr.

Weiss jemand, wo das Problem liegt?

Gruss

Chris
Titel: Aw: Dimmer auslesen
Beitrag von: UliM am 07 April 2013, 16:56:39
Hi,
ja :)

Der Oparator "eq" prüft auf identischen Inhalt, nicht auf Muster.

Dafür musst Du =~ m// verwenden, ungefähr so:
define StehlampeZeit notify WZ_Stehlampe { if (Value("WZ_Stehlampe") eq "on" || Value("WZ_Stehlampe") =~ m"dim.*\%") {fhem....

Infos dazu u.a. auf: http://www.troubleshooters.com/codecorn/littperl/perlreg.htm (//www.troubleshooters.com/codecorn/littperl/perlreg.htm)

Wenn ich das richtig sehe, musst Du bei einer regexp das Prozentzeichen escapen - allerdings nicht mit %%, sondern \% - bin aber leider nicht sicher.
Du kannst rumprobieren mit http://regexp-tester.mediacix.de/exp/regex/ (//regexp-tester.mediacix.de/exp/regex/)

Viel Erfolg,
Gruß, Uli
Titel: Aw: Dimmer auslesen
Beitrag von: outhouse am 08 April 2013, 07:27:36
Hallo Uli

Aller herzlichsten Dank für deine Hilfe. Es funktioniert ausgezeichnet mit

=~ m"dim.*\%% (also 2 x %)

Ebenfalls herzlichen Dank für die beiden Links. Die sind SUPER!!!

Gemäss Regexp-Tester funktioniert auch:  =~ m"dim.*%%"

Habe es ausprobiert... Keine Probleme :-)

Wünsche einen schönen Wochenanfang

Gruss

Chris