FHEM Forum

FHEM => fhem-users => Thema gestartet von: Guest am 05 Januar 2012, 20:10:17

Titel: Treppenhausschaltung mit Bewegungsmelder
Beitrag von: Guest am 05 Januar 2012, 20:10:17
Originally posted by: <email address deleted>

Hallo,

ich versuche mit FS20 Bewegungsmeldern eine Treppenhausschaltung zu
realisieren.
Geschaltet wird mit einem Intertechno-Schalter. Funktioniert auch, bis
auf die Tatsache, dass der Schaltzyklus nicht "verlängert" wird, wenn
der Bewegungsmelder erneut auslöst.

Hier mein Konstrukt, da on-for-timer mit dem Intertechno-Schalter
(Dummy FS20) nicht funktioniert:

define Treppenhaus_On_for10sec notify FS20_e79100 { \
      fhem ("set A5_Treppenhaus on") ;; \
      fhem ("define SchalterOff at +00:02:00 set A5_Treppenhaus off")}

Irgendeine Idee?

Danke,
Marc

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Treppenhausschaltung mit Bewegungsmelder
Beitrag von: Guest am 05 Januar 2012, 23:10:08
Originally posted by: <email address deleted>

Hallo Marc,

> Funktioniert auch, bis
> auf die Tatsache, dass der Schaltzyklus nicht "verlängert" wird, wenn
> der Bewegungsmelder erneut auslöst.

Versuch mal etwas wie:

define Treppenhaus_On_for10sec notify FS20_e79100 {\
  if(Value("A5_Treppenhaus") eq "on") {\
    fhem "delete SchalterOff"\
  }\
  if(Value("A5_Treppenhaus") eq "off") {\
    fhem "set A5_Treppenhaus on";;\
    fhem "define SchalterOff at +00:02:00 set A5_Treppenhaus off"\
  }\
}

Wenn der Lichtschalter gedrückt wurde, während das Licht schon brennt,
sollte der "at-Timer" gelöscht werden, da er sonst unweigerlich 2
Minuten nach der ersten Betätigung das Licht ausschaltet. Und nach dem
Löschen wird der Timer einfach neu initialisiert.

