Fibaro FGR 221

Hallo,

ich brauche einen externen IMPULS ;-)))

Habe einen FGR221 experimentell aufgebaut, in das Z-WAVE-NW eingelernt. Assoziationen gemacht.

Ich kann ihn auch über das Instanz-Fenster schalten (komischerwesie funkt Schalter und Helligkeit und Rolladen), allerdings fährt („schaltet“) er nur für da. 2,5sec. Erneutes ansteuern in gleicher Richtung bewirkt nur kurzen Impuls. Nach „Fahrt“ in anderer Richtung (auch 2,5sec) kann wieder 2,5sec in die ursprüngliche gefahren werden.

Aus dem „Bauch“ würde ich sagen, im FGR221 ist eine Laufzeit hinterlegt. ICH KANN ABER NICHTS FINDEN UNTER den Parametern…

Ich hatte vergeblich eine Zeit gesucht, leider wird diese scheinabr beim Anlernen vergeben, bei mir sollen die Zeiten ja über IPS kommen.

Daher bin ich froh über PARAMETER 10 - hier kann man die „Shutter positoning function“ ausstellen

hallo,
bist du weiter gekommen?
ein meiner fibaros fährt mit parameter 10 auf 0 korrekt.
ein anderer fährt auch immer nur paar sekunden. ich vermute der zweite. hat die auf und ab zeiten falsch eingelernt.
weisst du wie man die neu einlernen kann?

Hallo,

wie ich hier schon schrieb, habe ich [i]"…jetzt auch wieder den PARAMETER 10 „Turning on the shutter positioning function“ wieder auf on (0) gestellt.

Jetzt werden auch manuelle („am Schalter“) vorgenommene Änderungen richtig angezeigt, die Intensity zeigt den Stand in % korrekt an…"[/i]

Einfach danach ganzen Bereich durchfahren über Bedienung des Z-WAVE-AKtors.

Hallo,

also wie gesagt, bei mir war es auch der Fall, dass mit Parameter 10 auf 0 die Jalousie nur ein paar Sekunden fährt und dann anhält. Bei Parameter 10 = 1 fährt sie komplett allerdings zigt der Dimmer nicht die korrekte Position an. Ich gehe davon aus, dass der interne Zeitgeber falsch eingestellt ist.

Wie hast du den ganzen Bereich durchgefahren nach Umstelleung 10=0 ?

hiermit:

Hallo herbertf,

wenn ich mit dem AN/AUS bzw. Hochfahren / Runterfahren den Bereich abfahren möchte, dann fährt die Jalousie immer nur kurz Bzw. zuckt und bleibt stehen bei Parameter 10 = 0.
Damit kann ich ja nicht den ganzen Bereich fahren.

Also bei mir hat das definitiv so funktioniert, es kann allerdings sein, so war glaube ich auch mein POst, dass ich das Hoch- und Runterfahren mit Par10=1 durchgeführt habe.
Das Rückstellen auf Par10=0 bringt nur - den für mich wesentlichen - Vorteil, der dann korrekten %-Darstellung.
Probier bitte dies mal so: erst Par10 auf 1, dann Markise durchfahren, dann wieder par zurück.

Hallo zusammen,

vermutlich liegt das Problem an der Jalousie. Wenn ich michrichtig erinnere hat damals der Installateur 2 Motoren irgendwie mit einem Schalter verbunden. Vermutlich liegt es eben an diesem Schalter.

Ich habe das gleiche Problem. Bei mir hängen 2 Trennrelais zusätzlich am Schalter, und bei Shutter Positioning Function (Parameter 10) auf 0 läuft der Rollo nur 2 Sekunden, bei Param 10=1 kann ich nur ganz auf oder ganz zu fahren.

Habt Ihr hierfür mittlerweile eine Lösung gefunden?

nein, ich nutze für diese eine jalousie das shutter control.

Kannst Du Dein shutter control script, das mit den Fibaros funktioniert bitte mal posten? Danke.:smiley:

