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
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
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