Hmm, scheint nicht viele Leute zu geben die einen FROLL einsetzen 
Hatte mich sogar gefreut das der RSU die Kretsche gemacht hat, will die FS20 Dinger langsam loswerden!
Also habe ich mich heute morgen mal wissenschaftlich betätigt und für mich eine Lösung gebastelt die ich zwar nicht erfüllend finde aber bis jetzt funktioniert!
Eigentlich braucht mein Rollladen 30 Sekunden zum Runterfahren und 25 Sekunden zum Rauffahren. Hatte das initial auch in der CCU eingestellt, was aber zu dem Effekt führte das der Rolladen nie richtig hochgefahren wurde.
Habe jetzt beides auf 30 Sekunden und damit funktioniert es komischer Weise sehr gut.
-
Versuch war dann die Zeiten zu messen bis der Rolladen die Positionen 25%, 50%, 75% und 99% erreichen. Irgendwie hat das aber fürs Hoch- und Runterfahren so unterschiedliche Werte gebracht, was mich dann irgendwie nicht weiter gebracht hat 
-
Versuch war dann den Rolladen in die einzelnen Positionen zu fahren (habe mit Klebestreifen Markierungen an der Tür angebracht
) und dann zu schauen was der LEVEL Wert vom Kanal 3 anzeigt. Die waren dann egal von welcher Richtung annähernd gleich (100% immer bei der korrekt Position zu stoppen ist nicht so einfach
)
Diese Werte waren natürlich nicht gleich 25%, 50%, 75% usw. sondern waren geringer. Das brachte mich dann auf die Idee ein Mapping per Script zu basteln.
Das Mapping sieht bei mir folgendermaßen aus:
[ul]
[li]25% sind real 15%
[/li][li]50% sind real 30%
[/li][li]75% sind real 50%
[/li][li]99% sind real 70%
[/li][/ul]
Damit ich nicht die ObjetIDs manuell im Script pflegen muss, habe ich eine Variable unterhalb des Kanal 4 angelegt (parallel zu Systemvariable LEVEL). Das Script fragt dann nach dem Parent und setzt das Level via HM_WriteValueFloat.
<?
################################################################################
# Scriptbezeichnung: HM.ShutterActuator.ips.php
# Version: 20180722
# Author: Heiko Wilknitz (@pitti)
#
# Homematic IP Shutter Actuator (HmIP-FROLL) Steuerscript
#
################################################################################
if ($_IPS['SENDER'] == "WebFront") {
// HmIP Instance herausfinden
$pid = IPS_GetParent($_IPS['VARIABLE']);
// Standard auf AUF setzen
$pos = 0;
// Positon übersetzen
switch($_IPS['VALUE']) {
case 0:
break;
case 25:
$pos = 0.15;
break;
case 50:
$pos = 0.3;
break;
case 75:
$pos = 0.5;
break;
case 99:
$pos = 0.7;
break;
default:
$pos = 1.0;
}
// Rollladen ansteuern
$ret = HM_WriteValueFloat($pid, "LEVEL", $pos);
// Im Erfolgsfall Aktion übernehmen
if($ret == TRUE) {
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}
}
?>
Finde ich noch nicht ganz so genial, weil ich ungern Systemvariablen und Steuervariablen mische - aber vielleicht fällt mir oder Euch noch was besseres ein!
Generell frag ich mich aber wie das funktionieren soll!? Anscheinend nimmt man die Zeit und berechnet die Position linear dazu, also bei 30 Sekunden müsste die Hälfte nach 15 Sekunden erreicht sein. Das ist aber bei Rolläden niemals der Fall (jedenfalls nicht bei meinen) da die Lamellen ja während der Fahrt „auseinandergezogen sind“ und wenn sie unten aufkommen wieder zusammengeschoben werden. Soll man das über Verzögerung, Behanghöhe oder sonst was einstellen?
Vielleicht hilft es ja wieder dem ein oder anderen bei seinen Überlegungen!
Viel Spaß
Pitti