Beschattungssteuerung für UNIRoll

Begonnen von C_Herrmann, 27 März 2013, 21:34:16

Vorheriges Thema - Nächstes Thema

C_Herrmann

Hallo,

der Sommer naht und ich möchte gern die Beschattungssteuerung für meine UniRoll Rolläden vereinfachen. Bislang benutze ich einen FS20SM8, wie in meinem Wiki-Artikel beschrieben.

Jetzt habe ich mal das UNIRoll-Modul ausprobiert. Es funktioniert gut. Leider gibt es aber kein on/off-for-timer, so dass keine Zwischenpositionen einstellbar sind. Natürlich könnte man dies mit einem "down sleep(x) stop" nachbilden. Aber einfacher wäre es, diese Funktionalität in das Modul zu integrieren.

Nach einigen Versuchen habe ich eine einfache Lösung gefunden. Wenn man einen zusätzlichen Zahlenwert an up oder down anhängt, wird nach dieser Zeit ein Stop gesendet.
Z.B. "set UniRollo down 12" sendet down und 12 Sekunden später ein Stop.

Die notwendigen Änderungen im Modul könnten so aussehen:

Zeile 100:  my $name = $a[0];            # Gerätename
  my $zwert = $a[2];           # Zahlenwert für "down/up $zwert" in Sek.
Zeile 101:  if(!defined($c)) {

 
Zeile 129:  # XMIT: Gerätegruppe, BTN: Kanalnummer, c: Commando
  if($na eq 3) {
    sleep($zwert);
    IOWrite($hash, "","G0030A364242464".$hash->{XMIT}.$hash->{BTN}.$stop);
  }
Zeile 130:

  ###########################################

"Zeile xxx:" bedeutet, dies sind die Original-Zeilen, zwischen die meine Erweiterung eingefügt werden müsste.

Was noch fehlt ist, dass der zusätzliche Parameter auf eine Zahl getestet wird. Außerdem führt das Perl-sleep() zum Einfrieren des Browers für die eingestellte Pause.

Es wäre schön, wenn jemand, der Erfahrung mit der Programmierung von Modulen hat, meine Idee auf Machbarkeit prüft und ggf. die entsprechenden Änderungen im SCM durchführt.

Viele Grüße,
Christian
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen