FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: wkarl am 30 Oktober 2013, 08:39:50

Titel: fhem, perl und assoziative arrays
Beitrag von: wkarl am 30 Oktober 2013, 08:39:50
Hallo,

ich wollte folgendes umsetzen:define HM_RepeaterEG notify HM_SetRepeater.RepeaterEG { \
    my $rptr = "HMLAN_RepeaterEG";; \
    my $no = 1;; \
    my $device01 = "";; \
    my $device02 = "";; \
    my %cfgArr = ("Wohnzimmer_TC",              =>  "F15D62", \
                  "Wohnzimmer_FH_Ost",          =>  "F15D62", \
                  "Wohnzimmer_FH_Sued",         =>  "F15D62", \
                  "Wohnzimmer_FH_West",         =>  "F15D62", \
                  "Esszimmer_TC",               =>  "F15D62", \
                  "Esszimmer_FH",               =>  "F15D62", \
                  "Kueche_TC",                  =>  "F15D62", \
                  "Kueche_FH",                  =>  "F15D62", \
                  "Buero_TC",                   =>  "F15D62", \
                  "Buero_FH",                   =>  "F15D62", \
                  "GaesteToilette_TC",          =>  "F15D62", \
                  "GaesteToilette_FH",          =>  "F15D62", \
                  "DieleWindfang_TC",           =>  "F15D62", \
                  "Diele_FH",                   =>  "F15D62", \
                  "Windfang_FH",                =>  "F15D62", \
                  "Schalter_Terasse",           =>  "Markise", \
                  "Bewegungsmelder_HolzHuette", =>  "F15D62", \
                  "Zirkulationspumpe_FH", => "F15D62", \
                  );; \
    foreach $device01(sort keys %cfgArr) { \
        $device02 = $cfgArr{$device01};; \
        { fhem ("set $rptr setRepeat $no $device01 $device02 no") };; \
        $no++;; \
        { fhem ("set $rptr setRepeat $no $device02 $device01 no") };; \
        $no++;; \
    };; \
}
attr HM_RepeaterEG group Repeater
attr HM_RepeaterEG icon edit_settings
attr HM_RepeaterEG room Z.HA.fhem

Jedoch wird '%' als Device-Namen interpretiert.

Maskieren mit '\' tut auch nicht.

Kann mir jemand aufs Pferd helfen?

Danke und ciao
walter
Titel: fhem, perl und assoziative arrays
Beitrag von: justme1968 am 30 Oktober 2013, 08:47:24
versuch mal maskieren durch verdoppeln. also %%.

aber eigentlich ist es viel handlicher alles in eine routine in 99_myUtils.pm zu stecken und im notify die routine aufzurufen. dann gibt es keine probleme mit maskieren.

der hash kann dann auch ein mal statisch angelegt werden und nicht bei jedem notify neu.

gruss
  andre
Titel: Antw:fhem, perl und assoziative arrays
Beitrag von: wkarl am 30 Oktober 2013, 10:07:11
Hallo Andre,

mir %% funktioniert es auch nicht. Als sub habe ich es schon definiert. Jetzt wollte ich mir das Leben etwas bequemer machen. Statt bei einer Änderung/Ergänzung remote login, vi, etc einfach über DEF das Gewünschte tun und gut ist.

Aber wenn es nicht funktioniert ...

Danke und ciao
walter