Fibaro Roller Shutter "kalibrieren"

Hallo Leute,

nachdem ich erstmal andere Sachen zu bekämpfen hatte im Zwave Netz wollte ich die Rolläden nach Prozent ansteuern. Dazu habe ich auch die Parameter 10 auf 0 gestellt. Bei einem Rolladen funktioniert das zumindest grob dass ich prozentual angeben kann, auf welche Position er fahren soll.

Dazu hab ich auch nach dem anlernen dieses 2 Mal hoch und runterfahren gemacht. Allerdings anscheinend verschieden. Muss ich solange auf dem Button hoch- bzw. runterfahren bleiben wie lang die Strecke ist oder nur kurz antippen den Taster und warten bis der Rolladen komplett gefahren ist und dann in die andere Richtung drücken?

Das lernen wird wohl auch nur am Anfang funktionieren oder kann ich das auch jetzt noch nachholen ohne das Modul zu resetten?

Um Hilfe wäre ich sehr froh dass ich das Kapitel auch mal abschließen kann :slight_smile:

Welchen hast denn?! Den 222 oder 221!?
Da gibt es eigentlich ein Parameter zum Starten der Kalibrierung.
Da sollte er einmal automatisch zu und wieder auffahren.
Hat bei mir bei den -222 problemlos funktioniert.
Gruß,
Peter

Mir welchem Befehl faehrt man den auf Prozent genau ?
Hab einen 222 seit ein paar Tagen und bei mir funktioniert noch nichtmal der Befehl

ZW_ShutterMoveUp(..)

auch nicht ueber die Konsole

Gerät inkompatibel mit Funktion ...............

Alles 221 … wie gesagt bei einem gehts wie gewünscht… Wahrscheinlich nicht so exakt wie beim 222 aber sollte grob gehen

@1007: ZW_DimSet

Danke.
Ist das richtig , dass die Befehle

ZW_ShutterMoveUp(..)  

etc nicht funktionieren und
die Buttons „Hochfahren“ „Runterfahren“ „Stop“.
Wenn ja wie stoppe ich mit einem ZW_DimSet ?

Also bei mir gehen die Befehle. Schon mal in der console probiert? Hast du da auch 10 command Klassen?

Ja.
Bei mir steht „13 unterstuezte Klassen“ und wenn ich in der Konsole HOCH/RUNTER fahren will kommt
auch die Meldung „Geraet inkompatible…“.
IPS-Version 3.20 #3494 .
:confused:
zw2.pngzw1.png

Hm da scheint es wohl Unterschiede zu geben zwischen 221 und 222… Bei mir sind es nur 10 Klassen beim 221

Hab eben nochmal im Z-Wave Konfigurator nachgesehen und dort steht das Teil
als Typ „Dimmer“ .
Und bei dir ?

Auch Dimmer. Es gab glaube ich mal was hier im forum mit einem workaround zu den 222 wenn ich mich recht erinnere. Bin am Handy da ist das suchen nicht so gut. Vielleicht schaust du da mal

Ja da hab ich mein Problem auch schon gepostet bevor ich auf diesen Thread gestossen bin.

Na dann noch mal zurück zu meinem Problem :slight_smile:

Wie habt ihr die Aktoren angelernt? Per Dauerdruck zur Laufzeit oder nur Start und Endpunkt?

Hi Skeal,

verstehe Deine Frage nicht ganz.

Anlernen (inkluden) war m.E. „dreimal sehr kurz hintereinander drücken“.

Betreiben tue ich sie in dem ich den gewollten Stand in Prozent angebe

ZW_DimSet($Aktor_Instanz, $Zielhoehe);

herbertf

Hallo Herbert,

danke für deine Antwort
ich meine damit das Kalibrieren des Aktors, dass diese % Angabe richtig funktioniert.

Dazu soll man ja nach inkludieren in das zwave Netz 2 mal hoch und runterfahren. Und genau dieser Vorgang ist mir nicht ganz klar, ob man auf etwas achten muss (duchgehend knopf drücken oder nur das runterfahren starten per tastendruck zB)

Ich habe momentan 4 Aktoren verbaut wovon 3 nicht nach % laufen. Jetzt weiß ich leider nicht, was ich beim 4. richtig gemacht habe :slight_smile: Parameter sind entsprechend richtig gesetzt

Hi,

da ich ja beide Typen habe, habe ich zwei unterschiedliche Scripts, diese sind zwar „Quick and Dirty“ - erledigen bei mir aber ihren Zweck problemlos:

  1. FGR221:
<?
//
    set_time_limit(30);
// Ermittlung betroffener Variablen
    $zimmer_variable=0;
    $var_found=false;    //wird benötigt für Zimmervariablenermittlung
    $Fehler=False; //dient der Überwachung ob Z_WAVE Befehler erfolgreich
    $startzeit= date('D, d.m.y H:i:s');
    $Par_ID=IPS_GetParent($_IPS['SELF']); //ID des Scriptes ermitteln
    $Name_Par_ID=IPS_GetName($Par_ID);
    IPS_LogMessage("Markisensteuerung $Name_Par_ID", "Kalibrierung gestartet FGR-Typ 221 (".$_IPS['SELF'].")");
    echo"Script gestartet: $Name_Par_ID - $Par_ID";
    $Timer_ID=@IPS_GetScriptTimer($_IPS['SELF']);
    $LetzteAutomatik = IPS_GetVariableIDByName("Automatisch bewegt", $Par_ID);
// Ermittlung Aktor und seine Variablen
   $aktoren_array=IPS_GetChildrenIDs($Par_ID);
    foreach ($aktoren_array as $value)        //durchsucht alle Objekte unter PAR_ID
        {
        $aktor_object_type=IPS_GetObject($value);
        $help2=$aktor_object_type['ObjectType'];
        $help1=IPS_GetName($value);
        // Ermittlung Zimmervariable
      If ($help2==2)       //Prüfung ob Objekt Variable
            {
            $zimmer_variable_1=IPS_GetVariable ($value);
            $help4=$zimmer_variable_1['VariableCustomProfile'];
            if ($help4=="Markise") $zimmer_variable=$value;
            if ($help4=="Markise-WG") $zimmer_variable=$value;
            //echo"
Help4=$help4";
            If ($var_found==false)           //damit nur eine Variable angezeigt wird
                {
                If ($zimmer_variable!=0) echo"
VariableCustomProfile=$help4   Zimmervariable-ID=$zimmer_variable";
            $var_found=true;
                }
            }
        // Ermittlung Aktorinstanz
      If ($help2==1)       //Prüfung ob Objekt Instanz
            {
            //If ($help2!=1) continue; //Abbruch der Schleife, dieses Element ist keine Instanz
            echo"
Aktor: $value  = (Typ$help2) (1=Instanz) ($help1)";
            $Aktor_Instanz=$value;
            }
        }
//
Switch ($_IPS['SENDER']) {
    Case "Execute":  {
            //Beginn Timer-Schleife
          IPS_SetScriptTimer($_IPS['SELF'], 5);
    break;
     }
    Case "TimerEvent":  {
         //Auswertung über Timer-Laufzeiten
         If (IPS_GetScriptTimer($_IPS['SELF'])==5)  {
             SetValue($LetzteAutomatik,False);
            IPS_SetScriptTimer($_IPS['SELF'], 61);   //61 damit Unterschied sichtbar
                //
                IPS_LogMessage("Kalibrierung Fibaro-Rolläden",$Name_Par_ID." Schritt: 1 nach oben");
                ZW_ShutterMoveUP($Aktor_Instanz); //Nach oben bewegen
                //
                break;
            }
            //
         If (IPS_GetScriptTimer($_IPS['SELF'])==61)  {
                //ZW_ConfigurationSetValue($id,$notificationStateChange, 1);
                ZW_ConfigurationSetValue($Aktor_Instanz ,10, 1);      //Parameter 10 auf 1 setzen
            IPS_Sleep(2000);
            IPS_SetScriptTimer($_IPS['SELF'], 62);   //19 damit Unterschied sichtbar
                //
                IPS_LogMessage("Kalibrierung Fibaro-Rolläden",$Name_Par_ID." Schritt: 2 Parameter 10 auf 1 setzen");
                break;
            }
            //
         If (IPS_GetScriptTimer($_IPS['SELF'])==62)  {
                //ZW_ConfigurationSetValue($id,$notificationStateChange, 1);
                ZW_ConfigurationSetValue($Aktor_Instanz ,10, 0);      //Parameter 10 auf 0 setzen
            IPS_Sleep(2000);
            IPS_SetScriptTimer($_IPS['SELF'], 63);   //19 damit Unterschied sichtbar
                //
                IPS_LogMessage("Kalibrierung Fibaro-Rolläden",$Name_Par_ID." Schritt: 3 Parameter 10 auf 0 setzen");
                break;
            }
            //
         If (IPS_GetScriptTimer($_IPS['SELF'])==63)  {
            ZW_ShutterStop($Aktor_Instanz); //Anhalten
            IPS_Sleep(2000);
            IPS_SetScriptTimer($_IPS['SELF'], 64);   //19 damit Unterschied sichtbar
                //
                IPS_LogMessage("Kalibrierung Fibaro-Rolläden",$Name_Par_ID." Schritt: 4 nach unten");
                ZW_ShutterMoveDown($Aktor_Instanz); //Nach unten bewegen                //
                break;
            }
            //
         If (IPS_GetScriptTimer($_IPS['SELF'])==64)  {
            ZW_ShutterStop($Aktor_Instanz); //Anhalten
            IPS_Sleep(2000);
            IPS_SetScriptTimer($_IPS['SELF'], 65);   //19 damit Unterschied sichtbar
                //
                IPS_LogMessage("Kalibrierung Fibaro-Rolläden",$Name_Par_ID." Schritt: 5 nach oben");
                ZW_ShutterMoveUP($Aktor_Instanz); //Nach oben bewegen                //
                break;
            }
            //
         If (IPS_GetScriptTimer($_IPS['SELF'])==65)  {
            ZW_ShutterStop($Aktor_Instanz); //Anhalten
            IPS_Sleep(2000);
            IPS_SetScriptTimer($_IPS['SELF'], 66);   //19 damit Unterschied sichtbar
                //
                IPS_LogMessage("Kalibrierung Fibaro-Rolläden",$Name_Par_ID." Schritt: 6 nach unten");
                ZW_ShutterMoveDown($Aktor_Instanz); //Nach unten bewegen                //
                break;
            }
            //
         If (IPS_GetScriptTimer($_IPS['SELF'])==66)  {
            ZW_ShutterStop($Aktor_Instanz); //Anhalten
            IPS_Sleep(2000);
            IPS_SetScriptTimer($_IPS['SELF'], 67);   //19 damit Unterschied sichtbar
                //
                IPS_LogMessage("Kalibrierung Fibaro-Rolläden",$Name_Par_ID." Schritt: 7 nach oben");
                ZW_ShutterMoveUP($Aktor_Instanz); //Nach oben bewegen                //
                break;
            }
            //
          //Letzter Schritt
          {
         ZW_ShutterStop($Aktor_Instanz); //Anhalten
           IPS_SetScriptTimer($_IPS['SELF'], 0);
                IPS_LogMessage("Kalibrierung Fibaro-Rolläden",$Name_Par_ID." beendet (Schritt: 7)");
             SetValue($LetzteAutomatik,True);
          break;
            }
            //
        }
        default: {
            //Beginn Timer-Schleife
          IPS_SetScriptTimer($_IPS['SELF'], 5);
        break;
        }
}
//
Ende_Script:
?>


  1. FGR222:
<?
// max. Scriptlaufzeit definieren
ini_set('max_execution_time', 90);  //war auf 90sek
$Par_ID=IPS_GetParent($_IPS['SELF']);
$Name_Par_ID=IPS_GetName($Par_ID);
//
// Ermittlung Aktor und seine Variablen
$aktoren_array=IPS_GetChildrenIDs($Par_ID);
foreach ($aktoren_array as $value)        //durchsucht alle Objekte unter PAR_ID
    {
    $aktor_object_type=IPS_GetObject($value);
    $help2=$aktor_object_type['ObjectType'];
    $help1=IPS_GetName($value);
    // Ermittlung Aktorinstanz
   If ($help2==1)       //Prüfung ob Objekt Instanz
        {
        echo"
Aktor: $value  = (Typ$help2) (1=Instanz) ($help1)";
        $Aktor_Instanz=$value;
        }
    }
//
//
ZW_ConfigurationSetValue($Aktor_Instanz,29,1);  //default //FGR222 fährt allein "Forced Roller Shutter Calibration
IPS_LogMessage("Markisensteuerung $Name_Par_ID", "Kalibrierung gestartet FGR-Typ 222 (".$_IPS['SELF'].")");
Ende_Script:
?>

Ich habe diese jetzt einfach kopiert ohne „aufzuhübschen“…

Aufrufen tue ich sie von der gleichen Ebene wo auch die Aktoren sind (bei mir alles unter einer Dummy-Instanz)

herbertf

ich hab bei mir die struktur so:

wohnung
wohnzimmer

rolladengruppe

[INDENT]rolladen1[/INDENT]

[INDENT]rolladen2[/INDENT]

[INDENT]rolladen3[/INDENT]

schlafzimmer

rolladengruppe

[INDENT]rolladen1[/INDENT]

ich lege dann das script an unterhalb der jeweiligen rolladengruppe und starte es einfach und das script nimmt die kalibrierung selber vor?

in dem Fall müsstest Du es wahrscheinlich schon noch ein wenig anpassen … probier es aus

Ich habe jetzt den Strom kurz weggenommen von den Modulen und gleich danach 2 mal hoch und runtergefahren mit gedrücktem Taster. Jetzt geht das ansprechen. Danke für die Hilfe in dem Thread!