fhem, perl und assoziative arrays

Begonnen von wkarl, 30 Oktober 2013, 08:39:50

Vorheriges Thema - Nächstes Thema

wkarl

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
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

wkarl

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
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen