Ein/Aus-Aktor mit FS20 PIRU schalten

Begonnen von jsb73, 29 März 2013, 10:36:26

Vorheriges Thema - Nächstes Thema

jsb73

Hallo,

den folgenden Code nutze ich um das Event "on-old-for-timer xxx" in Ein-/Aus-Schaltvorgänge für einen einfachen InterTechno-Aktor umzusetzen:


# Flurlicht einschalten - on-old-for-timer xxx uebersetzen in at relativ zu jetzt
# neues at definieren, falls bereits vorhanden das bestehende vorher loeschen
# Idee: http://www.fhemwiki.de/wiki/On-for-timer_zur%C3%BCcksetzen
define n_fl_se_Melder_timer notify fl_se_Melder:on-old-for-timer.* {                    \
        my @@args   = split(" ", "%EVENT");;                                            \
        if ( Value("at_fl_se_Melder_off") ) {                                           \
                Log 1, "delete at_fl_se_Melder_off";;                                   \
                fhem ("delete at_fl_se_Melder_off");;                                   \
        }                                                                               \
        fhem ("set fl_li_Lampe on");;                                                   \
        my $def_cmd = sprintf (                                                         \
                "define at_fl_se_Melder_off at +%%02d:%%02d:%%02d set fl_se_Melder off",        \
                $args[1] / 3600, ($args[1] / 60) %% 60, $args[1] %%60);;                \
        fhem ($def_cmd);;                                                               \
        fhem ("setstate fl_se_Melder on-for-timer $args[1]");;                          \
}


fl_se_Melder ist der FS20 PIRU, fl_li_Lampe ist ein COCO ACM-1000 Aktor.

Der STATE für fl_se_Melder wird auf "on-for-timer" gesetzt, damit das passende Icon (Lampe mit Uhr) erscheint. In der Oberfläche ist fl_li_Lampe versteckt, als Element für das Licht wird fl_se_Melder angezeigt.

Jan