[QUOTE=Brownson;167362
IPSShadowing fährt die Beschattungselemente rein zeitgesteuert, wenn man also 50% anwählt, dann fährt die Beschattung 50% der eingestellten Zeit hinunter!
Ich möchte an dieser Stelle auch noch erwähnen, dass ich nur Jalousien habe und es mir für die Rollos an praktischen Erfahrungswerten mangelt.
Außerdem sollte man für eine genaue Positionierung der Rollos auch noch die Dicke der aufgewickelten Rollo einberechnen, was ich zur Zeit auch noch nicht mache…
Eventuell reicht es, wenn man für die Rollos die tatsächlichen Prozentwerte der Ansteuerung anpasst - zu finden sind diese in IPSShadowing_Device.class.php aktuell ab Zeile 360:
if ($ToBeMoved==c_MovementId_90) {
$SecNullToNew = $SecTotal*90/100;
$Position = 90;
} elseif ($ToBeMoved==c_MovementId_75) {
$SecNullToNew = $SecTotal*75/100;
$Position = 75;
} elseif ($ToBeMoved==c_MovementId_50) {
$SecNullToNew = $SecTotal*50/100;
$Position = 50;
} else {
$SecNullToNew = $SecTotal*25/100;
$Position = 25;
}
Die Frage ist also, wie viel Prozent der eingestellten Zeit benötigt das Rollo um zB auf 25%,50% usw. zu fahren?[/QUOTE]
Hallo
Hab diese Woche meinen ersten Rolladen „umgeruestet“. Da tritt ja gleich dieses Problem auf.
Gesamtlaufzeit 38 Sekunden. Um von „oben“ auf 50 Prozent zu kommen braucht der Rolladen
12 Sekunden , von „unten“ 26 Sekunden. Da ist die Steuerung mit 50% der Gesamtzeit natuerlich
„suboptimal“
Mein Loesungsvorschlag :
Folgender Eintrag in der Konfiguration :
c_Property_TimeClosing => '38,30,18,12,5',
100%|90%|75%|50%|25%
Ich hab mal in das Script IPSShadowing_Device testweise folgendes eingefuegt
$SecArray = explode(',',$DeviceConfig[$DeviceName][c_Property_TimeClosing]);
if ( count($SecArray) == 5 ) // Zeiten sind definiert
{
$SecArray100 = $SecArray[0];
$SecArray90 = $SecArray[1];
$SecArray75 = $SecArray[2];
$SecArray50 = $SecArray[3];
$SecArray25 = $SecArray[4];
if ( $Position == 100 )
$SecNullToNew = $SecArray100;
if ( $Position == 90 )
$SecNullToNew = $SecArray90;
if ( $Position == 75 )
$SecNullToNew = $SecArray75;
if ( $Position == 50 )
$SecNullToNew = $SecArray50;
if ( $Position == 25 )
$SecNullToNew = $SecArray25;
IPSLogger_Dbg(__file__,"SecNullToNew:".$SecNullToNew);
}
funktioniert zum runterfahren ,der einzelnen Positionen , eigentlich ganz gut.
Die ganze Logik der function CalcNextSteps() hab ich noch nicht ganz durchschaut,
aber so koennte man es machen.
Hochfahren ist irgendwie anders programmiert.
PS:
Warum gibt es im Webfront eigentlich nicht die 25% wie im Script ?