NEWS
Rolladen
-
Hallo zusammen.
Ich steuere meine Rolladen derzeit über das Plugin sunevents in node-red.
Der Flow dafür ist sehr simpel:Nun habe ich mir den Weatherman 2 von stall.biz gekauft und zusammengebaut. Dieser gibt mir die Helligkeit außen in lux an:
Dementsprechend möchte ich nun meine Rolladen nicht mehr über das Plugin, sondern über die wirklich aktuellen Werte der Wetterstation steuern.
Morgens dürften die Rolladen bei einem Wert von ca. 1 lux hochfahren. Abends wäre schön, dass sie erst runterfahren wenn der Wert von 0,1lux erreicht ist. Das wären in der Grafik ca. 6:00 Uhr morgens und 22:00 Uhr abends.
Nun weiß ich jedoch nicht wie ich den Flow aufbauen soll, sodass dieser nicht den ganzen Tag über die Rolladen triggert.
Hättet ihr da Tipps für mich?
Grüße
Das kann die Wetterstation alles in Datenpunkte in ioBroker verwandeln:
-
@hc-yami Im Prinzip musst Du erst mal die Logik festlegen, dann kommen die Nodes.
Bei Deinen Werten brauchst Du doch die Zeit gar nicht berücksichtigen? Wie wahrscheinlich ist es denn, dass wenn morgens die Helligkeit über 1 Lux geht, dass das nochmal unter 0,1 sinkt oder wenn abends 0,1 erreicht wird dass dann jeweils wieder 1 Lux erreicht wird??? In meinen Augen hast Du damit schon eine sehr brauchbare Hysterese implementiert, die an den Grenzen ein erneutes Schließen und Öffnen verhindert. Falls es an den Grenzen doch ein Problem gibt, dann musst Du halt die Grenzen weiter machen. Wenn ich mir Dein Diagramm anschaue oder wenn ich meine eigenen Grenzwerte bzgl. Helligkeit ansehe, könnte man die Aufmachgrenze auch auf 10 Lux einstellen.
Da würde doch dieser simple Flow reichen?
Keep it simple ist in meinen Augen immer noch die beste Methode. Komplexität steigt von selbst - so könntest Du ja später vielleicht noch andere Werte hinzuziehen wollen. Letztlich ist das aber nicht eine Frage des Tools - sondern Deiner Logik. Da kann ich zwar immer versuchen etwas zu helfen, aber letztlich muss jeder selbst überlegen, wie er es denn gerne hätte.
Die rbe Node verhindert, dass weitere Signale vom Luxmeter den Rolladen verstellen. Also auch wenn der bei starker Sonneneinstrahlung manuell runter gelassen wird, wird ja nur einmal getriggert. Sprich die Position wird immer mit 100 oder 0 ausgegeben und das nur EINMAL.Also wie gesagt, dass halte ich für extrem unwahrscheinlich, dass wenn 1 Lux bereits erreicht wurde sich das wieder ändert. Ansonsten musst Du halt noch eine Filternode in den oberen Ast stecken, dass dieser nur morgens und der untere nur abends ausgeführt werden kann. Das ist in meinen Augen aber nicht erforderlich.
Falls Du aber zeitliche Filter einbauen willst oder auch für andere Flows verwenden willst, kann ich Dir nur wärmstens den LightScheduler für solche Zwecke ans Herz legen.
Der kann nicht nur als Trigger verwendet werden, sondern eben auch als Filter.
https://flows.nodered.org/node/node-red-contrib-light-scheduler
Damit kann man nicht nur easy Wochenprofile erstellen
Als FilterNode - kann der je nach Aktivität oder Inaktivität einfach einen Flow blockieren oder freigeben, was man in Deinem Fall auch für den oberen oder unteren Ast verwenden kann.
Zudem ist der auch Astro-tauglich und zwar in meinen Augen sehr intelligent.
In meinem obigen Flow - wird das Licht über einen Bewegungsmelder gesteuert - aber soll nur abends einschalten. Mit der Filternode werden also die Impulse gefiltert - wobei sogar 2 Ausgänge vorhanden sind, so dass man in die die Signale sowohl in der aktiven, wie in der nicht aktiven Phase abgreifen kann. So wird das Licht auch tagsüber ausgeschaltet, wenn es manuell eingeschaltet wurde.
Bei mir beginnt nun prinzipiell das Lichteinschalten schon ab 16 Uhr - für den Winter:
Mit einer einzigen Einstellung siehe grüner Pfeil - matched es jedoch nur wenn es Dunkel wird. Somit beginnt im Sommer die Nacht nicht bereits um 16:00 Uhr.
Selbst den Offset wann es Dunkel wird bzw. die Definition kann ich wahrscheinlich fast genauso flexibel einsellen, wie mit der sun-events Node.
Es ist nämlich nicht ein zeitlicher Offset, sondern ein Offset gemessen in + oder - Graden, wobei 0°C immer dem astronomischen Sonnenaufgang und Sonnenuntergang entspricht. Minusgrade sind somit die Grade, die die Sonne unter dem Horizont ist, Plusgrade solange die Sonne über dem Horizont steht.
Ich muss hier dem Node-Entwickler wirklich ein Kompliment machen:
Allerdings sind diese Zeitprofile nicht über eine eigene GUI steuerbar, da braucht man dann andere Nodes. Bzw. man verwendet halt mehrere solcher Wochenprofile und schaltet diese in eigenem Flow - was man wiederum über ein GUI machen kann. Aber ich denke soviel Fantasie hat jeder selbst.
Wie gesagt - in meinen Augen brauchst Du so einen Filter nicht. Wenn Du halt 100% sicher gehen willst, dass nur morgens aufgemacht wird - dann hängt man halt einfach so einen Zeitfilter für morgens in den oberen bzw. abends in den unteren Ast.
So würde ich es halt machen.
-
@Hc-Yami
Hallo zusammen,
mal eine Idee Anmerkung zur Aufgabe:
Ich bin mir nicht sicher ob das mit dem Lichtsensor so ohne weiteres funktioniert. Bedenke: Der Wert für die Lichtstärke kann bis 100.000 gehen und auch auf deiner Kurve sind Werte über 20.000 zu erkennen. Wie genau wird da ein Sensor im Bereich von 0,1 bis 1 arbeiten?
Ich habe bei mir 2003 eine Siemens S7 Steuerung ins Haus gebaut und damit die Rollos, Zisterne und Außenbeleuchtung gesteuert. Gerade bei den Rollos kann man sehr viel machen und lernen…
Zu Beginn habe ich nur eine Zeitliche Steuerung benutzt aber die ständigen Korrekturen waren einfach zu viel. Dann habe ich eine Photozelle aufs Dach gelegt und damit gesteuert. Leider musste ich feststellen, dass meine Augen das Licht ganz anders war nehmen als der Sensor. Allein die Änderung der Lichtfarbe je nach Jahreszeit zwangen mich erneut zu Korrekturen.
Aktueller Stand: Die S7 schaltet nur noch und alles andere macht der ioBroker
Wie habe ich es umgesetzt? Nun ich habe jetzt mehrere Bedingungen verknüpft.- Uhrzeit – Zwei Zeitbereiche. Die Erste für Mo-Fr, die Zweite für Sa-So & Feiertage/Urlaub*
- Kalenderabfrage – für die Bestimmung ob Urlaub oder Feiertag ist.
- Temperaturen – Innentemp, Außentemp und Vorhersage der Tageshöchsttemperatur vom dasWetter
- Sonnenwinkel – Elevation für den Bereich von wann bis wann die Rollos generell öffnen dürfen.
Azimuth um die Bereiche O, S, W zu unterscheiden. Die Azimuth Bedingung ist neu und muss dieses Jahr noch getestet werden.
Also generell fahren die Rollos morgens wenn die Sonne den Richtigen Winkel hat und die Uhrzeit passt hoch. Wenn es aber zu warm wird soll je nach Richtung das entsprechende Rollo runterfahren.
Viellicht hilft das dem ein oder anderen bei ähnlichen Problemen…
BTW der Adapter Rolladensteuerung, hat schon sehr viele nützliche Funktionen die man braucht und dürfte den meisten genügen.
Gruß Axel
Hier noch Bilder von der VIS:
-
Hallo zusammen,
vielen Dank für eure Hilfe!Ich teste zunächst einmal das mit den Luxwerten. Bin jetzt aber hier auch schon auf 1 und 10 gewichen da die Werte sonst tatsächlich zu nah beiannder wären. Ich schaue mir mal an, was mein Rollo im Arbeitszimmer so macht und logge das mal bei Grafana mit.
@Axel-Koeneke womit steuerst du die Rollos? Also via. jscript oder nodered/blockly?
Grüße!
-
@hc-yami Mit Blockly, hier mal ein Ausschnitt für ein Raum:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="cBG[Sc-Lr=+/wMji6Q+5">Sollw_Tag</variable> <variable id="oa|?U=#-qgiEcU{9xWG^">Sollw_Nacht</variable> <variable id="hUs+O!WDNQE~G?/317@D">Sonne_Hoehe</variable> <variable id="e4$wYs!}sZ(97Ntc{#8[">Sonnenschutz</variable> <variable id="n$-UbsRiqkE_y]xvHZa7">Sollwert_Ausen</variable> <variable id="f6Zuw+zPCzy,GDPCh3Yt">Sollwert_Tages_Mx</variable> <variable id="RnzP{zXGcb2F8VZazfB#">IstTemp</variable> <variable id="Fvyy`YCxGa^`2tOI^`+3">SollTemp</variable> <variable id="Bn=(j{^r[1yvx307Wk4]">DeltaT</variable> <variable id="=J#Ezzw?S{,z@b`ctPjt">Sonne_Winkel</variable> <variable id="gXlM;%VT:g}pAlCIm6zY">Azi_Start_ZU</variable> <variable id="3FcdUi?FNb%:q2am/5J7">Azi_Stop_ZU</variable> <variable id=":8PN6@6:Zzw%^7s]2V`~">Azi_AUF</variable> <variable id="NdUt`Y+d/SRVGO+laY?P">Sollwert_Rollo_Schatten</variable> <variable id=":5n2TwXqaa~*Nj/IGLZP">Sollwert_Rollo_Licht</variable> </variables> <block type="schedule" id="gx_`eq=GsDUDRvW,:.uo" x="213" y="113"> <field name="SCHEDULE">* * * * *</field> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="u#1eW+OnLYN{L^=7(RJP"> <mutation name="Tag-Nacht-Sonnenschutz"> <arg name="Sollw_Tag"></arg> <arg name="Sollw_Nacht"></arg> <arg name="Sonne_Hoehe"></arg> <arg name="Sonnenschutz"></arg> <arg name="Sollwert_Ausen"></arg> <arg name="Sollwert_Tages_Mx"></arg> </mutation> <value name="ARG0"> <block type="get_value" id=")=Xr@Zn}4Te{=%|rP.O^"> <field name="ATTR">val</field> <field name="OID">s7.0.DBs.DB23.Sonne_Sollwert_Tag</field> </block> </value> <value name="ARG1"> <block type="get_value" id="*^JeMt7ZYoMB/s-0(mf_"> <field name="ATTR">val</field> <field name="OID">s7.0.DBs.DB23.Sonne_Sollwert_Nacht</field> </block> </value> <value name="ARG2"> <block type="get_value" id="kr{%V))}+k=r7S5Q9-Be"> <field name="ATTR">val</field> <field name="OID">javascript.0.Sonnenstand.Sonne_Elevation</field> </block> </value> <value name="ARG3"> <block type="get_value" id="#]M5g3u}x%Bp|Gv*o8a/"> <field name="ATTR">val</field> <field name="OID">javascript.0.ak.Rollo.Sonnenschutz</field> </block> </value> <value name="ARG4"> <block type="math_number" id="RRzz@.LfxxM#_]#BJhTc"> <field name="NUM">20</field> </block> </value> <value name="ARG5"> <block type="math_number" id="r$Sj0MJZNb9@.N17}Tg]"> <field name="NUM">25</field> </block> </value> <next> <block type="comment" id="/:B$TdX?{h*c?4;h%V~$"> <field name="COMMENT">Rollos</field> <next> <block type="controls_if" id="CVDv=oGotFn44!XYvCZp"> <value name="IF0"> <block type="logic_compare" id="RadjFOx/deUU68$t+P$]"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="3q@l3yQ?9~rq7`kfly4."> <field name="ATTR">val</field> <field name="OID">javascript.0.ak.Rollo.Sonnenschutz</field> </block> </value> <value name="B"> <block type="logic_boolean" id="2JZ|mYV@ghRcDKG)[!.d"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="g.--|ZwObI3v+O/z5V6s"> <field name="COMMENT">EG_Wohnen</field> <next> <block type="procedures_callnoreturn" id="B?Y7_F-0lkv?=5zPoYkw"> <mutation name="EG-Wohnen"> <arg name="IstTemp"></arg> <arg name="SollTemp"></arg> <arg name="DeltaT"></arg> <arg name="Sonne_Winkel"></arg> <arg name="Azi_Start_ZU"></arg> <arg name="Azi_Stop_ZU"></arg> <arg name="Azi_AUF"></arg> <arg name="Sollwert_Rollo_Schatten"></arg> <arg name="Sollwert_Rollo_Licht"></arg> </mutation> <value name="ARG0"> <block type="get_value" id="p%[gJMz4#/BMK:H8)OwW"> <field name="ATTR">val</field> <field name="OID">hm-rpc.2.000E9A498E83AB.1.ACTUAL_TEMPERATURE</field> </block> </value> <value name="ARG1"> <block type="get_value" id="KjSVU89`i%uri*5IP[+_"> <field name="ATTR">val</field> <field name="OID">hm-rpc.2.000E9A498E83AB.1.SET_POINT_TEMPERATURE</field> </block> </value> <value name="ARG2"> <block type="math_number" id="0:W$AFb+5pV/-3;I650t"> <field name="NUM">2</field> </block> </value> <value name="ARG3"> <block type="get_value" id="4tt-:SZDEG6d.t+q%r%8"> <field name="ATTR">val</field> <field name="OID">javascript.0.Sonnenstand.Sonne_Azimut</field> </block> </value> <value name="ARG4"> <block type="math_number" id="vG2LLM2aM*6,D9?K@VOc"> <field name="NUM">90</field> </block> </value> <value name="ARG5"> <block type="math_number" id="0SE7pBh?H)_rm*#L~!NH"> <field name="NUM">170</field> </block> </value> <value name="ARG6"> <block type="math_number" id="w2imA4kpHYcjE!y9w64T"> <field name="NUM">240</field> </block> </value> <value name="ARG7"> <block type="math_number" id="EpAi#[?ekzS]VOXS.##^"> <field name="NUM">5</field> </block> </value> <value name="ARG8"> <block type="math_number" id="-@(kZ40?xCi5b4gwS+qV"> <field name="NUM">100</field> </block> </value> <next> <block type="comment" id="WGB5zU4aGjuWf^S85T,M"> <field name="COMMENT">EG_Terrasse</field> <next> <block type="comment" id="c@H_SK2h#Tq#s2h+(6DT"> <field name="COMMENT">EG_Erker</field> <next> <block type="comment" id="T|gVCxzby==b3-.~a:;*"> <field name="COMMENT">EG_Küche</field> <next> <block type="comment" id="}`WF_1}~~e$yhzAgd0Pi"> <field name="COMMENT">EG_WC</field> <next> <block type="comment" id="y}6:b/(/@ME1tM^(9Dr2"> <field name="COMMENT">OG_Schlafen_1</field> <next> <block type="comment" id="8wt0=v3tFn~F~W#gJhvI"> <field name="COMMENT">OG_Schlafen_2</field> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="8_%eW?$IJ8rmY8y.zZ$K" collapsed="true" x="1213" y="87"> <mutation> <arg name="Sollw_Tag" varid="cBG[Sc-Lr=+/wMji6Q+5"></arg> <arg name="Sollw_Nacht" varid="oa|?U=#-qgiEcU{9xWG^"></arg> <arg name="Sonne_Hoehe" varid="hUs+O!WDNQE~G?/317@D"></arg> <arg name="Sonnenschutz" varid="e4$wYs!}sZ(97Ntc{#8["></arg> <arg name="Sollwert_Ausen" varid="n$-UbsRiqkE_y]xvHZa7"></arg> <arg name="Sollwert_Tages_Mx" varid="f6Zuw+zPCzy,GDPCh3Yt"></arg> </mutation> <field name="NAME">Tag-Nacht-Sonnenschutz</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="=7F0hr3]Eu-ECFY)nLu4"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="#^VCIFx2n.k|KoXUG02v"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="H*(wExJ5btJcuXt3M+3L"> <field name="VAR" id="hUs+O!WDNQE~G?/317@D">Sonne_Hoehe</field> </block> </value> <value name="B"> <block type="variables_get" id="+FGQ*;-WN8[Na9~[-,-s"> <field name="VAR" id="cBG[Sc-Lr=+/wMji6Q+5">Sollw_Tag</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="(!_%|.tV=0q%L:=Vz3Y8"> <field name="COMMENT">Sonne ist höher als Sollwert - Tag</field> <next> <block type="control" id="[|fKU[z7^ElhXDv7t#D#"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">s7.0.DBs.DB23.Es_ist_Tag</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">3</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="FeW()a@dNR~qwm/(^ajW"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="8gMi:qNpt|2CH*z%a|yN"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">s7.0.DBs.DB23.Es_ist_Nacht</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="$yg)(?@L.oP76!HWokF+"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="!pMt_eUsjDDp[sq|@(n3"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="Tl,Prag061YS8-LXjmsp"> <field name="VAR" id="hUs+O!WDNQE~G?/317@D">Sonne_Hoehe</field> </block> </value> <value name="B"> <block type="variables_get" id=")H-4V22sbq4tG`cjV%,;"> <field name="VAR" id="oa|?U=#-qgiEcU{9xWG^">Sollw_Nacht</field> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="vZ*2S+!HZ{uV|of[`~Nh"> <field name="COMMENT">Sonne ist tiefer als Sollwert - Nacht</field> <next> <block type="control" id="VhHN??lt.MqHg^c5QM9Q"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">s7.0.DBs.DB23.Es_ist_Nacht</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">3</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="dJ3W?A1aIV%G?K*n;xQ!"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="AdZV]l)GU8JM2w-Scfi`"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">s7.0.DBs.DB23.Es_ist_Tag</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=".-QG{s2BA*^Z[|gA6I0n"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id="|HoN3_m#uK?m/u.JW?ca"> <field name="COMMENT">Sonnenschutz</field> <next> <block type="controls_if" id="0^rvh=%G!MvH7R,~,yF."> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="YMJZ|V6=K3$BpKa!DMqc" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id=")ivpZ1AO-fJ^8~M!F8BW" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="FWgE3RC+LzEK=)mE=bps"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="z~I~r3.#C:2~r)?E7s|d"> <field name="ATTR">val</field> <field name="OID">s7.0.DBs.DB23.Es_ist_Tag</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Ry)N1EV`4zD^3l0/@xB1"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="Go)He~}U8^t)1+n[Z6yD"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="V|9klo7u[n0:|bNv0t%)"> <field name="ATTR">val</field> <field name="OID">s7.0.DBs.DB23.Temp_HT_IST</field> </block> </value> <value name="B"> <block type="variables_get" id="]tCCQQ06jBW-?kO`T?-4"> <field name="VAR" id="n$-UbsRiqkE_y]xvHZa7">Sollwert_Ausen</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="{$IPD(D-IO;E-)XSto|}"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="K)9JvhS|(Vbudwsg{p4Y"> <field name="ATTR">val</field> <field name="OID">daswetter.0.NextHours.Location_1.Day_1.tempmax_value</field> </block> </value> <value name="B"> <block type="variables_get" id="]Bf!Bm`)}$pQakDYQ.d8"> <field name="VAR" id="f6Zuw+zPCzy,GDPCh3Yt">Sollwert_Tages_Mx</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="*pyN/-(lq+Y1jsNq|AbD"> <field name="COMMENT">Aktiviert</field> <next> <block type="variables_set" id="SS9dJ{5c!;Mali#`q)8e"> <field name="VAR" id="e4$wYs!}sZ(97Ntc{#8[">Sonnenschutz</field> <value name="VALUE"> <block type="logic_boolean" id="Bmvj^J=#ZNarl`pM,25F"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="1Dw3d3_x$l^uUzyfaMyI" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="]H)W*V?4%0C$z`~sTyNT"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="o5Ej4m[@f]K=X0Nn$9`A"> <field name="ATTR">val</field> <field name="OID">s7.0.DBs.DB23.Es_ist_Tag</field> </block> </value> <value name="B"> <block type="logic_boolean" id="HK|FqW^g3pqe(UAX}1E;"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="@3fG-CHR:cS9f:{qcC#j"> <field name="OP">LT</field> <value name="A"> <block type="get_value" id="3;!S6XIt|Pvk^Pcq+haA"> <field name="ATTR">val</field> <field name="OID">s7.0.DBs.DB23.Temp_HT_IST</field> </block> </value> <value name="B"> <block type="variables_get" id="Kyl{6=ln8rKaad.AOR-J"> <field name="VAR" id="n$-UbsRiqkE_y]xvHZa7">Sollwert_Ausen</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="wwQ8)~m7=wg09q/Z7JjX"> <field name="COMMENT">Deaktiviert</field> <next> <block type="variables_set" id="RD?9Cc!~,]3cJ9-fbBgZ"> <field name="VAR" id="e4$wYs!}sZ(97Ntc{#8[">Sonnenschutz</field> <value name="VALUE"> <block type="logic_boolean" id="5IAnp~-)+U5$|4LV#X;p"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> <block type="procedures_defnoreturn" id="e0J|im/}U@kiQNFN[qDx" collapsed="true" x="1213" y="162"> <mutation> <arg name="IstTemp" varid="RnzP{zXGcb2F8VZazfB#"></arg> <arg name="SollTemp" varid="Fvyy`YCxGa^`2tOI^`+3"></arg> <arg name="DeltaT" varid="Bn=(j{^r[1yvx307Wk4]"></arg> <arg name="Sonne_Winkel" varid="=J#Ezzw?S{,z@b`ctPjt"></arg> <arg name="Azi_Start_ZU" varid="gXlM;%VT:g}pAlCIm6zY"></arg> <arg name="Azi_Stop_ZU" varid="3FcdUi?FNb%:q2am/5J7"></arg> <arg name="Azi_AUF" varid=":8PN6@6:Zzw%^7s]2V`~"></arg> <arg name="Sollwert_Rollo_Schatten" varid="NdUt`Y+d/SRVGO+laY?P"></arg> <arg name="Sollwert_Rollo_Licht" varid=":5n2TwXqaa~*Nj/IGLZP"></arg> </mutation> <field name="NAME">EG-Wohnen</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="/e]cA_xI8,3YO#?(@NtI"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="s9:Bq58Y=#`v?x8#@rt}" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="[Lq%bkACC3*4R6d+1m;W" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="lM1@7kS4iwz9P)cn9{1X"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="sN6[CzjV^_OqmsGZn5E6"> <field name="VAR" id="=J#Ezzw?S{,z@b`ctPjt">Sonne_Winkel</field> </block> </value> <value name="B"> <block type="variables_get" id="C-y/,yU5fS+U3zKZO4g*"> <field name="VAR" id="gXlM;%VT:g}pAlCIm6zY">Azi_Start_ZU</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=":apCN^;}b7fsYo9n(LHr"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="Cs@flhIOv(PZY4iy!Sb-"> <field name="VAR" id="=J#Ezzw?S{,z@b`ctPjt">Sonne_Winkel</field> </block> </value> <value name="B"> <block type="variables_get" id="hv(E=RG4qXa%@+]cyObt"> <field name="VAR" id="3FcdUi?FNb%:q2am/5J7">Azi_Stop_ZU</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="y+^k`JBK[FwIu-oP}:zB"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id=";4j]ysvHyI}k@ju|S5L."> <field name="VAR" id="RnzP{zXGcb2F8VZazfB#">IstTemp</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="2}j`]OOw+q5Lq=.A}95S"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="tq]A8-DmFR1M$EWJ~ZOb"> <field name="VAR" id="Fvyy`YCxGa^`2tOI^`+3">SollTemp</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">4</field> </shadow> <block type="variables_get" id="sv(=^5gvfm+ig4lc8Vao"> <field name="VAR" id="Bn=(j{^r[1yvx307Wk4]">DeltaT</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="%S;Ro`X)X%|Y$U_~8!Nr"> <field name="COMMENT">Zu</field> <next> <block type="control" id="qkC#]cR4Muv%E#1${uT]"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">s7.0.DBs.DB23.R_Erker_Rollo_Sollwert</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="?o?V^AOI%,+]bexzGNHR"> <field name="VAR" id="NdUt`Y+d/SRVGO+laY?P">Sollwert_Rollo_Schatten</field> </block> </value> <next> <block type="control" id="ZT6%BE$|~G)x|:-Ei`7F"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Sonnenstand.Ost</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="j.G}g0/_X+lC|;6]`8Bq"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="debug" id="bPH[v9_ij=]v,~tYn47{"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="MpIe5P0-[@fr$ewz,O.;"> <field name="TEXT">Rollo SZ_Zu</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="i,oq`Fit;nI`f_C[ok(4" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="}}:c_aGu9v}m3Mp`Y$Kg"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="BEN*Hm|jV/t8{J6U6VtZ"> <field name="VAR" id="=J#Ezzw?S{,z@b`ctPjt">Sonne_Winkel</field> </block> </value> <value name="B"> <block type="variables_get" id="9k6U6//xy2xVj+sIY@N4"> <field name="VAR" id=":8PN6@6:Zzw%^7s]2V`~">Azi_AUF</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="E;WGXn1s#?[zFiBFBF?J"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="@9c3KaXE$pp#ytr@Y`qo"> <field name="VAR" id="RnzP{zXGcb2F8VZazfB#">IstTemp</field> </block> </value> <value name="B"> <block type="variables_get" id="ie^a2l$,17)sTPn,iDrL"> <field name="VAR" id="Fvyy`YCxGa^`2tOI^`+3">SollTemp</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="comment" id="}.Nj-IW)l!lc@6mlV/^J"> <field name="COMMENT">Auf</field> <next> <block type="control" id="g+iq@]ab-XD%-l]7$`=H"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">s7.0.DBs.DB23.R_Erker_Rollo_Sollwert</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="~Nh+^a;~kX-mG)e~m}hX"> <field name="VAR" id=":5n2TwXqaa~*Nj/IGLZP">Sollwert_Rollo_Licht</field> </block> </value> <next> <block type="control" id="zYoU|80[Xzf%O)87:zDj"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Sonnenstand.Ost</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="@vw=O22=0f({Ioq/VI@S"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="debug" id="O$xTDF9L$[^LQbL9L1PN"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="g6V)2@r8AED$${EP#f)Y"> <field name="TEXT">Rollo SZ_Auf</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </xml>