Bin nicht sicher, ob das auf Anhieb funktioniert, da ich Variablen
bisher noch nach der alten Methode (die laut Rudi demnächst aber
obsolet ist) abfrage: if($value{A5_Treppenhaus} eq (...)

Aber die Richtung sollte stimmen ...

Ciao
Gerhard

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Treppenhausschaltung mit Bewegungsmelder
Beitrag von: Guest am 06 Januar 2012, 00:34:46
Originally posted by: <email address deleted>

Ach Quatsch ...

define Treppenhaus_On_for10sec notify FS20_e79100 {\
  if(Value("A5_Treppenhaus") eq "on") {\
    fhem "delete SchalterOff"\
  }\
  fhem "set A5_Treppenhaus on";;\
  fhem "define SchalterOff at +00:02:00 set A5_Treppenhaus off"\
}

... macht irgendwie mehr Sinn.

Ciao
Gerhard

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Treppenhausschaltung mit Bewegungsmelder
Beitrag von: Zrrronggg! am 06 Januar 2012, 02:00:21
                                                     

Genau so wie gmb es beschreibt, mache ich das auch. Das geht 1a.

Hier mal meine PIRI gesteuerte Heizungsautomation, jede PIRI-Auslösung
verlängert die Heizperiode um 59 Minuten, ist ja zu deinem Problem
analog.


define WZ_u_nutzung_on notify PIRA_WZ_u:on.* { fhem ("delete
reset_hzg_WZ_u ;; set hzg_wz_u desired-temp 21.5 ;; define
reset_hzg_WZ_u at +00:59 set hzg_wz_u desired-temp 16.5 ;;;; set
PIRA_WZ_u off") }


Anmerkungen:
- ja, ich bin Fan von den angeblich so unübersichtlichen Einzeilern.
Irgendwie komme ich damit besser klar als der strukturierten
Darstellung, bei der ich immer wieder eine Klammer irgendwo vergesse.
- bei der ERSTEN Auslösung wird eine Fehlermeldung im Log erzeugt,
weil zu dem Zeitpunkt define reset_hzg_WZ_u noch nicht existiert, aber
gelöscht werden soll. Ist aber eine rein kosmetisches Problem.
("Please define ... first")
- für dich nicht wichtig, aber bei FHTs in so einem Konstrukt
unbedingt attribute lazy benutzen, sonst ist man bei häufiger PIRI-
Auslösung schnell an der 1% Grenze.
- if(Value("A5_Treppenhaus") eq "on") würde ich nicht machen. Wenn du
das PIRI dann aus versehen auf "on-for-timer" einstellst, geht's nicht
mehr.
Wenn man anstatt eines PIRIs eine Fernbedienung verwendet, kann schon
ein zu langer Tastendruck Ärger machen (dimm)
Robuster ist meiner Auffassung nach:
if(Value("A5_Treppenhaus") ne "off")
oder hier schlicht "notify PIRA_WZ_u:on.*"


On 6 Jan., 00:34, gmb wrote:
> Ach Quatsch ...
>
> define Treppenhaus_On_for10sec notify FS20_e79100 {\
>   if(Value("A5_Treppenhaus") eq "on") {\
>     fhem "delete SchalterOff"\
>   }\
>   fhem "set A5_Treppenhaus on";;\
>   fhem "define SchalterOff at +00:02:00 set A5_Treppenhaus off"\
>
> }
>
> ... macht irgendwie mehr Sinn.
>
> Ciao
> Gerhard

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Treppenhausschaltung mit Bewegungsmelder
Beitrag von: Guest am 06 Januar 2012, 08:13:14
Originally posted by: <email address deleted>

Danke an Euch. Werde heute Abend mal testen.
Grüße,
Marc

On 6 Jan., 02:00, "Zrrronggg!" wrote:
> Genau so wie gmb es beschreibt, mache ich das auch. Das geht 1a.
>
> Hier mal meine PIRI gesteuerte Heizungsautomation, jede PIRI-Auslösung
> verlängert die Heizperiode um 59 Minuten, ist ja zu deinem Problem
> analog.
>
> define WZ_u_nutzung_on notify PIRA_WZ_u:on.* { fhem ("delete
> reset_hzg_WZ_u ;; set hzg_wz_u desired-temp 21.5 ;; define
> reset_hzg_WZ_u at +00:59 set hzg_wz_u desired-temp 16.5 ;;;; set
> PIRA_WZ_u off") }
>
> Anmerkungen:
> - ja, ich bin Fan von den angeblich so unübersichtlichen Einzeilern.
> Irgendwie komme ich damit besser klar als der strukturierten
> Darstellung, bei der ich immer wieder eine Klammer irgendwo vergesse.
> - bei der ERSTEN Auslösung wird eine Fehlermeldung im Log erzeugt,
> weil zu dem Zeitpunkt define reset_hzg_WZ_u noch nicht existiert, aber
> gelöscht werden soll. Ist aber eine rein kosmetisches Problem.
> ("Please define ... first")
> - für dich nicht wichtig, aber bei FHTs in so einem Konstrukt
> unbedingt attribute lazy benutzen, sonst ist man bei häufiger PIRI-
> Auslösung schnell an der 1% Grenze.
> - if(Value("A5_Treppenhaus") eq "on") würde ich nicht machen. Wenn du
> das PIRI dann aus versehen auf "on-for-timer" einstellst, geht's nicht
> mehr.
> Wenn man anstatt eines PIRIs eine Fernbedienung verwendet, kann schon
> ein zu langer Tastendruck Ärger machen (dimm)
> Robuster ist meiner Auffassung nach:
> if(Value("A5_Treppenhaus") ne "off")
> oder hier schlicht "notify PIRA_WZ_u:on.*"
>
> On 6 Jan., 00:34, gmb wrote:
>
>
>
>
>
>
>
> > Ach Quatsch ...
>
> > define Treppenhaus_On_for10sec notify FS20_e79100 {\
> >   if(Value("A5_Treppenhaus") eq "on") {\
> >     fhem "delete SchalterOff"\
> >   }\
> >   fhem "set A5_Treppenhaus on";;\
> >   fhem "define SchalterOff at +00:02:00 set A5_Treppenhaus off"\
>
> > }
>
> > ... macht irgendwie mehr Sinn.
>
> > Ciao
> > Gerhard

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Treppenhausschaltung mit Bewegungsmelder
Beitrag von: Guest am 06 Januar 2012, 10:25:01
Originally posted by: <email address deleted>

Hallo,

hier noch eine Lösung. Jedes Betreten des Badezimmers (Badez_PIR ist
ein FS20PIRI) startet und verlängert die Warmwasser-Zirkulationspumpe
(Treppenhauslicht) um 32 Minuten:

define Badez_PIR_check notify (Badez_PIR:on-for-timer.*) { \
        my $fhem_cmd;; \
        my @@args= split(" ", "%");; \
        if($defs{"Badez_PIR_off"}) { \
                $fhem_cmd= sprintf("modify Badez_PIR_off +%%02d:%%02d:%
%02d", \
                        $args[1] / 3600, ($args[1] / 60) %% 60, \
                        $args[1] %% 60);; \
        } else { \
                $fhem_cmd= sprintf("define Badez_PIR_off at " . \
                        "+%%02d:%%02d:%%02d set Badez_PIR off", \
                        $args[1] / 3600, ($args[1] / 60) %% 60, \
                        $args[1] %% 60);; \
        } \
        fhem("$fhem_cmd");; \
        fhem("set Zirkulationspumpe on-for-timer 1920");; \
        0;; \
}

Und hiermit könntest du auch noch den Zeitraum begrenzen:

   my $hm = sprintf("%%02d:%%02d", $hour, $min);; \
                if (($hm gt "06:00" && $hm lt "10:00") || \
                        ($hm gt "19:00" && $hm lt "23:00")) { \
                        fhem("set Zirkulationspumpe on-for-timer
1920");; \
                } \


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