Düwi Fernbedienung sendet "on" oder "off" nur abwechselnd

Begonnen von HannesK, 24 Februar 2016, 21:57:53

Vorheriges Thema - Nächstes Thema

HannesK

Ich verwende die RC2 von Düwi.

Dabei habe ich folgendes Problem: ich schalte bei on eine Lampe für 10 Minuten ein (mit Zeitsteuerung). Möchte ich sie nach dieser Zeit erneut einschalten, so sehe ich im Log zwar, dass das "on" Kommando von der Fernbedienung in FHEM angekommen ist, dennoch wird dieses anscheinend nicht an die Lampe gesendet (lie LED am Dongle bleibt dunkel). Erst wenn ich auf der Fernbedienung auf "off" drücke geht auch "on" wieder. Anscheinend verhindert irgendetwas in FHEM oder im ZWave Treiber, dass die Lampe erneut wieder eingeschaltet wird. Möglicherweise wird nicht erneut gesendet, weil noch davon ausgegangen wird, dass die Lampe ja noch an ist und so die Funklast reduziert wird (?).

Weiß jemand wie ich dieses Verhalten abschalten kann.


Gruß, Hannes

ak42

Schick doch mal ein Code-Snippet wie Du die Zeitsteuerung realisiert hast. Ist sonst schwer etwas dazu zu sagen.

Gruss

Andreas

HannesK

#2
Hallo Andreas,

vielen Dank für deine Nachfrage.

Die Zeitsteuerung hab ich mit einer Perl Funktion gelöst. Ich gehe allerdings davon aus, das die Zeitsteuerung damit nichts zu tun hat, denn bei einer weiteren Lampe ohne Zeitsteuerung habe ich das gleiche Problem: schalte ich die Lampe mit der Fernbedienung ein und am Lichtschalter aus, dann kann ich mit der Fernbedinung nicht wieder einschalten. Erst nachdem ich auf der Fernbedienung nochmal ausschalte geht es. Umgekehr ist es ähnlich: wenn ich mit der Fernbediung die Lampe ausgeschaltet habe und am Lichtschalter ein, dann kann ich mit der Fernbedienung die Lampe nicht ausschalten. Erst nachdem ich an der Fernbedinung eingeschaltet habe funktioniert es.

Dennoch - der Vollständigkeit halber  - nachfolgend die Zeitsteuerung.

Gruß, Hannes

=======

sub Flurlicht_An($) {

  my ($device) = @_;

  my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,
      $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);

  $Sekunden = $Sekunden + 600;
  while ($Sekunden > 59) {
     $Sekunden = $Sekunden - 60;
     $Minuten = $Minuten + 1;
     if ($Minuten > 59) {
        $Minuten = $Minuten - 60;
        $Stunden = $Stunden + 1;
        if ($Stunden > 23) {
            $Stunden = $Stunden - 24;
        }
     }
  }

  my $aus_zeit = sprintf("%02d:%02d:%02d",
   $Stunden, $Minuten, $Sekunden,
  );

  if ($device eq "off") {
    fhem( "set fl.dimmer dim 25" );

    fhem( "delete dummy" );
    fhem( "define dummy at *$aus_zeit { Flurlicht_Aus }" );
  }
}

ak42

Oh, da hast Du sogar eine eigene Funktion für spendiert. Dann habe ich die Frage falsch gestellt. Ich hatte ein "notify" oder "DOIF" erwartet, mit dem Du die Zeitsteuerung realisierst. Eigentlich müsste das ein Einzeiler sein.

Gruss

Andreas 

HannesK

Hallo ANdreas,

die Abfrage der Fernbedienung in FHEM sieht so aus:

define remo02.02_up DOIF ([remo02.02:?UpShort]) ( { Flurlicht_An( Value("flur.dimmer") ) } )

Gruß, Hannes

ak42

Versuch mal ein

attr remo02.02_up do always

hinzuzufügen.

Standardmässig wird das Kommando nur einmal beim ersten Wechsel in den Zustand ausgeführt.

Siehe auch hier: http://fhem.de/commandref_DE.html#DOIF_do_always

Das ganze müsste aber auch deutlich einfacher gehen:

define remo02.02_up DOIF ([remo02.02:"UpShort"]) (set fl.dimmer dim 25) (set fl.dimmer off)
attr remo02.02_up do always
attr remo02.02_up wait 0,600


Dann brauchst keine Perl-Funktion.

Doku dazu findest Du hier: http://fhem.de/commandref_DE.html#DOIF_wait

Gruss

Andreas

HannesK

Hallo Andreas,

vielen Dank. Genau das hat es gebracht. Bin neu bei FHEM und habe das übersehen.

Perl habe ich verwendet, weil ich mit der Syntax in FHEM beim Aneinanderhängen von Aktionen einfach nicht klar gekommen bin:

- mal ein Semikolon, mal zwei
- dann Anführungszeichen oder keine
- das "\"-Zeichen am Ende einer Zeile verschwand immer, sobald es in einem DOIF angezeigt wurde. Daraufhin habe ich alles in eine Zeile geschrieben was aber sehr unleserlich wurde...


Gruß, Hannes

rudolfkoenig

Zitat- mal ein Semikolon, mal zwei
Wenn man sich die Muehe macht das Einsteigerhandbuch zu lesen, oder gar http://fhem.de/commandref.html#command , dann sollte das einem klar sein.