Ich möchte euch in diesem und weiteren Threads eine Lösung zur Steuerung der Jalousien vorstellen. Aufgrund meiner Erfahrungen mit dezentraler Logik auf Wetterstationen etc. habe ich nun die Steuerung komplett auf den TWS übertragen. Damit habe ich für mich eine (fast) perfekte Lösung geschaffen, die für viele andere auch funktionieren sollte.
Die Übersicht zu Hauptmerkmalen, Bausteinen und deren Zusammenspiel ist hier zu finden:
viewtopic.php?f=65&t=1564
Der Baustein Beschattungsautomatik steuert die Behanghöhe und den Lamellenwinkel abhängig von Sonnenposition, Fenster/Jalousieparameter und Helligkeit.
Der Baustein wird je Fassade benötigt, sofern die Fenster ca. die gleichen Parametern besitzen (die Parameter der großen Fenster können meist für die kleineren Fenster mitverwendet werden). Bei Verwendung einer innentemperaturabhängigen Höhe muss der Baustein je Raum und Fassade verwendet werden.
Neuerung V0.1 (12.3.2021): Der Wert für i den Lamellenwinkel wird nur ausgegeben, wenn die Höhe > 0 ist, ansonsten wird der Wert für LamellePosOffen gesendet.
Funktionsweise:
- Für Beschattung aktiv sind folgende Voraussetzungen geprüft: Helligkeit > Grenzwert und Sonne scheint ins Fenster .
- Für Beschattungsbeginn und -ende wird eine Verzögerungszeit abgewartet
- Die Behanghöhe wird vom Eingang Hoehe_Soll als Objekt oder fixer Wert verwendet.
- Der Lamellenwinkel wird abhängig von Sonnenhöhe, Winkel zur Fensterrichtung und Lamellenbreite berechnet. Dabei wird die tatsächliche Lamellenbreite (in Richtung der Sonne) mittels Sonnenrichtung umgerechnet.
- Helligkeit: Aktuelle Helligkeit für diese Fassade
- Bereich Sonnenhoehe- und -richtung: Berechnete Sonnenhöhe und Richtung aus dem Astro-Baustein, mittels "innerhalb Bereich" muss der Winkelbereich (Hoehe und Richtung) festgelegt werden, in dem die Sonne ins Fenster scheint.
- Sonnenhoehe- und -richtung: Berechnete Sonnenhöhe und Richtung aus dem Astro-Baustein.
- Hoehe_Soll: Behanghöhe, wenn beschattet werden soll. Sollte mit dem Ausgang des 2. Bausteins (viewtopic.php?f=65&t=1565) verbunden werden. Alternativ kann ein fester Wert als Parameter gesetzt werden.
- Prio: Automatikhöhe wird mit dem Parameter Hoehe_Prio übersteuert (gilt nur, wenn Beschattungsbedingung erfüllt ist)
- Helligkeit EIN: Helligkeitswert in Lux, ab dem beschattet werden soll (nach Verzögerungszeit EIN).
- Helligkeit AUS: Helligkeitswert in Lux, ab dem die Beschattung endet (nach Verzögerungszeit AUS).
- Verzögerung EIN: Verzögerungszeit nach überschreiten des Helligkeitsgrenzwertes, ab der beschattet wird (gilt für Höhe und Lamelle)
- Verzögerung AUS Höhe: Verzögerungszeit nach unterschreiten des Helligkeitsgrenzwertes, ab der die Jalousie aufgefahren wird (gilt also nur für Höhe)
- Verzögerung AUS Lamelle: Verzögerungszeit nach unterschreiten des Helligkeitsgrenzwertes, ab der die Jalousie in Lamellenposition offen gedreht wird (gilt also nur für Lamelle)
- Hoehe_PrioLegt die Behanghöhe fest, wenn Eingang Prio=True (gilt nur, wenn Beschattungsbedingung erfüllt ist)
- LamelleStepLegt die Änderung fest, ab der die Lamelle nachgeführt wird.
- LamellePosOffen: Max. geöffnete Lamellenposition, die verwendet werden soll (typ. 0% = horizontal)
- LamellePosZu: Geschlossene Lamellenposition, ab der bei sehr flacher Einstrahlung kein Licht mehr durchscheint.
- HoeheLamZu: Sonnenhöhe in °, ab der in der Stellung LamellePosZu bei senkrechter Einstrahlung auf das Fenster, kein Licht mehr durchfällt (typisch 0-5°)
- HoeheLamOffen: Sonnenhöhe in °, ab der in der Stellung LamellePosOffen bei senkrechter Einstrahlung auf das Fenster, kein Licht mehr durchfällt (typisch um 40-50°)
- LamelleBreite: Breite der Lamellen in mm
- Fensterrichtung: Fensterrichtung bezogen auf Norden = 0, zB. bei einem exakten Südfenster 180°.
- Lux_Aktiv: Rückmeldung, ob die Helligkeitbedingung erfüllt ist (inkl. Verzögerungszeit EIN und Verzögerungszeit AUS Höhe)
- Fassade StatusH: Rückmeldung, ob Beschattungsbedingung erfüllt ist (inkl. Verzögerungszeit EIN und Verzögerungszeit AUS Höhe)
- Fassade StatusL: Rückmeldung, ob Beschattungsbedingung erfüllt ist (inkl. Verzögerungszeit EIN und Verzögerungszeit AUS Lamelle)
- Hoehe Auto: Sollwert für die Jalousiehöhe.
- Hoehe Auto: Sollwert für den Lamellenwinkel.
Code: Alles auswählen
/**============================================================
Helligkeit Hysterese und Ein-/Ausschaltverzögerung - getestet
Hoehenberechnung mit Ext. Sollwert + Prio und Tuerstatus
Auswertung Sonneneinstrahlung im Fensterbereich, Winkel mit Azimut
NEU V0.1: Sende Lamelle=0, wenn Höhe=0
=============================================================*/
{
"Level":[
["$I_Lux","float",0.0],
["$Lux_CResult_A","bool",false],
["$I_Lux_Ein","float",30000],
["$I_Lux_Aus","float",10000],
["$I_Lux_dT_ON","float",10],
["$Lux_Limit_ON","bool",false],
["$I_Lux_dT_OFF_Hoehe","float",15],
["$I_Lux_dT_OFF_Lam","float",20],
["$Lux_Delayed_ON","bool",false],
["$Lux_Extend_ON","bool",false],
["$Lux_Extend_ON_Lam","bool",false],
["$Lux_Aktiv","bool",false],
["$Lux_Aktiv_Lam","bool",false],
["$Azi_in_range","bool",false],
["$Alti_in_range","bool",false],
["$Sun_in_range","bool",false],
["$Fassade_Beschattung_Aktiv","bool",false],
["$Fassade_Beschattung_Aktiv_Lam","bool",false],
["$I_Hoehe_Pos_Ein","float",0.0],
["$Hoehe_Pos_Ein","float",0.0],
["$Hoehe_Pos_Ein_Fassade","float",0.0],
["$I_Prio","bool",false],
["$I_Hoehe_Pos_Prio","float",0.0],
["$Konst100","float",100.0],
["$Konst0","float",0.0],
["$Konst1","float",1.0],
["$SonnenHoehe","float",0],
["$SonnenRichtung","float",0],
["$LamellePosZu","float",100.0],
["$LamellePosOffen","float",0.0],
["$LamellePosDiff","float",0.0],
["$LamellePosSteigung","float",0.0],
["$LamellePosOffset","float",0.0],
["$HoeheZu","float",10.0],
["$HoeheOffen","float",50.0],
["$HoeheDiff","float",50.0],
["$HoeheLimit","float",0],
["$LamellePosEin","float",0.0],
["$LamellePosOut","float",0.0],
["$LamellePosStep","float",5.0],
["$LamellePosStepB","float",5.0],
["$LamellePosStpOut","float",0.0],
["$LamellePosStpOut_Ges","float",0.0],
["$BeschattungAktiv","bool",true],
["$Hoehe_CResult","bool",false],
["$HoeheOffen_Rad","float",50.0],
["$Lamellenbreite","float",50.0],
["$Fensterrichtung","float",50.0],
["$Lamellenbreite_Neu","float",50.0],
["$Delta_Senkrecht","float",0],
["$Delta_Senkrecht_Rad","float",0],
["$KonstTan_A1","float",1.0],
["$KonstTan_A3","float",0.33333333],
["$KonstTan_A5","float",0.13333333],
["$Tan_HoeheOffen","float",0.0],
["$Tan_HoeheOffenNeu","float",0.0],
["$Lamellenabstand","float",0.0],
["$KonstCos_A2","float",-0.5],
["$Cos_Beta","float",0.0],
["$Arctan_Nenner","float",0.0],
["$HoeheOffenNeu_Rad","float",0.0],
["$HoeheOffenNeu","float",0.0],
["$KonstArctan_A2","float",0.28],
["$Pi_durch_180","float",0.017453293],
["$Delta_Sonnenrichtung","float",0.0],
["$Konst75","float",75.0],
["$Lamelle0_CResult","bool",false],
["$Hoehe0_CResult","bool",false],
["$SetLam0","bool",false]
],
"Module":[
["Polynomial","$HoeheOffen","$HoeheOffen_Rad",["$Konst0","$Pi_durch_180"]],
["Polynomial","$HoeheOffen_Rad","$Tan_HoeheOffen",["$Konst0","$Konst1","$Konst0","$KonstTan_A3","$Konst0","$KonstTan_A5"]],
["Polynomial","$Tan_HoeheOffen","$Lamellenabstand",["$Konst0","$Lamellenbreite"]],
//Berechnung der Abweichung von der Fensterrichtung und Limit auf +/-75° um Div/0 auszuschließen.
["Polynomial","$Konst1","$Delta_Sonnenrichtung",["$Fensterrichtung","-$SonnenRichtung"]],
["Limiter","$Delta_Sonnenrichtung","$Delta_Senkrecht",0,["-$Konst75","$Konst75"]],
["Polynomial","$Delta_Senkrecht","$Delta_Senkrecht_Rad",["$Konst0","$Pi_durch_180"]],
["Polynomial","$Delta_Senkrecht_Rad","$Cos_Beta",["$Konst1","$Konst0","$KonstCos_A2"]],
["Ratio","$Lamellenbreite","$Lamellenbreite_Neu","$Cos_Beta"],
["Ratio","$Lamellenabstand","$Tan_HoeheOffenNeu","$Lamellenbreite_Neu"],
["Polynomial","$Tan_HoeheOffenNeu","$Arctan_Nenner",["$Konst1","$Konst0","$KonstArctan_A2"]],
["Ratio","$Tan_HoeheOffenNeu","$HoeheOffenNeu_Rad","$Arctan_Nenner"],
["Ratio","$HoeheOffenNeu_Rad","$HoeheOffenNeu","$Pi_durch_180"],
["Comparator","$I_Lux", "$Lux_CResult_A" , ["$I_Lux_Aus","$I_Lux_Ein"]],
["Monoflop","$Lux_CResult_A","-$Lux_CResult_A","$Lux_Limit_ON","$I_Lux_dT_ON",2],
["And",["$Lux_CResult_A","-$Lux_Limit_ON"],"$Lux_Delayed_ON"],
["Monoflop","$Lux_Delayed_ON","$Lux_Delayed_ON","$Lux_Extend_ON","$I_Lux_dT_OFF_Hoehe",4],
["Or",["$Lux_Delayed_ON","$Lux_Extend_ON"],"$Lux_Aktiv"],
["Monoflop","$Lux_Delayed_ON","$Lux_Delayed_ON","$Lux_Extend_ON_Lam","$I_Lux_dT_OFF_Lam",4],
["Or",["$Lux_Delayed_ON","$Lux_Extend_ON_Lam"],"$Lux_Aktiv_Lam"],
["And",["$Alti_in_range","$Azi_in_range"],"$Sun_in_range"],
["And",["$Sun_in_range","$Lux_Aktiv"],"$Fassade_Beschattung_Aktiv"],
["Multiplexer",["$Konst0","$I_Hoehe_Pos_Ein"],"$Hoehe_Pos_Ein_Fassade","$Fassade_Beschattung_Aktiv"],
["Multiplexer",["$Hoehe_Pos_Ein_Fassade","$I_Hoehe_Pos_Prio"],"$Hoehe_Pos_Ein","$I_Prio"],
["Limiter","$SonnenHoehe","$HoeheLimit",0,["$HoeheZu","$HoeheOffenNeu"]],
["Polynomial","$LamellePosOffen","$LamellePosDiff",["-$LamellePosZu","$Konst1"]],
["Polynomial","$HoeheOffenNeu","$HoeheDiff",["-$HoeheZu","$Konst1"]],
["Ratio","$LamellePosDiff","$LamellePosSteigung","$HoeheDiff"],
["Polynomial","$HoeheZu","$LamellePosOffset",["$LamellePosZu","-$LamellePosSteigung"]],
["Polynomial","$HoeheLimit","$LamellePosEin",["$LamellePosOffset","$LamellePosSteigung"]],
["And",["$Sun_in_range","$Lux_Aktiv_Lam"],"$Fassade_Beschattung_Aktiv_Lam"],
["Multiplexer",["$LamellePosOffen","$LamellePosEin"],"$LamellePosOut","$Fassade_Beschattung_Aktiv_Lam"],
["Comparator","$SonnenHoehe","$Hoehe_CResult","$HoeheOffenNeu"],
["Multiplexer",["$LamellePosStep","$Konst0"],"$LamellePosStepB","$Hoehe_CResult"],
["Step","$LamellePosOut","$LamellePosStpOut",0,"$LamellePosStepB",0],
["Comparator","$LamellePosStpOut","$Lamelle0_CResult","$Konst1"],
["Comparator","$Hoehe_Pos_Ein","$Hoehe0_CResult","$Konst1"],
["And",["$Lamelle0_CResult","$Hoehe0_CResult"],"$SetLam0"],
["Multiplexer",["$LamellePosOffen","$LamellePosStpOut"],"$LamellePosStpOut_Ges","$SetLam0"]
],
"Input":[
["Helligkeit","Aktuelle Helligkeit","$I_Lux","c"],
["Helligkeit EIN","Helligkeitsschwelle ab der beschattet wird","$I_Lux_Ein","c"],
["Helligkeit AUS","Helligkeitsschwelle zum Beenden der Beschattung","$I_Lux_Aus","c"],
["SonnenHoehe","Bereich der Sonnenhoehe in dem beschattet werden soll","$Alti_in_range","c"],
["Sonnenrichtung","Bereich der Sonnenrichtung in dem beschattet werden soll","$Azi_in_range","c"],
["Verzögerung EIN","Verzögerung, bis nach Überschreiten der oberen Helligkeitsschwelle beschattet wird","$I_Lux_dT_ON","c"],
["Verzögerung AUS","Verzögerung, bis nach Unterschreiten der unteren Helligkeitsschwelle die Jalousie aufgefahren wird","$I_Lux_dT_OFF_Hoehe","c"],
["Verzögerung AUS L","Verzögerung, bis nach Unterschreiten der unteren Helligkeitsschwelle die Lamelle geöffnet wird","$I_Lux_dT_OFF_Lam","c"],
["SonnenHoehe","Sonne Elevation/Höhe über Horizont","$SonnenHoehe","c"],
["SonnenRichtung","Sonne Azimut/Richtung bezogen auf Nord","$SonnenRichtung","c"],
["Hoehe_Soll","Vorgabe der Sollhöhe bei Beschattung entweder als fester Wert oder variabel zB. abhängig von der Innentemperatur","$I_Hoehe_Pos_Ein","c"],
["Prio","Prio aktivieren zur Uebersteuerung ext. Sollwert","$I_Prio","c"],
["Hoehe_Prio","Priohoehe","$I_Hoehe_Pos_Prio","c"],
["LamellePosOffen","Offene Position der Lamellen bei Automatik, meist 0%","$LamellePosOffen","c"],
["LamellePosZu","Geschlossene Position der Lamellen bei aktiver Beschattung, meist 100% ","$LamellePosZu","c"],
["HoeheLamZu","Sonenhöhe bei der die Lamellennachführung startet","$HoeheZu","c"],
["HoeheLamOffen","Sonenhöhe bei der die Lamellennachführung endet","$HoeheOffen","c"],
["LamelleStep","Schrittweite für Lamellennachführung","$LamellePosStep","c"],
["LamelleBreite","Breite der Lamellen","$Lamellenbreite","c"],
["Fensterrichtung","Fensterrichtung","$Fensterrichtung","c"]
],
"Output":[
["Lux_Aktiv","Helligkeitskriterien und Verzoegerungszeiten ohne Richtung","$Lux_Aktiv","c"],
["Fassade StatusH","Fassade Beschattung Aktiv","$Fassade_Beschattung_Aktiv","c"],
["Fassade StatusL","Fassade Beschattung Aktiv","$Fassade_Beschattung_Aktiv_Lam","c"],
["Hoehe Auto","Hoehe Auto","$Hoehe_Pos_Ein","c"],
["Lamelle Auto","Lamelle Auto","$LamellePosStpOut_Ges","c"]
]
}
/**Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht.*/
Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht.