Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS 19000141 - Beschattungssteuerung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MrMirror
    antwortet
    Hier mal ein Auszug aus meiner soeben geschriebenen Hilfe für meinen "vorgeschalteten LBS". Ich glaube ja fast nicht, dass das für noch mehr Leute interessant ist, da der Baustein schon sehr speziell an meine Bedürfnisse angepasst ist, finde ich zumindest:
    Code:
    ###[HELP]###
    Dieser Baustein wird dem "LBS 19000141 Beschattungssteuerung" vorgeschaltet und steuert diesen, je nach vorherschenden Bedingungen (Temperatur, Vorhersage, Uhrzeit, etc.) entsprechend.
    
    Es gibt 4 Betriebsarten:
    1=Auto: Hier wird alles vollautomatisch gesteuert.
    2=Sichtschutz: Hier bleibt der Raffstore geschlossen, lediglich die Lamellen werden verfahren.
    3=Hitzeschutz: Hier wird keine Bewegung automatisch ausgeführt, lediglich zum Hitzeschutz (Isttemp. > Soll UND Sonne...) wird die Beschattung aktiviert.
    4=Hand: Hier wird keine Bewegung automatisch ausgeführt, der LBS ist deaktiviert.
    
    Die Dämmerungssteuerung wird lediglich von 0:00 bis 5:59 gesperrt, ansonsten nur abhängig von der Betriebsart.
    
    Die Beschattungssteuerung wird bei einer Temperaturvorhersage von >20°C für den Tag unten gelassen, lediglich die Lamellen werden geöffnet. Ist die Vorhersage kleiner, wird zunächst komplett geöffnet.
    Beschattet wird, sobald die Isttemperatur > Solltemperatur UND Sonne auf der Fassade UND die Außentemperatur > 15°C UND Sommer.
    
    E1: Sonne: Eingang wird mit dem A1 (Sonne) des LBS 19000141 verbunden bzw. einem entspr. KO, so lange die Sonne auf der Fassade ist.
    E2: Temp.Vorhersage: Hier wird die vorhergesagte Tageshöchsttemperatur (über ein KO) eingegeben.
    E3: Temp.Soll: Hier wird die eingestellte Solltemperatur im Raum (über ein KO) eingegeben.
    E4: Temp.Ist: Hier wird die aktuelle Isttemperatur des Raumes (über ein KO) eingegeben.
    E5: Außentemp: Hier wir die aktuelle Außentemperatur (über ein KO) eingegeben.
    E6: Betriebsart-KO: 1=Auto; 2=Sichtschutz; 3=Hitzeschutz; 4=Hand
    E7: Sommer: Hier wird die aktuelle "Jahreszeit" eingegeben (Sommer=1 / Winter=0). Bei Winterbetrieb wird nicht beschattet.
    E8: Stunde_ID: Wird genutzt um die Beschattung erst ab 6 Uhr morgens zu verfahren. Gesperrt wird von 0 bis 5:59 Uhr.
    E9: RESERVE
    
    A1: Hoehe: Hoehenvorgabe an LBS, wird mit E18 und E25 verbunden
    A2: Winkel: Winkelvorgabe an LBS, wird mit E19 und E26 verbunden
    A3: Daemmerung: Aktivieren/Deaktivieren der Daemmerungssteuerung, wird mit E20 verbunden
    A4: Beschattung: Aktivieren/Deaktivieren der Beschattungssteuerung, wird mit E15 verbunden
    A5: Sperre: bzw. Baustein Ein/Aus: wird mit E32 verbunden
    
    ###[/HELP]###
    Schaut es Euch mal an, falls wirklich interesse lade ich ihn mal hoch, auch wenn er nicht sehr sauber geschrieben ist, hab noch nicht wirklich nen Plan von PHP aber er funktioniert

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Hi

    Zitat von baumhaus123 Beitrag anzeigen
    kann es nicht sein, dass der Baustein nach Deaktivierung durch manuelles Verstellen die "verstellten Werte" nicht mehr mitbekommt und intern speichert, so dass er fälschlicherweise bei der Reaktivierung mit den ursprünglichen Werten vergleicht und so keinen Unterschied Ist/Soll erkennt?
    Genau das sollte ja durch die Änderung passieren bzw. korrigiert werden. Aber grundsätzlich ist das eher schon ein Henne-Ei-Problem, welches je nach Anwendungsfall zu Problemen führt. Es gibt Fälle, da braucht es diese Code-Zeile und es gibt Fälle, da braucht es diese Code-Zeile explizit nicht.

    Aber in Anbetracht der oben aufgeführten (sehr coolen!) Verbesserungsvorschläge, wird das wohl eher auf ein erneutes grösseres Refactoring hinauslaufen...

    Einen Kommentar schreiben:


  • baumhaus123
    antwortet
    Zitat von starwarsfan Beitrag anzeigen
    Crimson und baumhaus123 : Könnt ihr das bitte mal mit den entsprechenden Änderung testen?
    So, ich habe es nun auch mal getestet und die beiden Code-Zeilen auskommentiert (nur zur Sicherheit, weil ich das bisher noch nie gemacht habe: ich habe im EDOMI-Editor die beiden Zeilen auskommentiert, habe die LBS neu eingelesen und das Projekt aktiviert, dann sollten die Änderungen wirksam sein, korrekt?).

    Leider hat es nicht den gewünschten Effelt erzielt: gerade eben dieselbe Ausgangslage wie bei meinem beschriebenen Test, es ist dunkel, Raffstores sind auf 100/100. Nach Verstellen von Lamellenwinkel oder -Höhe deaktiviert sich der Baustein korrekterweise. Nach Reaktivierung auf E1 verfährt er aber nicht mehr in die 100/100 Position. Das Log sagt ja, dass
    Code:
    Previous values == current values
    sein soll - kann es nicht sein, dass der Baustein nach Deaktivierung durch manuelles Verstellen die "verstellten Werte" nicht mehr mitbekommt und intern speichert, so dass er fälschlicherweise bei der Reaktivierung mit den ursprünglichen Werten vergleicht und so keinen Unterschied Ist/Soll erkennt?

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Hallo und guten Abend

    Zitat von tger977 Beitrag anzeigen
    mich stört im Moment ein wenig das Timerverhalten: Man kann derzeit nur einen Timer für öffnen und einen für Schliessen angeben. Diese beiden greifen aber wohl nach meiner jetzigen Erkenntnis immer, d.h. sowohl bei aktiver Beschattung wie auch bei Dämmerung.
    So ist es.


    Zitat von tger977 Beitrag anzeigen
    Mit der derzeitigen Bausteinumsetzung mit nur einem einstellbaren Timerwert bekomme ich das mit der Dämmerung und der Beschattung irgendwie nicht sauber hin. Wenn ich auf Beschattungsverhalten optimiere (sprich größere Timerwerte >15-30min) fährt die Jalousie abends zu spät runter und morgens zu spät rauf. Wenn ich auf die Dämmerung optimiere, ist das Verhalten bei Beschattung mit wolkigerem Wetter nicht optimal und die Jalousie wechselt zu oft zwischen Beschattung und offen und fährt dann sehr oft...
    Verstehe und kann ich auch nachvollziehen.


    Zitat von tger977 Beitrag anzeigen
    Zum Vergleich war bei meiner Quadra ein sehr angenehmes Verhalten implementiert:

    - bei Beschattung konnte man einen Timerwert angeben nachdem bei unterschreiten einer Helligkeit (Wolke) erstmal auf "durchsichtsposition" (sprich die Lamellen aufgingen aber ohne Höhenänderung) gefahren wurde (typisch hatte ich hier 10min). Dann konnte man einen zweiten zusätzlichen Timerwert angeben der dann ab Durchsichtsposition startete und nach dessen Ablauf dann erst die Jalousie komplett hochgefahren wurde (typisch hatte ich hier 30min).
    - bei Dämmerung konnte man ebenfalls einen separaten Timerwert angeben (hier habe ich deutlich geringere Zeiten eingestellt um ziemlich genau bei den Dämmerungsschwellwerten auch die Jalousie zu verfahren, typisch 3-5min)
    Kannst Du (oder wer auch immer eine Quadra hat) dazu einige Screenshots machen? Ich habe noch keine schlaue Idee, wie ich das im Rahmen des Bausteines umsetzen könnte. Die Leute werden ja jetzt schon von der Funktionalität mehr oder weniger erschlagen und ich möchte mir dazu zunächst ein genaueres Konzept überlegen. Damit würden ja noch eine ganze Menge mehr Eingänge dazu kommen...

    Aktuell experimentiere ich nach der Idee von MrMirror mit einem zweiten LBS, welcher verschiedene Vorab-Settings je nach Situation ermittelt. Damit wird der eigentliche Beschattungs-LBS schlanker und damit sowohl einfacher in der Anwendung als auch robuster im Code. Aber das wird eine Weile dauern und braucht dementsprechend auch noch etwas Hirnschmalz...

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Nabend miteinander,

    alles interessante Punkte, nur auf keinen Fall mal so eben implementiert. Muss ich wohl mal ein paar Experimente machen und genauer drüber nachdenken...

    Einen Kommentar schreiben:


  • tger977
    antwortet
    Zitat von tger977 Beitrag anzeigen
    Habe nun auch nochmal experimentiert. Ich habe das Verhalten nur dann reproduzieren können wenn auch über dieselbe zentral GA die der Baustein Ausgang bedient "lokal" gefahren wird. Wenn ich jedoch wie bei mir eingerichtet den Baustein alleinig auf die Zentral GA des Aktors hänge und alle anderen lokalen Taster über die zweite Lokalbefehl GA des Aktors verknüpft werden, wird nach einem Lokalbefehl der Baustein gesperrt und wenn der Baustein dann wieder aktiviert wird fährt die Jalousie wieder in die alte Position. Scheint somit leider auch noch vom Aktor abzuhängen.
    hier noch eine Anmerkung: Bei mir ist im BMS MCU 09 die Funktion "letzte Zentralposition nach Automatiksperre anfahren" aktiv, sprich der Aktor sorgt damit selbst für das Anfahren der letzten Zentralposition des Bausteins...

    Einen Kommentar schreiben:


  • tger977
    antwortet
    hier mal noch ein Vorschlag für evtl. Weiterentwicklung:
    mich stört im Moment ein wenig das Timerverhalten: Man kann derzeit nur einen Timer für öffnen und einen für Schliessen angeben. Diese beiden greifen aber wohl nach meiner jetzigen Erkenntnis immer, d.h. sowohl bei aktiver Beschattung wie auch bei Dämmerung.

    Mit der derzeitigen Bausteinumsetzung mit nur einem einstellbaren Timerwert bekomme ich das mit der Dämmerung und der Beschattung irgendwie nicht sauber hin. Wenn ich auf Beschattungsverhalten optimiere (sprich größere Timerwerte >15-30min) fährt die Jalousie abends zu spät runter und morgens zu spät rauf. Wenn ich auf die Dämmerung optimiere, ist das Verhalten bei Beschattung mit wolkigerem Wetter nicht optimal und die Jalousie wechselt zu oft zwischen Beschattung und offen und fährt dann sehr oft...

    Zum Vergleich war bei meiner Quadra ein sehr angenehmes Verhalten implementiert:

    - bei Beschattung konnte man einen Timerwert angeben nachdem bei unterschreiten einer Helligkeit (Wolke) erstmal auf "durchsichtsposition" (sprich die Lamellen aufgingen aber ohne Höhenänderung) gefahren wurde (typisch hatte ich hier 10min). Dann konnte man einen zweiten zusätzlichen Timerwert angeben der dann ab Durchsichtsposition startete und nach dessen Ablauf dann erst die Jalousie komplett hochgefahren wurde (typisch hatte ich hier 30min).
    - bei Dämmerung konnte man ebenfalls einen separaten Timerwert angeben (hier habe ich deutlich geringere Zeiten eingestellt um ziemlich genau bei den Dämmerungsschwellwerten auch die Jalousie zu verfahren, typisch 3-5min)

    Einen Kommentar schreiben:


  • tger977
    antwortet
    Zitat von Crimson Beitrag anzeigen
    Könnte man nicht grundsätzlich nach Änderungen an den On/Off Eingängen (Baustein ein, Beschattung ein, Dämmerung ein,...) eine Neuberechnung forcieren?
    Produziert vielleicht in manchen Fällen etwas mehr Buslast, aber das sollte sich ja in Grenzen halten.
    Fände ich auch sehr sinnvoll und würde sicher robuster funktionieren. Habe den Fall bei weiteren Tests heute auch gehabt....

    Einen Kommentar schreiben:


  • Crimson
    antwortet
    Nachtrag:
    Nachdem der LBS die nächste Berechnung vorgenommen hat (Veränderung der Elevation) haben sich nur die Lamellen verstellt. Die Höhe hat sich nicht verändert. Der Baustein dachte wohl, der Raffstore sei schon bei 100%.

    Könnte man nicht grundsätzlich nach Änderungen an den On/Off Eingängen (Baustein ein, Beschattung ein, Dämmerung ein,...) eine Neuberechnung forcieren?
    Produziert vielleicht in manchen Fällen etwas mehr Buslast, aber das sollte sich ja in Grenzen halten.

    Viele Grüße,
    Tim

    Einen Kommentar schreiben:


  • tger977
    antwortet
    Habe nun auch nochmal experimentiert. Ich habe das Verhalten nur dann reproduzieren können wenn auch über dieselbe zentral GA die der Baustein Ausgang bedient "lokal" gefahren wird. Wenn ich jedoch wie bei mir eingerichtet den Baustein alleinig auf die Zentral GA des Aktors hänge und alle anderen lokalen Taster über die zweite Lokalbefehl GA des Aktors verknüpft werden, wird nach einem Lokalbefehl der Baustein gesperrt und wenn der Baustein dann wieder aktiviert wird fährt die Jalousie wieder in die alte Position. Scheint somit leider auch noch vom Aktor abzuhängen.

    Einen Kommentar schreiben:


  • Crimson
    antwortet
    Ich habe die beiden Zeilen auskommentiert. Das funktioniert bei mir aber nicht wie erhofft.

    Folgendes habe ich gemacht:
    1. Den LBS aktiviert. -> Raffstore fährt in neu errechnete Beschattungsposition
    2. Raffstore von Hand verfahren -> LBS deaktiviert sich
    3. Ich aktiviere den LBS über E32 wieder.

    Da sich der Sonnenstand nicht verändert hat, steht jetzt im Log, dass die errechneten Werte mit den aktuellen Werten übereinstimmen.
    Mein Raffstore bewegt sich also nicht in die gewünschte Beschattungsposition.

    Viele Grüße,
    Tim

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Crimson und baumhaus123 : Könnt ihr das bitte mal mit den entsprechenden Änderung testen?
    Zuletzt geändert von starwarsfan; 23.09.2016, 13:24.

    Einen Kommentar schreiben:


  • tger977
    antwortet
    Bei mir funktioniert das einwandfrei seit ich die beiden Zeilen auskommentiert habe.... Ich glaube diese Änderung ist genau richtig.

    Einen Kommentar schreiben:


  • Crimson
    antwortet
    Ich habe am Code nichts geändert, also die Änderungen aus #188 nicht ausgeführt.
    Bei mir verhält sich der LBS genau wie bei baumhaus123.
    Hat mich auch schon ein paar mal verwirrt, warum denn jetzt keine neue Position angefahren wird.

    Viele Grüße,
    Tim

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    OK, die Ursache habe ich gefunden. Der von tger977 in #188 beschriebene Change löst das Verhalten aus.

    Bin am überlegen, wie das nun sauber gelöst wird...

    ​​​tger977: Kannst Du das von baumhaus123 beschriebene Verhalten reproduzieren?
    Zuletzt geändert von starwarsfan; 22.09.2016, 20:33.

    Einen Kommentar schreiben:

Lädt...
X