ja, ich musste auch erstmal etwas programmieren, bis es ging:

<?
//Variables provided by ShutterControl Module
//IPS_LogMessage("InstanceID", $_IPS['INSTANCE']); /* InstanceID */
//IPS_LogMessage("Direction", $_IPS['DIRECTION']); /* {0..2} Stop, Up, Down */
//IPS_LogMessage("Duration", $_IPS['DURATION']); /* ms */

if($_IPS['SENDER'] != "ShutterControl")
    die("This script can only be started by the ShutterControl Module");

define("SC_DIRECTION_STOP", 0);
define("SC_DIRECTION_UP", 1);
define("SC_DIRECTION_DOWN", 2);

$instance = IPS_GetInstance($_IPS['INSTANCE']);
switch($instance['ModuleInfo']['ModuleID'])
{
    case "{48FCFDC1-11A5-4309-BB0B-A0DB8042A969}": //FS20
        $running = CreateVariableByName($SC_INSTANCE, "Moving", 0);
        $value = GetValue(IPS_GetStatusVariableID($_IPS['INSTANCE'],"StatusVariable"));
        switch($_IPS['DIRECTION'])
        {
            case SC_DIRECTION_STOP:
                if(GetValue($running))
                {
                    FS20_SwitchMode($_IPS['INSTANCE'], $value);
                    SetValue($running, false);
                }
                break;
            case SC_DIRECTION_UP:
                if(!GetValue($running))
                {
                    FS20_SwitchMode($_IPS['INSTANCE'], true);
                    SetValue($running, true);
                }
                if($SC_DURATION > 0)
                {
                    IPS_Sleep($_IPS['DURATION']);
                    FS20_SwitchMode($_IPS['INSTANCE'], true);
                    SetValue($running, false);
                }
                break;
            case SC_DIRECTION_DOWN:
                if(!GetValue($running))
                {
                    FS20_SwitchMode($_IPS['INSTANCE'], false);
                    SetValue($running, true);
                }
                if($SC_DURATION > 0)
                {
                    IPS_Sleep($_IPS['DURATION']);
                    FS20_SwitchMode($_IPS['INSTANCE'], false);
                    SetValue($running, false);
                }
                break;
        }
        break;
    case "{1B7B5B7D-CAA9-4AB5-B9D8-EC805EC955AD}": //xComfort
        switch($_IPS['DIRECTION'])
        {
            case SC_DIRECTION_STOP:
                MXC_ShutterStop($_IPS['INSTANCE']);
                break;
            case SC_DIRECTION_UP:
                MXC_ShutterMoveUp($_IPS['INSTANCE']);
                if($_IPS['DURATION'] > 0)
                {
                    IPS_Sleep($_IPS['DURATION']);
                    MXC_ShutterStop($_IPS['INSTANCE']);
                }
                break;
            case SC_DIRECTION_DOWN:
                MXC_ShutterMoveDown($_IPS['INSTANCE']);
                if($_IPS['DURATION'] > 0)
                {
                    IPS_Sleep($_IPS['DURATION']);
                    MXC_ShutterStop($_IPS['INSTANCE']);
                }
                break;
        }
        break;
    case "{2D871359-14D8-493F-9B01-26432E3A710F}": //LCN
        $type=LCN_GetUnit($_IPS['INSTANCE']);
        switch($type)
        {
            case 0: //Ausgänge
                switch($_IPS['DIRECTION'])
                {
                    case SC_DIRECTION_STOP:
                        LCN_SetIntensity($_IPS['INSTANCE'],0,0);
                        LCN_SetIntensity($_IPS['INSTANCE2'],0,0);
                        break;
                    case SC_DIRECTION_UP:
                        LCN_SetIntensity($_IPS['INSTANCE'],100,4);
                        if($_IPS['DURATION'] > 0)
                        {
                        IPS_Sleep($_IPS['DURATION']);
                        LCN_SetIntensity($_IPS['INSTANCE'],0,0);
                        }
                        break;
                    case SC_DIRECTION_DOWN:
                        LCN_SetIntensity($_IPS['INSTANCE2'],100,4);
                        if($_IPS['DURATION'] > 0)
                        {
                        IPS_Sleep($_IPS['DURATION']);
                        LCN_SetIntensity($_IPS['INSTANCE2'],0,0);
                        }
                        break;
                }
                break;
            case 2: //Reais
            switch($_IPS['DIRECTION'])
            {
                case SC_DIRECTION_STOP:
                    LCN_SwitchRelay($_IPS['INSTANCE'],false);
                    break;
                case SC_DIRECTION_UP:
                    LCN_SwitchRelay($_IPS['INSTANCE'],true);
                    LCN_SwitchRelay($_IPS['INSTANCE2'],false); // Um Relaisrichtung zu ändern bitte auf true
                    if($_IPS['DURATION'] > 0)
                    {
                        IPS_Sleep($_IPS['DURATION']);
                        LCN_SwitchRelay($_IPS['INSTANCE'],false);
                    }
                    break;
                case SC_DIRECTION_DOWN:
                    LCN_SwitchRelay($_IPS['INSTANCE'],true);
                    LCN_SwitchRelay($_IPS['INSTANCE2'],true);// Um Relaisrichtung zu ändern bitte auf false
                    if($_IPS['DURATION'] > 0)
                    {
                        IPS_Sleep($_IPS['DURATION']);
                        LCN_SwitchRelay($_IPS['INSTANCE'],false);
                    }
                    break;
            }
            break;
        }
        break;
        
    case "{101352E1-88C7-4F16-998B-E20D50779AF6}": //Z-Wave Shutter
        switch($_IPS['DIRECTION'])
        {
            case SC_DIRECTION_STOP:
					 ZW_ShutterStop($_IPS['INSTANCE']);
                break;
            case SC_DIRECTION_UP:
					 ZW_ShutterMoveUp($_IPS['INSTANCE']);
				    if($_IPS['DURATION'] > 0){
						  IPS_Sleep($_IPS['DURATION']);
							ZW_ShutterStop($_IPS['INSTANCE']);
					 }
                break;
            case SC_DIRECTION_DOWN:
                ZW_ShutterMoveDown($_IPS['INSTANCE']);
				    if($_IPS['DURATION'] > 0){
						  IPS_Sleep($_IPS['DURATION']);
							ZW_ShutterStop($_IPS['INSTANCE']);
					 }
                break;
        }
        break;
        
    case "{9317CC5B-4E1D-4440-AF3A-5CC7FB42CCAA}": //1-Wire Shutter
        switch($_IPS['DIRECTION'])
        {
            case SC_DIRECTION_STOP:
                OneWireShutter($_IPS['INSTANCE'], 0, $_IPS['DURATION']);
                break;
            case SC_DIRECTION_UP:
                if($_IPS['DURATION'] == 0)
                    $_IPS['DURATION'] = 120000;
                OneWireShutter($_IPS['INSTANCE'], 0, $_IPS['DURATION']);
                break;
            case SC_DIRECTION_DOWN:
                if($_IPS['DURATION'] == 0)
                    $_IPS['DURATION'] = 120000;
                OneWireShutter($_IPS['INSTANCE'], 1, $_IPS['DURATION']);
                break;
        }
        break;
        
    case "{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}": //Homematic Shutter
        switch($_IPS['DIRECTION'])
        {
            case SC_DIRECTION_STOP:
                HM_WriteValueBoolean($_IPS['INSTANCE'], "STOP", true);
                break;
            case SC_DIRECTION_UP:
                HM_WriteValueFloat($_IPS['INSTANCE'], "LEVEL", 1.0);
                if($_IPS['DURATION'] > 0)
                {
                    IPS_Sleep($_IPS['DURATION']);
                    HM_WriteValueBoolean($_IPS['INSTANCE'], "STOP", true);
                }
                break;
            case SC_DIRECTION_DOWN:
                HM_WriteValueFloat($_IPS['INSTANCE'], "LEVEL", 0.0);
                if($_IPS['DURATION'] > 0)
                {
                    IPS_Sleep($_IPS['DURATION']);
                    HM_WriteValueBoolean($_IPS['INSTANCE'], "STOP", true);
                }
                break;
        }
        break;
    default:
        die("No Handler for Module ".$instance['ModuleInfo']['ModuleName']." found");
}

function OneWireShutter($ins, $dir, $sec) {
    @TMEX_F29_SetStrobe($ins, True);
    $res = ($dir * 128) + ($sec / 1000);
    @TMEX_F29_SetPort((integer)$ins, (integer)$res);
}

function CreateVariableByName($id, $name, $type)
{
    $vid = @IPS_GetVariableIDByName($name, $id);
    if($vid===false) {
        $vid = IPS_CreateVariable($type);
        IPS_SetParent($vid, $id);
        IPS_SetName($vid, $name);
        IPS_SetInfo($vid, "This Variable was created by Script #".$_IPS['SELF']);
    }
    return $vid;
}
?>

Darf ich den Thread nochmal öffnen?
Ich habe bei mir das Problem, dass meine Rollladen-Aktoren - egal wie ich den Parameter 10 einstelle (0 od. 1) - immer die Rollladen ganz hoch oder ganz runter fahren:(
Die Dinger haben den Fertigungszeitraum Sept./Okt. 2012 und die Firmware v1.7 (lt. Manual).
Etwas früher gekaufte (Prod. Feb./März 2012) haben v1.6 .

Folgenden Effekt beobachte ich in IPS:

  • Roll. oben und ruht -> Status: An, Intensity: 100%
  • fährt manuell nach unten -> Status: An, Intensity: 100%
  • unten angekommen -> Status: An, Intenstíty: 100%
  • versuche ich ihn sofort wieder nach oben zu fahren, passiert am Roll. nichts aber -> Status: Aus, Intensity: 0%
  • ein wiederholtes Tasten nach oben ändert daran nichts, auch nicht, wenn er oben angekommen ist
  • versuche ich ihn gleich wieder nach unten zu fahren, passiert (wie eben) am Motor nichts, aber -> Status: An, Intensity: 100%
  • erst beim zweiten Mal tasten fährt er dann wirklich runter
    (Alle Aktionen direkt am Aktor ausgeführt)

Wenn ich einige Minuten (ca. 3?) warte und den Taster bediene, macht er sofort was er soll - Intensity allerdings nur 0 oder 100%, und dabei ist egal (wie anfangs erwähnt), wie ich Parameter 10 einstelle.
Auch ändert sich in IPS erst nach ca. 3 Minuten der Status bzw. die Intensity (aber keinesfalls sofort).

Ich habe auch noch drei ältere Fibaros (Prod. 2011, Firmware ?), welche allerdings an Mehrfach-Relais hängen und zwei Motoren steuern.
Hier habe ich den von euch beschriebenen Effekt, dass die Motoren beim Par. 10 (0) nur kurz anlaufen, bei (1) laufen sie durch und zeigen aber auch nur 0% oder 100% an.

Da war meine Vermutung, dass es evtl. mit der Firmware zusammenhängen könnte.
Hat von Euch auch schon jemand so etwas beobachtet?

Gurke13

Hallo,

wie ich schon schrieb:

war m.E. dies der Trick.

Auf alle Fälle gebe ich jetzt den Wert direkt vor (Bsp: für Hochfahren:

ZW_DimSet($Aktor_Instanz, 100)

)

Ich habe eine 1% Abweichung vom Sollwert (z.B. 75% die Jalousie fährt je nach Richtung auf 74 bzw 76%), dies korrigiere ich nachträglich per Script.

Warum man bei dieser direkten Vorgabemöglichkeit (in %) auf das Shuttercontrol-Script (mit Zeiten) zurückgreifen sollte, erschließt sich mir -momentan- nicht.

Vor allem eine manuelle Bedienung (per Taster) am FGR221 liefert ja auch die korrekten Prozentwerte ;-))))))))))

