Ablaufsteuerung für Rollladen

Werte Forenmitglieder,

bitte helft mir bei einem kleinen Script.

Kurz zur Erklärung:

Ich nutze für alle meine Rollläden das Somfy Oximo WT Antriebssystem. Eingespeichert ist eine fixe obere Endlage und eine über Drehmomenterkennung untere Endlage. Durch physikalische Einflüsse kann sich im Laufe der Zeit die obere fixe Endlage ein wenig verstellen und muss neu justiert werden. Dies ist möglich mit einem unverriegelten Taster, z.B. ein normaler Ein/Aus Schalter aus dem Baumarkt. Dieser Schalter wird dann an das Montagekabel des Antriebssystem angeschlossen und durch bestimmte zeitliche Ein/Aus Folgen wird das Antriebssystem in den Programmiermodus versetzt. Danach kann die fixe obere Endlage eingestellt werden.

Dieses Verfahren ist aufwendig und hat den Nachteil, dass ich immer an die Unterputzdose in der Nähe jedes Rollladen muss. Leider ist eine Tapete drüber, die ich zerschneiden müsste.

OK, nun benötige ich ein einfaches Script, welches ich manuell auslösen möchte. Inhalt muss so aussehen:

  1. Ein Befehl Rollladen hochfahren für 5 Sekunden
  2. Stop Befehl
  3. Ein Befehl Rollladen hochfahren für 7 Sekunden
  4. Stop Befehl
  5. Ein Befehl Rollladen hochfahren

Danach reagiert der Rollladen mit einer Auf/Ab Bewegung und signalisiert den Programmiermodus. Erfolglos versucht habe ich folgendes:


if{
    //An Befehl
    EIB_Move(12345, 0);
 
    //Timer einschalten
    IPS_SetScriptTimer($_IPS['SELF'], 5);
} if {
    //An Befehl
    EIB_Move(12345, 0);
 
    //Timer einschalten
    IPS_SetScriptTimer($_IPS['SELF'], 7);
}else {
    //Aus Befehl
    EIB_Move(12345, 3);
 
    //Timer ausschalten
    IPS_SetScriptTimer($_IPS['SELF'], 0);
}

    //letzter Ein Befehl
    EIB_Move(12345, 0);


Hallo schulzenman,

da du das Skript ja nicht häufig verwenden wirst und es auch nur von Hand starten wirst würde ich in diesem Fall mit Sleep arbeiten.

<?

 //Programmiermodus anschalten:

 //Variablen:

 $RolloID   =   12345;
 $auf       =   1;
 §stop      =   2;
 $ab        =   0;

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

EIB_Move($RolloID,$auf);    //auf
IPS_Sleep(5000);            // 5 sec warten
EIB_Move($RolloID,$stop);   //Stop
IPS_Sleep(500);            // 0,5 sec warten
EIB_Move($RolloID,$auf);    //auf
IPS_Sleep(7000);            // 7 sec warten
EIB_Move($RolloID,$stop);   //Stop
IPS_Sleep(500);            // 0,5 sec warten
EIB_Move($RolloID,$auf);    //auf 

?>

Hallo Isi,

das von Dir erstellte Script funktioniert. Lediglich bei den Parametern für die Bewegungsrichtungen „$auf“ und „$ab“ hast Du einen falschen Wert angegeben. Habe ich aber schnell rausbekommen und geändert :slight_smile:

So nutze ich jetzt das Script:

<?

 //Programmierung einschalten:

 //Variablen:

 $RolloID   =   37603;
 $auf       =   0;
 $stop      =   2;
 $ab        =   4;

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

EIB_Move($RolloID,$auf);    //auf
IPS_Sleep(5000);            // 5 sec warten
EIB_Move($RolloID,$stop);   //Stop
IPS_Sleep(500);            // 0,5 sec warten
EIB_Move($RolloID,$auf);    //auf
IPS_Sleep(7000);            // 7 sec warten
EIB_Move($RolloID,$stop);   //Stop
IPS_Sleep(1000);            // 1 sec warten
EIB_Move($RolloID,$auf);    //auf 
IPS_Sleep(9000);            // 9 sec warten
EIB_Move($RolloID,$stop);   //Stop

?> 

Vielen Dank.

Gruß schulzenman