Hauptmenü

Wildcard

Begonnen von Guest, 30 Juli 2012, 09:52:48

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo,
in einem Notify kann man mit ".*" ein Wildcard setzen. Wie verhält sich das
denn bei einer If-Abfrage?

Hier ist ein Beispiel:
define n_Jal_EG_SZ notify HM_pushButton_01:Btn2.* {                        
                            \
    if ("$value{j71_Jalousie_AUF}" ne "off" || "$value{j72_Jalousie_AB}" ne
"off") {                                  \
       fhem ("set j71_Jalousie_AUF off")                                    
                ;;    \
       fhem ("set j72_Jalousie_AB off")                                    
                ;;    \
    }                                                                      
        \
    elsif ("$value{HM_pushButton_01}" eq "Btn2 off (to broadcast)") {    
                                      \
       fhem ("set j71_Jalousie_AUF on-for-timer 25")                      
                        ;;    \
    }                                                                      
        \
    elsif ("$value{HM_pushButton_01}" eq "Btn2 on (to broadcast)") {        
                                        \
       fhem ("set j72_Jalousie_AB on-for-timer 14")                      
                        ;;    \
    }                                                                      
        \
}

Ich möchte auch das "onLong" abfragen, da einige Familienmitglieder die
Taste zu lange drücken. :-)

mit *elsif ("$value{HM_pushButton_01}" eq "Btn2 on.*")* geht es nicht.


Oder muss ich für jedes onLong (1-3) eine eigene If-Abfrage starten?
Btn2 onLong 1 (to broadcast)
Btn2 onLong 2 (to broadcast)
Btn2 onLong 3 (to broadcast)


LG Jörg

...

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> mit *elsif ("$value{HM_pushButton_01}" eq "Btn2 on.*")* geht es nicht.

Heisst auch
  elsif (Value("HM_pushButton_01") =~ m/Btn2 on.*/)

Siehe auch perl.

Zu "$value{HM_pushButton_01}":
- $value sollte nicht verwendet werden (deprecated), Value ist der Nachfolger
- "" ist in diesem Fall ueberfluessig.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Am Montag, 30. Juli 2012 10:08:35 UTC+2 schrieb Rudolf Koenig:
>
> > mit *elsif ("$value{HM_pushButton_01}" eq "Btn2 on.*")* geht es nicht.
>
> Heisst auch
>   elsif (Value("HM_pushButton_01") =~ m/Btn2 on.*/)
>
> Siehe auch perl.
>
> Zu "$value{HM_pushButton_01}":
> - $value sollte nicht verwendet werden (deprecated), Value ist der
> Nachfolger
> - "" ist in diesem Fall ueberfluessig.
>


Danke für Deine Hilfe, es funktioniert. :-)

Wäre es dann nicht besser, wenn ich auch die erste Abfrage (oder besser
gesagt alle If-Bedingungen in FHEM) so ändere?
*if (Value("j71_Jalousie_AUF") !~ m/off/ || Value("j72_Jalousie_AB") !~
m/off/)*

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> Wäre es dann nicht besser, wenn ich auch die erste Abfrage (oder besser
> gesagt alle If-Bedingungen in FHEM) so ändere?

Kanst Du gerne machen, ich blicke aber im Moment nicht die Nebenwirkungen.
Regexp ist zwar langsamer als ein Vergleich, aber in diesem Massstab
vernachlaessigbar.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com