Hallo herbertf,

das mit dem Par=10 auf 1 und wieder auf 0 stellen hatte ich ja bereits hoffnungsvoll berücksichtigt, leider hat sich eben bei meinen Devices, die kein Relais dahinter haben, nichts geändert, was mich ja auch verwundert hat.

Auf alle Fälle gebe ich jetzt den Wert direkt vor (Bsp: für Hochfahren:
Code:
ZW_DimSet($Aktor_Instanz, 100)
)

so funktioniert es bei mir auch, wobei meine Abweichung erheblich größer ist-
bis 30% passiert gar nichts, 40%=lüften, 50%=10cm hoch, 75%=halb offen, 90%=ca. 10cm höher, 100%=oben
->irgendwie seltsam!
Wenn man es weiß, kann man aber damit arbeiten und die Scripte entspr. anpassen.

Vor allem eine manuelle Bedienung (per Taster) am FGR221 liefert ja auch die korrekten Prozentwerte ;-)))))))))
eben das ist ja bei mir nicht so, ich habe nur 0 und 100%, Par=10 wird irgendwie ignoriert:confused:

Mal noch 'ne blöde Frage: Was machen denn Deine Variablen „NumPing“ und „PingTime“:slight_smile:

Ich werde mir jedenfalls auch für alle Werte passende Variablen bauen - wieder etwas dazu gelernt (danke für den Screenshot).

Gurke13

Dies erscheint mir für ein Scriptfix deutlich zu hoch! Ich vermute, mit dem korrekten durchfahren mit Paramter 10 hat nicht sauber funktioniert. Definitv muss an den Enden 0% und 100% sein und zwischendurch sich die Prozente „vernünftig“ ändern.

Die sind von der Optimierung des Z-Wave-Netzes - damit würde ich an Deiner Stelle (wenn überhaupt) auf jeden Fall erstz beginnen, wenn Du vernünftige Werte (in %) von Deinen Fibaros bekommst.
Hierzu würde ich Par10 testen und DIREKT mit Schalter (bzw. Drahtbrücke) an den Fibaros nach OBEN bzw UNTEN fahren - dass muss gehen!

Dann werde ich mich da wohl nochmal kurzfristig ransetzen, evtl. Heute Abend.

Heute ist ja nun der 15.03. - hast DU irgendeinen Status -oder- kann ich davon ausgehen, dass es jetzt bei Dir auch funktioniert ???

sorry für die lange Leitung …

Ich habe Heute noch einmal intensiv getestet.
Folgende Effekte sind mir aufgefallen:
Alle Fibaros, an denen ein Relais (für zwei Rollläden) dahinter hängt, funktionieren nur mit Par10=1 (0 bewirkt nur ein kurzes Anlaufen), allerdings damit nur ganz hoch oder ganz runter (0% oder 100%, getestet mit ZW_DimSet).
Bei den anderen 8 Stück, welche direkt am Motor hängen ist es komischerweise auch unterschiedlich - bei 6 Modulen geht es, wenn ich Par10=0 einstelle, dann wird mir auch die Position in % angezeigt; bei 2 Modulen geht es aber eben nicht.
Bei diesen kann ich nur auf 0% oder 100% fahren, alle anderen Werte bewirken nichts:confused:
Es sind aber bei allen 8 Devices die Parameter 10 und 14 identisch konfiguriert.
An der Firmware kann es auch nicht liegen, die ist bei denen, die funktionieren (und die die nicht funktionieren) identisch.
Einen kompletten Reset habe ich aber noch nicht versucht, verspreche mir aber auch nicht allzu viel davon.

Weiß eigentlich jemand, ob man die Dinger flashen kann, ich habe dazu leider nirgends etwas gefunden.
Mittlerweile verkauft ja Fibaro die FGR-221 mit der Firmware v1.10 (ich habe v1.4 bis 1.7).

Gurke13