...und wenn ich mir Post 264 und 269 anschaue bleibe ich bei meiner Frage: Wird 1031 neu gesetzt? In der 2. Box wird doch scheinbar 1045 gesetzt, nicht aber 1031. Der bleibt auf dem alten wert und bei Aktivierung wirkt der remanente Wert dort auf 8/4/0 in der 1. Ausgangsbox... wie gesagt, hatte gestern bei mir ein ähnliches Thema...
Ankündigung
Einklappen
Keine Ankündigung bisher.
LBS 19000141 - Beschattungssteuerung
Einklappen
X
-
Zitat von starwarsfan Beitrag anzeigenBist Du sicher, dass das die gleichen KOs sind? Mich wundert, dass dort links am Eingang "20" resp. "51" steht, rechts am Ausgang jedoch "19.60" resp. "50"!?
Kommentar
-
Zitat von saegefisch Beitrag anzeigen...und wenn ich mir Post 264 und 269 anschaue bleibe ich bei meiner Frage: Wird 1031 neu gesetzt? In der 2. Box wird doch scheinbar 1045 gesetzt, nicht aber 1031. Der bleibt auf dem alten wert und bei Aktivierung wirkt der remanente Wert dort auf 8/4/0 in der 1. Ausgangsbox... wie gesagt, hatte gestern bei mir ein ähnliches Thema...
1031 wird durch den Schieberegler gesetzt, 1045 wird durch die Rückmeldung des Aktors über KNX 4/4/0 gesetzt.
Kommentar
-
Stimmt, ich bin fündig geworden, habe nur noch keine Idee für eine Lösung...
Die Logik, die die Konvertierung % <-> binär macht wird von 2 Seiten gefüttert.
Zum einen schickt der Schieberegler einen Stellwert an 1031, zum anderen steht im Beschattungs-LBS eine 0 an (wenn nicht beschattet wird).
Diese 0 scheint nun bei Projektaktivierung geschickt zu werden bevor der remanente Stellwert des Schiebereglers zuschlägt.
Kommentar
-
ich habe vor ein paar Wochen einen hack eingebaut, um den Winkel der Lamellen zu korrigieren, wenn die sonne nicht senkrecht auf die Fassade scheint (siehe https://knx-user-forum.de/forum/proj...179#post993179).
Die paar Tage mit Sonne hat das gut funktioniert so dass ich das teilen möchte.
Code:/** * Calculate the shutter angle which is neccessary to prevent sun rays from * falling into the room based on current elevation together with width and * distance of shutter slats and angle offset. * * @param $E - The array with all the input values * @return float - Shutter angle in degrees */ function LB_LBSID_calculateShutterAngle($E) { $elevation = $E[4]['value']; $azimut = $E[5]['value']; $faccadeAngle = $E[6]['value']; $widthA = $E[9]['value']; $heightB = $E[10]['value']; $shutterAngleOffset = $E[11]['value']; $shutterType = $E[12]['value']; $minimalShutterAnglePercent = $E[35]['value']; $shutterStepping = $E[38]['value']; // correction for non-direct sun on the facade, // the apparent width of the shutter is larger $oldwidthA = $widthA; $widthA = $widthA / cos(deg2rad( $azimut - $faccadeAngle )) ; $angledifference = $azimut - $faccadeAngle; $cosfactor = cos(deg2rad( $azimut - $faccadeAngle )); LB_LBSID_debug(true, "Elevation correction: angle difference ${angledifference}°, old width ${oldwidthA} mm, cosinus factor ${cosfactor}, new width ${widthA} mm"); // The following is based on an oblique triangle // $alpha is the opposit angle of shutter slat width, // so this is the difference between $elevation and vertical $alpha = 90 - $elevation; // $beta is the opposit angle of shutter slat distance $beta = asin(sin($alpha / 180 * pi()) * $heightB / $widthA) * 180 / pi(); // $gamma is the angle between vertical and shutter slat $gamma = 180 - $alpha - $beta; // $shutterAngle is the difference between horizontal and shutter slat, // so this is the result of the calculation $shutterAngle = round(90 - $gamma); LB_LBSID_debug(true, "Elevation: ${elevation}°, resulting shutter angle: ${shutterAngle}° (without stepping and offset)"); // Add given shutter angle offset and define minimal shutter angle if ($shutterType == 0) { // 90° shutters $modifier = round($shutterStepping * 0.9); $shutterAngle = LB_LBSID_handleElevation($shutterAngle, $modifier, $elevation); // "-" = 0° = 0%, "\" = 90° = 100% $shutterAngle = $shutterAngle + ($shutterAngleOffset * 0.9); $minimalShutterAngle = $minimalShutterAnglePercent * 0.9; } else { // 180° shutters $modifier = round($shutterStepping * 1.8); $shutterAngle = LB_LBSID_handleElevation($shutterAngle, $modifier, $elevation); // "/" = -90° = 0%, "-" = 0° = 50%, "\" = 90° = 100% $shutterAngle = $shutterAngle + ($shutterAngleOffset * 1.8); $minimalShutterAngle = $minimalShutterAnglePercent * 1.8 - 90; } $shutterAngle = round($shutterAngle); // Check calculated angle against given minimal angle if ($shutterAngle < $minimalShutterAngle) { $shutterAngle = $minimalShutterAngle; } LB_LBSID_debug(true, "Elevation: ${elevation}°, resulting shutter angle: ${shutterAngle}°"); return $shutterAngle; }
Code:Elevation correction: angle difference -75.01869774572°, old width 80 mm, cosinus factor 0.25850381377232, new width 309.47319048245 mm Elevation correction: angle difference -33.61171570516°, old width 80 mm, cosinus factor 0.83280806710618, new width 96.060548834477 mm Elevation correction: angle difference -20.85761468782°, old width 80 mm, cosinus factor 0.93446812033792, new width 85.610197136602 m Elevation correction: angle difference -15.18547243168°, old width 80 mm, cosinus factor 0.96508294254, new width 82.894429560063 mm
Das Prinzip sollte passen - meinen Code muss ich noch etwas schöner machen...
Kommentar
-
Und dann habe ich gleich noch ein neues Problemchen:
Ich kann aus meinem Wohnzimmer den Sonnenuntergang am Horizont beobachten - und möchte dass die Beschattung erst danach runterfährt. Die Sensoren messen dann schon <50 lux und sind nicht mehr so genau. Daher habe ich mit dem Sonnenwinkel experimentiert.
If (Azimuth < -3) auf den Eingang "E20 Dämmerung aktiv"
Leider wird das trotz Trigger auf E1 nicht ausgewertet.
Ich vermute der Eingang ist nicht dazu gedacht dass er sich ändern kann - die Statemachine habe ich leider noch nicht überblickt.
Diese Funktion (if winkel < x usw) ist problemlos außerhalb aufgehoben und für alle Fenster gleich. Vielleicht ist das eine Idee für den nächsten Baustein, dass der Eingang das 1/0 direkt verarbeiten kann?
Kommentar
-
Das solltest Du aber mit der Elevation berechnen und nicht mit dem Azimut!
Aber wie auch immer, am aktuellen Baustein werde ich nach Möglichkeit keine größeren Umbauten mehr machen. Ich bin mitten in der Arbeit an einer komplett neuen Implementierung und damit sollte sowas kein Problem sein.
Was Du aber machen/testen kannst: Versuch es mal via dem Lock-Eingang!Kind regards,
Yves
Kommentar
-
starwarsfan zu erst einmal Danke für die tolle Arbeit! Habe mit deinem LBS bereits erste gute Erfahrungen gemacht im Test, macht Spaß! Bevor ich nun alle Rollos und Jalousien in edomi steuere und dazu einrichte wollte ich mal fragen wie dein Stand zum "NG" LBS ist?
Kommentar
-
Hallo und guten Abend miteinander,
zum Stand der Neuimplementierung kann ich im Moment nur sagen, dass es aufgrund der aktuellen Wetterlage recht langsam voran geht. Das ganze mit (m)einem Test-Setup durchzuspielen ist wesentlich aufwändiger, als den Baustein im Haus einzusetzen und die Reaktionen live zu beobachten und direkt darauf zu reagieren. Damit ich das am lebenden Objekt machen kann, brauchts eben schönes, sonniges und nach Möglichkeit leicht wechselhaftes Wetter. Das dann auch möglichst am Wochenende, wenn ich selber vor Ort bin. Von daher wird es wohl erst im Frühjahr bzw. Sommer wieder so richtig voran gehen.
Ich muss mal überlegen, ob ich eine Vorabversion veröffentliche. Dieser sollte dann aber zumindest die rudimentärsten Funktionen schon erfüllen...Kind regards,
Yves
Kommentar
-
Hallo zusammen,
meine neu erstellte Jalousiensteuerung geht direkt nach Projektaktivierung in den Modus "LBS Disabled", angeblich wurde manuell die Höhe verstellt. Erst nach Reaktivierung über E32 läuft der Baustein wieder (vgl. Bild). Der Trigger ist auf Init=1 , zusätzlich minütlich über SysKO zum Testen
Dies ist für mich nicht erklärbar, da sowohl Höhe (E33/A5), als auch Lamellenstellung (E34/A6) überein stimmen.
Wer hat eine Idee ? Danke Andreas
Auszug aus Logdatei:2017-02-17 18:52:47 946219 20996 INFO: LBS reactivated 2017-02-17 18:52:47 949193 20996 INFO: LBS disabled through external height change 2017-02-17 18:55:23 603683 20996 INFO: LBS reactivated
Verschattung.png
Kommentar
-
Zitat von ak68 Beitrag anzeigenmeine neu erstellte Jalousiensteuerung geht direkt nach Projektaktivierung in den Modus "LBS Disabled", angeblich wurde manuell die Höhe verstellt. Erst nach Reaktivierung über E32 läuft der Baustein wieder (vgl. Bild).Kind regards,
Yves
Kommentar
Kommentar