NEWS
Adaptive Lighting [Sonne nachempfinden] Hue/Deconz
-
Hi zusammen,
ich würde gerne meine unzähligen Spots im Haus so automatisieren, dass diese vom Farbtemperaturverlauf die Sonne nachempfinden.
Ich habe sämtliche Hue-Leuchten (und auch andere Fabrikate) über Deconz in ioBroker eingebunden.Ich stelle mir das so vor:
-
Wenn Lampe eingeschaltet gehe auf die aktuelle, sonnenstands-abhängige Farbtemperatur.
-
Alle 15 Minuten [oder seltener?]: Schaue wo die Sonne jetzt steht und korrigiere den Farbtemperaturwert auf den entsprechend zutreffenden Wert.
-> Außerdem würde ich wahrscheinlich auch die Helligkeit mit einbeziehen, sodass spät Abends die Spots nicht mehr mit 100% runterfeuern, sondern angenehmes, gedämpftes Licht abgeben.
Habt ihr eine Idee, ob es so ein derartiges Script irgendwo schon gibt?
Wie könnte man das am besten realisieren?Zur Info: Ich habe von JavaScript keine Ahnung und mache alles in blockly.
hier noch eine kleine externe Erklärung, wie Apple das macht:
https://www.macrumors.com/2020/10/06/adaptive-lighting-appears-for-german-beta-testers/ -
-
Soooo hab nun doch selbst eine Lösung gebastelt, da das schon etwas eine Nischenlösung zu sein scheint.
Zur professionellen Lösung gehts hier lang:
https://forum.iobroker.net/topic/25912/dynamisches-licht-farbverlauf-tag-nachtDie einfache Lösung (für Anfänger wie mich) kommt hier:
Zuerst habe ich ein Blockly Script entwickelt das folgendes macht:
- Schaue wann die Sonne aufgeht
- Schaue wann die Sonne komplett verschwunden ist. Hierfür habe ich die nautische Abenddämmerung verwendet, natürlich anpassbar
- Ziehe die beiden Zeiten voneinander ab um zu sehen wie lange die Sonne heute über dem Horizont sichtbar sein wird.
- Schaue anhand der aktuellen Zeit an welcher Position dieser Zeitspanne wir uns gerade befinden.
- Rechne diese Position in eine Prozentzahl zwischen 1 und 100 um
- Schreibe diese Prozentzahl für spätere Zwecke in eine globale Variable in den ioBroker Objekten.
Bild zum anschauen:
Code direkt als Blockly importierbar:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="XDQa1(i@(RfxIe8Kx4V6">Minuten_Sonnenaufgang</variable> <variable id="`mwRBI?c:^D+*NiMXm#i">Minuten_Sonnenuntergang</variable> <variable id="SM|y}d]n:UvOxoI8L[(g">Sonne_Minutenspanne</variable> <variable id="/1T?^~g{_jFs+4|{rbg!">Position_Minutenspanne</variable> <variable id="qOk+z!p_/]Uu:2V:y,n5">Prozent_Sonnenverlauf</variable> </variables> <block type="schedule" id="mPL|$^F:)O/a,?c}_{9o" x="87" y="-187"> <field name="SCHEDULE">*/30 * * * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="2ONtlu/@IL[*a1:X/Vj)"> <value name="IF0"> <block type="time_compare_ex" id=":x[EYY%LYGBBGuQP)vS)"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">not between</field> <value name="START_TIME"> <shadow type="text" id="`h]yLl-{FL.KYd%FIpx1"> <field name="TEXT">12:00</field> </shadow> <block type="time_astro" id="diCspd_,=MNygrN1f|{@"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field> </block> </value> <value name="END_TIME"> <shadow type="text" id="pML.t1T`Xg8*3TN0qJ}I"> <field name="TEXT">18:00</field> </shadow> <block type="time_astro" id="#KmV^Wk:RUw.Edt.e-`V"> <field name="TYPE">nauticalDusk</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="a:-C|LTW-WcB:g^j2H!?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="$,z;Ek4:8`@Wp1=3xeoJ"> <field name="NUM">0</field> </block> </value> </block> </statement> <next> <block type="controls_if" id=",HdX.v@YotZ/pc?Usk}A"> <value name="IF0"> <block type="time_compare_ex" id="^)8}CSNFgRFFuB_Pd?M]"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="0jw(|_l$YlGJ0u9b|6q-"> <field name="TEXT">12:00</field> </shadow> <block type="time_astro" id="1_4TjVnMi)GFiGSD{ci;"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field> </block> </value> <value name="END_TIME"> <shadow type="text" id="E|8ZkERhB}j567R(D6Qf"> <field name="TEXT">18:00</field> </shadow> <block type="time_astro" id="6;(sB3%j/.b:$FN|PAQQ"> <field name="TYPE">nauticalDusk</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="}kD([|K,~+,F9$=l6?^q"> <field name="VAR" id="XDQa1(i@(RfxIe8Kx4V6">Minuten_Sonnenaufgang</field> <value name="VALUE"> <block type="convert_from_date" id="8_2qNN5;bP@dVtA5*tcI"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">mid</field> <value name="VALUE"> <block type="time_astro" id="@i}+$@zhOu!`or`;R#rT"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="fqFEJBa!Ec[k/0{uZxpJ"> <field name="VAR" id="`mwRBI?c:^D+*NiMXm#i">Minuten_Sonnenuntergang</field> <value name="VALUE"> <block type="convert_from_date" id=":#}AN4hkrR`(zKg(@j|4"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">mid</field> <value name="VALUE"> <block type="time_astro" id="4Ag`pjz6i%}P_#YFS2OV"> <field name="TYPE">nauticalDusk</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="9iM`s)($k0#J51!U0W.?"> <field name="VAR" id="SM|y}d]n:UvOxoI8L[(g">Sonne_Minutenspanne</field> <value name="VALUE"> <block type="math_arithmetic" id="yn1jRBiwr7{L_n~d},Q{"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="[pe;Vn88dKwgCmHZk*V{"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="bdoxH$hMqlck=JV!Ip~!"> <field name="VAR" id="`mwRBI?c:^D+*NiMXm#i">Minuten_Sonnenuntergang</field> </block> </value> <value name="B"> <shadow type="math_number" id="]9Yl.[e=/brmgZtS#zQp"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="]VA}c+NBr%LExuzO;B^-"> <field name="VAR" id="XDQa1(i@(RfxIe8Kx4V6">Minuten_Sonnenaufgang</field> </block> </value> </block> </value> <next> <block type="variables_set" id="I:2%^9Zf+%E{s/z0,tnE"> <field name="VAR" id="/1T?^~g{_jFs+4|{rbg!">Position_Minutenspanne</field> <value name="VALUE"> <block type="math_arithmetic" id="ZaT42Ly@u.y^B10ug@A9"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="5pHM#qmx+ftLMm%d(Yh5"> <field name="NUM">1</field> </shadow> <block type="time_get" id="`{^B5crk=c55IJec:BXY"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">mid</field> </block> </value> <value name="B"> <shadow type="math_number" id="GP`4mNtJ5OxW/sQ_1{f,"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="Kl4_R:xV7xSW}KL,se`V"> <field name="VAR" id="XDQa1(i@(RfxIe8Kx4V6">Minuten_Sonnenaufgang</field> </block> </value> </block> </value> <next> <block type="variables_set" id="g?a?{5H/d@_DEaDZD3mu"> <field name="VAR" id="qOk+z!p_/]Uu:2V:y,n5">Prozent_Sonnenverlauf</field> <value name="VALUE"> <block type="math_rndfixed" id="$A%?_QqE@Z-W#,]w07/l"> <field name="n">1</field> <value name="x"> <shadow type="math_number" id="TgD^jp6c]`4rEls}T$GD"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="N.fqj#8YW!vUk_f!vX6B"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="#M1s5*6jq%!unvmL8:R{"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="gK)IxvE4QkW1hVAT8#iA"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="c-Ha;xI}VYu[/+s^@8zi"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="/vM(GDHjO?lj[Tznf{7e"> <field name="VAR" id="/1T?^~g{_jFs+4|{rbg!">Position_Minutenspanne</field> </block> </value> <value name="B"> <shadow type="math_number" id="PP0gN$ZR=^|C2|=24UZN"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="+hZ:BMGKl:{:hwj[V1(y"> <field name="VAR" id="SM|y}d]n:UvOxoI8L[(g">Sonne_Minutenspanne</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="*1vY_(]7f~x(t|`e+/PF"> <field name="NUM">100</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="control" id="M[i[xQlZ;H)am.n]d-ZX"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="@mnD+2LW#`87g@;o:Cj|"> <field name="VAR" id="qOk+z!p_/]Uu:2V:y,n5">Prozent_Sonnenverlauf</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>
-
Danach habe ich ein zweites Script gemacht, welches die oben errechnete Prozentzahl auswertet und dementsprechend die Farbtemperatur der Lampen steuert. Ebenfalls anpassbar.
Bild zum anschauen [nur Ausschnitt, da Blockly zu groß für Screenshot]:
-
Mist, Blockly ist auch zu groß für hier (Maximal 100k Zeichen)
Das Schema ist aber auf dem Bild zu sehen und kann so entsprechend fortgeführt werden.
Ich denke der schwierigere Teil ist sowieso das erste Script.Vielleicht hat jemand eine Idee, wie ich mein großes Blockly hier teilen kann?
Übrigens: DIe Variable "Manuell_geändert" stellt sicher, dass die automatische Farbtemperaturregelung aufhört, wenn jemand den Wert händisch angepasst hat und in diesem Moment einen anderen Wert haben möchte.
-
Macht dein Script nicht das gleiche wie meins?
https://forum.iobroker.net/topic/23350/vorlage-philips-hue-farbtemperatur-verlauf-über-den-tagMorgens beginnt es mit Kaltweis verläuft über den Tag bis Abends in ein Warmweis?
-
@Spegeli hey, deinen Post hab ich bisher nicht entdeckt. Sieht interessant aus.
Im Prinzip sind die beiden Vorgehensweisen sehr ähnlich.
Ich sehe bei deiner und bei meiner Variante Vorteile:
Dein Vorteil: Du hast schön mit Variablen gearbeitet, sodass jeder das Script auf seine Bedürfnisse anpassen kann.
Außerdem ist das Script dadurch deutlich kompakter als meins.Mein Vorteil: Die Zeiten von Start und Ende sind nicht statisch, sondern Sonnenstandsabhängig über Astro Objekte.
Das würde ich dir auf jeden Fall raten. Weil zwischen Sommer und Winter erhebliche Unterschiede bestehen.Außerdem habe ich auch morgens Warmweiß -> Analog zur Sonne.
Warmweiß-Kaltweiß-Warmweiß
Das ist aber auch Geschmacksache.Kannst du mir noch sagen, wie du von deinem großen Blockly einen Screenshot machen konntest?
Liegt das an deinem großen Bildschirm oder gibts da einen Trick? -
-
@AlCalzone wo?
-
@loverz hier
-
@Homoran wo hier?
Link? -
@loverz sagte in Adaptive Lighting [Sonne nachempfinden] Hue/Deconz:
wo hier?
Hier:
@loverz sagte in Adaptive Lighting [Sonne nachempfinden] Hue/Deconz:
@Homoran wo hier?
Link?Sorry - musste es erst finden, einen Screenshot erstellen, diesen Bearbeiten und hochladen
Mit Fingerschnippen hat es nicht geklappt -
@Homoran sieht interessant aus
Hast du auch den Link vom Forumsbeitrag? -
@loverz sagte in Adaptive Lighting [Sonne nachempfinden] Hue/Deconz:
Hast du auch den Link vom Forumsbeitrag?
gibt es den?
kann mich gar nicht erinnern.Und wenn, dann hat sich da inzwischen einiges geändert
Wofür brauchst du den Beitrag?
-
@Homoran
Ich dachte, dass ich dort mehr Infos, eine Erklärung und ggf. das gesamte Script finden könnte.Ich kann natürlich auch die Blöcke anhand des Screenshot nachbasteln.
-
@loverz sagte in Adaptive Lighting [Sonne nachempfinden] Hue/Deconz:
dass ich dort mehr Infos
Was brauchst du?
@loverz sagte in Adaptive Lighting [Sonne nachempfinden] Hue/Deconz:
eine Erklärung
Dieses Blockly startet einen "Sonnenuntergang" kurz vor dem astronomischen solchen, von Licht mit hohem Blauanteil und voller Helligkeit der Ikea Tradfri RGB-Lampe bis gegen 22:10, wo ein vorgegebener minimaler Helligkeitswert und eine Lichtfarbe mit höherem Rotanteil erreicht wird.
.
Für eine Anwesenheitssimulation wird dieser abendliche Zeitpunkt noch mit einer zufälligen Spanne erhöht.
.
Kurz nach Mitternacht schaltet sich die Lampe wieder aus, wenn sie nicht vorher per Fernbedienuung ausgeschaltet wurde.@loverz sagte in Adaptive Lighting [Sonne nachempfinden] Hue/Deconz:
das gesamte Script
Wie gesagt, wenn es das in einem älteren Beitrag gab ist das ein anderes.
@loverz sagte in Adaptive Lighting [Sonne nachempfinden] Hue/Deconz:
Ich kann natürlich auch die Blöcke anhand des Screenshot nachbasteln.
Das würde beim Lernen zu Scripten erheblich helfen.
Achtung:
die von dir geforderten Aufgaben sind nicht in diesem Skript enthalten.
Hier handelt es sich nicht um die aktuelle Farbtemperatur des Tageslichts, sondern eine willkürliche "Fahrt" durch diverse Farben -
@loverz ich weiß nicht, wie weit du bist, aber ich hab gerade dran gedacht (Schande auf mein Haupt), dass ich auch ein ähnliches Skript im Einsatz habe. Ist allerdings JavaScript, nicht Blockly.
Müsste für deine Zwecke ggf. noch etwas angepasst werden - ich steuere damit eine Tradfri-Gruppe, sodass von Sonnenaufgang bis 2h später die Farbtemperatur langsam von warm auf kalt wechselt und von 2h vor Sonnenuntergang bis Sonnenuntergang wieder auf warm.
// Tradfri-Farbtemperatur in Abhängigkeit der Uhrzeit festlegen const MIN_TEMP = 0; // Minimale Farbtemperatur (kaltes Licht) const MAX_TEMP = 100; // Maximale Farbtemperatur (warmes Licht) // wieviele Stunden vor(-)/nach(+) sunrise soll der Übergang auf kalte Farbtemperatur starten/enden? const sunriseStartOffset = hours2ms(0); const sunriseEndOffset = hours2ms(2); // wieviele Stunden vor(-)/nach(+) sunset soll der Übergang auf warme Farbtemperatur starten/enden? const sunsetStartOffset = hours2ms(-2); const sunsetEndOffset = hours2ms(0); let prevTemp: number; let targetTemp: number; // isOn gibt an, dass mindestens 1 Lampe der Gruppe an ist let isOn = getState("tradfri.0.VG-00001.state").val !== false; on({id: "tradfri.0.VG-00001.state", change: "ne"}, obj => { isOn = obj.state.val !== false; if (targetTemp != undefined && targetTemp !== prevTemp && isOn) setTemp(1); }); schedule("* * * * *", colorChange); // jede Minute neue Farbtemperatur berechnen colorChange(); // außerdem beim Skriptstart function colorChange() { // aktuelle Uhrzeiten berechnen, damit wir nicht vom Datum abhängig sind const sunrise = getAstroDate("sunrise"); const sunriseStart = new Date(sunrise.getTime() + sunriseStartOffset).getTime(); const sunriseEnd = new Date(sunrise.getTime() + sunriseEndOffset).getTime(); const sunset = getAstroDate("sunset"); const sunsetStart = new Date(sunset.getTime() + sunsetStartOffset).getTime(); const sunsetEnd = new Date(sunset.getTime() + sunsetEndOffset).getTime(); const now = new Date().getTime(); // neue Farbtemperatur berechnen if (now < sunriseStart || now > sunsetEnd) { // warmes Licht in der Nacht targetTemp = MAX_TEMP; } else if (now >= sunriseStart && now <= sunriseEnd) { // sanfter Übergang auf kaltes Licht am Morgen targetTemp = interpolate(now, sunriseStart, sunriseEnd, MAX_TEMP, MIN_TEMP); } else if (now > sunriseEnd && now < sunsetStart) { // kaltes Licht am Tag targetTemp = MIN_TEMP; } else if (now >= sunsetStart && now <= sunsetEnd) { // sanfter Übergang auf warmes Licht am Abend targetTemp = interpolate(now, sunsetStart, sunsetEnd, MIN_TEMP, MAX_TEMP); } // und diese festlegen, wenn sich etwas geändert hat if (targetTemp != undefined && targetTemp !== prevTemp && isOn) setTemp(10); } function setTemp(transitionDuration: number) { prevTemp = targetTemp; setState("tradfri.0.VG-00001.transitionDuration", transitionDuration); setState("tradfri.0.VG-00001.colorTemperature", targetTemp); } // interpoliert linear zwischen zwei Punkten function interpolate(x, x1, x2, y1, y2) { return Math.round(y1 + (y2 - y1) / (x2 - x1) * (x - x1)); } function hours2ms(hours) { return hours * 3600 * 1000; }
-
@AlCalzone cool! Sieht gut aus. Leider kenne ich mich in Java nicht aus und befürchte daher, dass ich es nicht an meine Bedürfnisse anpassen kann.
-
@loverz sagte in Adaptive Lighting [Sonne nachempfinden] Hue/Deconz:
Leider kenne ich mich in Java nicht aus
Solange du JavaScript kannst, ist ja alles gut
Spaß beiseite: Vielleicht stößt in der Zukunft noch jemand hierdrauf und kann es gebrauchen. Daher lieber posten als für mich behalten
-
sooo hab nochmal gebastelt und nun eine für mich sehr gute Lösung gefunden, welche ich mit euch teilen möchte:
Am Script welches den Sonnenverlauf von 0-100% darstellt hat sich nichts geändert:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="XDQa1(i@(RfxIe8Kx4V6">Minuten_Sonnenaufgang</variable> <variable id="`mwRBI?c:^D+*NiMXm#i">Minuten_Sonnenuntergang</variable> <variable id="SM|y}d]n:UvOxoI8L[(g">Sonne_Minutenspanne</variable> <variable id="/1T?^~g{_jFs+4|{rbg!">Position_Minutenspanne</variable> <variable id="qOk+z!p_/]Uu:2V:y,n5">Prozent_Sonnenverlauf</variable> </variables> <block type="schedule" id="mPL|$^F:)O/a,?c}_{9o" x="87" y="-187"> <field name="SCHEDULE">*/30 * * * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="2ONtlu/@IL[*a1:X/Vj)"> <value name="IF0"> <block type="time_compare_ex" id=":x[EYY%LYGBBGuQP)vS)"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">not between</field> <value name="START_TIME"> <shadow type="text" id="`h]yLl-{FL.KYd%FIpx1"> <field name="TEXT">12:00</field> </shadow> <block type="time_astro" id="diCspd_,=MNygrN1f|{@"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field> </block> </value> <value name="END_TIME"> <shadow type="text" id="pML.t1T`Xg8*3TN0qJ}I"> <field name="TEXT">18:00</field> </shadow> <block type="time_astro" id="#KmV^Wk:RUw.Edt.e-`V"> <field name="TYPE">nauticalDusk</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="a:-C|LTW-WcB:g^j2H!?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="$,z;Ek4:8`@Wp1=3xeoJ"> <field name="NUM">0</field> </block> </value> </block> </statement> <next> <block type="controls_if" id=",HdX.v@YotZ/pc?Usk}A"> <value name="IF0"> <block type="time_compare_ex" id="^)8}CSNFgRFFuB_Pd?M]"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="0jw(|_l$YlGJ0u9b|6q-"> <field name="TEXT">12:00</field> </shadow> <block type="time_astro" id="1_4TjVnMi)GFiGSD{ci;"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field> </block> </value> <value name="END_TIME"> <shadow type="text" id="E|8ZkERhB}j567R(D6Qf"> <field name="TEXT">18:00</field> </shadow> <block type="time_astro" id="6;(sB3%j/.b:$FN|PAQQ"> <field name="TYPE">nauticalDusk</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="}kD([|K,~+,F9$=l6?^q"> <field name="VAR" id="XDQa1(i@(RfxIe8Kx4V6">Minuten_Sonnenaufgang</field> <value name="VALUE"> <block type="convert_from_date" id="8_2qNN5;bP@dVtA5*tcI"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">mid</field> <value name="VALUE"> <block type="time_astro" id="@i}+$@zhOu!`or`;R#rT"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="fqFEJBa!Ec[k/0{uZxpJ"> <field name="VAR" id="`mwRBI?c:^D+*NiMXm#i">Minuten_Sonnenuntergang</field> <value name="VALUE"> <block type="convert_from_date" id=":#}AN4hkrR`(zKg(@j|4"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">mid</field> <value name="VALUE"> <block type="time_astro" id="4Ag`pjz6i%}P_#YFS2OV"> <field name="TYPE">nauticalDusk</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="9iM`s)($k0#J51!U0W.?"> <field name="VAR" id="SM|y}d]n:UvOxoI8L[(g">Sonne_Minutenspanne</field> <value name="VALUE"> <block type="math_arithmetic" id="yn1jRBiwr7{L_n~d},Q{"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="[pe;Vn88dKwgCmHZk*V{"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="bdoxH$hMqlck=JV!Ip~!"> <field name="VAR" id="`mwRBI?c:^D+*NiMXm#i">Minuten_Sonnenuntergang</field> </block> </value> <value name="B"> <shadow type="math_number" id="]9Yl.[e=/brmgZtS#zQp"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="]VA}c+NBr%LExuzO;B^-"> <field name="VAR" id="XDQa1(i@(RfxIe8Kx4V6">Minuten_Sonnenaufgang</field> </block> </value> </block> </value> <next> <block type="variables_set" id="I:2%^9Zf+%E{s/z0,tnE"> <field name="VAR" id="/1T?^~g{_jFs+4|{rbg!">Position_Minutenspanne</field> <value name="VALUE"> <block type="math_arithmetic" id="ZaT42Ly@u.y^B10ug@A9"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="5pHM#qmx+ftLMm%d(Yh5"> <field name="NUM">1</field> </shadow> <block type="time_get" id="`{^B5crk=c55IJec:BXY"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">mid</field> </block> </value> <value name="B"> <shadow type="math_number" id="GP`4mNtJ5OxW/sQ_1{f,"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="Kl4_R:xV7xSW}KL,se`V"> <field name="VAR" id="XDQa1(i@(RfxIe8Kx4V6">Minuten_Sonnenaufgang</field> </block> </value> </block> </value> <next> <block type="variables_set" id="g?a?{5H/d@_DEaDZD3mu"> <field name="VAR" id="qOk+z!p_/]Uu:2V:y,n5">Prozent_Sonnenverlauf</field> <value name="VALUE"> <block type="math_rndfixed" id="$A%?_QqE@Z-W#,]w07/l"> <field name="n">1</field> <value name="x"> <shadow type="math_number" id="TgD^jp6c]`4rEls}T$GD"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="N.fqj#8YW!vUk_f!vX6B"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="#M1s5*6jq%!unvmL8:R{"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="gK)IxvE4QkW1hVAT8#iA"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="c-Ha;xI}VYu[/+s^@8zi"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="/vM(GDHjO?lj[Tznf{7e"> <field name="VAR" id="/1T?^~g{_jFs+4|{rbg!">Position_Minutenspanne</field> </block> </value> <value name="B"> <shadow type="math_number" id="PP0gN$ZR=^|C2|=24UZN"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="+hZ:BMGKl:{:hwj[V1(y"> <field name="VAR" id="SM|y}d]n:UvOxoI8L[(g">Sonne_Minutenspanne</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="*1vY_(]7f~x(t|`e+/PF"> <field name="NUM">100</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="control" id="M[i[xQlZ;H)am.n]d-ZX"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="@mnD+2LW#`87g@;o:Cj|"> <field name="VAR" id="qOk+z!p_/]Uu:2V:y,n5">Prozent_Sonnenverlauf</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml> <xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="XDQa1(i@(RfxIe8Kx4V6">Minuten_Sonnenaufgang</variable> <variable id="`mwRBI?c:^D+*NiMXm#i">Minuten_Sonnenuntergang</variable> <variable id="SM|y}d]n:UvOxoI8L[(g">Sonne_Minutenspanne</variable> <variable id="/1T?^~g{_jFs+4|{rbg!">Position_Minutenspanne</variable> <variable id="qOk+z!p_/]Uu:2V:y,n5">Prozent_Sonnenverlauf</variable> </variables> <block type="schedule" id="mPL|$^F:)O/a,?c}_{9o" x="87" y="-187"> <field name="SCHEDULE">*/30 * * * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="2ONtlu/@IL[*a1:X/Vj)"> <value name="IF0"> <block type="time_compare_ex" id=":x[EYY%LYGBBGuQP)vS)"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">not between</field> <value name="START_TIME"> <shadow type="text" id="`h]yLl-{FL.KYd%FIpx1"> <field name="TEXT">12:00</field> </shadow> <block type="time_astro" id="diCspd_,=MNygrN1f|{@"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field> </block> </value> <value name="END_TIME"> <shadow type="text" id="pML.t1T`Xg8*3TN0qJ}I"> <field name="TEXT">18:00</field> </shadow> <block type="time_astro" id="#KmV^Wk:RUw.Edt.e-`V"> <field name="TYPE">nauticalDusk</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="a:-C|LTW-WcB:g^j2H!?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="$,z;Ek4:8`@Wp1=3xeoJ"> <field name="NUM">0</field> </block> </value> </block> </statement> <next> <block type="controls_if" id=",HdX.v@YotZ/pc?Usk}A"> <value name="IF0"> <block type="time_compare_ex" id="^)8}CSNFgRFFuB_Pd?M]"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="0jw(|_l$YlGJ0u9b|6q-"> <field name="TEXT">12:00</field> </shadow> <block type="time_astro" id="1_4TjVnMi)GFiGSD{ci;"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field> </block> </value> <value name="END_TIME"> <shadow type="text" id="E|8ZkERhB}j567R(D6Qf"> <field name="TEXT">18:00</field> </shadow> <block type="time_astro" id="6;(sB3%j/.b:$FN|PAQQ"> <field name="TYPE">nauticalDusk</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="}kD([|K,~+,F9$=l6?^q"> <field name="VAR" id="XDQa1(i@(RfxIe8Kx4V6">Minuten_Sonnenaufgang</field> <value name="VALUE"> <block type="convert_from_date" id="8_2qNN5;bP@dVtA5*tcI"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">mid</field> <value name="VALUE"> <block type="time_astro" id="@i}+$@zhOu!`or`;R#rT"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="fqFEJBa!Ec[k/0{uZxpJ"> <field name="VAR" id="`mwRBI?c:^D+*NiMXm#i">Minuten_Sonnenuntergang</field> <value name="VALUE"> <block type="convert_from_date" id=":#}AN4hkrR`(zKg(@j|4"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">mid</field> <value name="VALUE"> <block type="time_astro" id="4Ag`pjz6i%}P_#YFS2OV"> <field name="TYPE">nauticalDusk</field> <field name="OFFSET">0</field> </block> </value> </block> </value> <next> <block type="variables_set" id="9iM`s)($k0#J51!U0W.?"> <field name="VAR" id="SM|y}d]n:UvOxoI8L[(g">Sonne_Minutenspanne</field> <value name="VALUE"> <block type="math_arithmetic" id="yn1jRBiwr7{L_n~d},Q{"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="[pe;Vn88dKwgCmHZk*V{"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="bdoxH$hMqlck=JV!Ip~!"> <field name="VAR" id="`mwRBI?c:^D+*NiMXm#i">Minuten_Sonnenuntergang</field> </block> </value> <value name="B"> <shadow type="math_number" id="]9Yl.[e=/brmgZtS#zQp"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="]VA}c+NBr%LExuzO;B^-"> <field name="VAR" id="XDQa1(i@(RfxIe8Kx4V6">Minuten_Sonnenaufgang</field> </block> </value> </block> </value> <next> <block type="variables_set" id="I:2%^9Zf+%E{s/z0,tnE"> <field name="VAR" id="/1T?^~g{_jFs+4|{rbg!">Position_Minutenspanne</field> <value name="VALUE"> <block type="math_arithmetic" id="ZaT42Ly@u.y^B10ug@A9"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="5pHM#qmx+ftLMm%d(Yh5"> <field name="NUM">1</field> </shadow> <block type="time_get" id="`{^B5crk=c55IJec:BXY"> <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation> <field name="OPTION">mid</field> </block> </value> <value name="B"> <shadow type="math_number" id="GP`4mNtJ5OxW/sQ_1{f,"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="Kl4_R:xV7xSW}KL,se`V"> <field name="VAR" id="XDQa1(i@(RfxIe8Kx4V6">Minuten_Sonnenaufgang</field> </block> </value> </block> </value> <next> <block type="variables_set" id="g?a?{5H/d@_DEaDZD3mu"> <field name="VAR" id="qOk+z!p_/]Uu:2V:y,n5">Prozent_Sonnenverlauf</field> <value name="VALUE"> <block type="math_rndfixed" id="$A%?_QqE@Z-W#,]w07/l"> <field name="n">1</field> <value name="x"> <shadow type="math_number" id="TgD^jp6c]`4rEls}T$GD"> <field name="NUM">3.1234</field> </shadow> <block type="math_arithmetic" id="N.fqj#8YW!vUk_f!vX6B"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="#M1s5*6jq%!unvmL8:R{"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="gK)IxvE4QkW1hVAT8#iA"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="c-Ha;xI}VYu[/+s^@8zi"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="/vM(GDHjO?lj[Tznf{7e"> <field name="VAR" id="/1T?^~g{_jFs+4|{rbg!">Position_Minutenspanne</field> </block> </value> <value name="B"> <shadow type="math_number" id="PP0gN$ZR=^|C2|=24UZN"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="+hZ:BMGKl:{:hwj[V1(y"> <field name="VAR" id="SM|y}d]n:UvOxoI8L[(g">Sonne_Minutenspanne</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="*1vY_(]7f~x(t|`e+/PF"> <field name="NUM">100</field> </shadow> </value> </block> </value> </block> </value> <next> <block type="control" id="M[i[xQlZ;H)am.n]d-ZX"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="@mnD+2LW#`87g@;o:Cj|"> <field name="VAR" id="qOk+z!p_/]Uu:2V:y,n5">Prozent_Sonnenverlauf</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>
-
Anschließend kommt für jeden Raum bzw. Lichtkanal ein weiteres Script, welches die oben errechnete Prozentzahl in Farbtemperatur und Helligkeitswerte umsetzt.
Beide Werte sind über Variablen flexibel gehalten:<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="*J0h3H66Lh}#=mGt_6a^">Bri_Min</variable> <variable id="e:JnT/oK4RY;sPEkIUYX">Bri_Max</variable> <variable id="CD{frOx_JbK|vHvuDF]2">Bri_Range</variable> <variable id="{T7[V,ECyB(9og{b+p:X">CT_Min</variable> <variable id="dZ,bS.XNJ-3AMtu%%,h!">CT_Max</variable> <variable id="X`aPNAeyFPieq]{n]n,U">CT_Range</variable> <variable id="x2]0EQHx.{G(t5jpYMB(">Manuell_geändert</variable> <variable type="timeout" id="timeout">timeout</variable> <variable type="timeout" id="timeout2">timeout2</variable> <variable id="V2hgWi%p{Cg/]taWHI7L">Bri_Wert</variable> <variable id="ufM?rs80G4T5E;Ypwa*U">Ct_Wert</variable> </variables> <block type="variables_set" id="iG(m-4AnPjp4@S5K{Jq^" x="-110" y="-496"> <field name="VAR" id="*J0h3H66Lh}#=mGt_6a^">Bri_Min</field> <value name="VALUE"> <block type="math_number" id="XQu[2=#}jQ-/Ut5_*BD%"> <field name="NUM">120</field> </block> </value> <next> <block type="variables_set" id="G;UEOv3Dn8C,U4FGb.};"> <field name="VAR" id="e:JnT/oK4RY;sPEkIUYX">Bri_Max</field> <value name="VALUE"> <block type="math_number" id="IpS{RSo,PuIgv{k86Pv:"> <field name="NUM">255</field> </block> </value> <next> <block type="variables_set" id="ue+N4uN4hHhrZaqW5Z[L"> <field name="VAR" id="CD{frOx_JbK|vHvuDF]2">Bri_Range</field> <value name="VALUE"> <block type="math_arithmetic" id="J}V,~UIA_,{?w(@e$OO7"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="APwH?QMe2;z1;L(Q=?Eg"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="jvKIZ(X@|:{Rl/@XcxKB"> <field name="VAR" id="e:JnT/oK4RY;sPEkIUYX">Bri_Max</field> </block> </value> <value name="B"> <shadow type="math_number" id="nWE42l$QEP%AgrFN*Dmv"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="|R^pN#v8#bM|fxg];t1X"> <field name="VAR" id="*J0h3H66Lh}#=mGt_6a^">Bri_Min</field> </block> </value> </block> </value> <next> <block type="variables_set" id="}DH+Jtry+-K$|O44?Tj%"> <field name="VAR" id="{T7[V,ECyB(9og{b+p:X">CT_Min</field> <value name="VALUE"> <block type="math_number" id=";dzEp;?ajXB}*IwFJ@W9"> <field name="NUM">153</field> </block> </value> <next> <block type="variables_set" id="U/3^4:7YbQedHtXz7Tn["> <field name="VAR" id="dZ,bS.XNJ-3AMtu%%,h!">CT_Max</field> <value name="VALUE"> <block type="math_number" id="-n#rV.6|YePb~FOc*:FZ"> <field name="NUM">500</field> </block> </value> <next> <block type="variables_set" id="{N;BUJkv*6:TBWT!k@7Y"> <field name="VAR" id="X`aPNAeyFPieq]{n]n,U">CT_Range</field> <value name="VALUE"> <block type="math_arithmetic" id="KLZN@_w8C-$YZK2.U?@z"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="!6CtB*6;U(vQsmi}{:#o"> <field name="VAR" id="dZ,bS.XNJ-3AMtu%%,h!">CT_Max</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="/1#7xUt?aGh[@X4zF$MX"> <field name="VAR" id="{T7[V,ECyB(9og{b+p:X">CT_Min</field> </block> </value> </block> </value> <next> <block type="variables_set" id="A1V5^sVP,8fq78J=~u:0"> <field name="VAR" id="x2]0EQHx.{G(t5jpYMB(">Manuell_geändert</field> <value name="VALUE"> <block type="logic_boolean" id="6TYAXN]#uXFk{hBL3+0v"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="on_ext" id="lXQ]Rr;z.{-:KaK%rEY0"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Nh-WGE+f@?!qWssL:?rK"> <field name="oid">knx.0.EG.Beleuchtung.Wohnzimmer_Spots_Status</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="U.0^KUV#*6l|=AU_,(rZ"> <field name="VAR" id="x2]0EQHx.{G(t5jpYMB(">Manuell_geändert</field> <value name="VALUE"> <block type="logic_boolean" id="A`u%Up/:x6,{$k@l$H~["> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="on_ext" id="~EyeLk{*i%#d^CQ}kKx*"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="Ox6)8L7R7#*hw/+u;+sR"> <field name="oid">deconz.0.Groups.2.bri</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="fgcQj53%vKO?+zc#X#};"> <field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="Y%t8~nAV(#,:$_iEO1y#"> <value name="IF0"> <block type="logic_compare" id="eA;WUt;qZ0DU8#2h$8U{"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="Iyc^)Sx!Cd8zuJXmX$iO"> <field name="ATTR">val</field> <field name="OID">deconz.0.Groups.2.bri</field> </block> </value> <value name="B"> <block type="variables_get" id="COA@Lw[XMu~7Y%!0.XCX"> <field name="VAR" id="V2hgWi%p{Cg/]taWHI7L">Bri_Wert</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="R:.D9_=WOg:)A^gl.:_)"> <field name="VAR" id="x2]0EQHx.{G(t5jpYMB(">Manuell_geändert</field> <value name="VALUE"> <block type="logic_boolean" id="4$:^Wx?.%`_`7B`fKFo^"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> </block> </statement> <next> <block type="on_ext" id="COwNtKk`9i/sAE@5-F:e"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="}sB/!swok.o/BG*v|~oS"> <field name="oid">deconz.0.Groups.2.ct</field> </shadow> </value> <statement name="STATEMENT"> <block type="timeouts_settimeout" id="Z%S)i[O}4iy@_kI4;BNJ"> <field name="NAME">timeout2</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"> <block type="controls_if" id="D.0EA,VI,1cA(!Yog.Z}"> <value name="IF0"> <block type="logic_compare" id="A(,;$3uc#dO%h#Io5WuN"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="7lI8tQYES*!dfzn|eW~M"> <field name="ATTR">val</field> <field name="OID">deconz.0.Groups.2.ct</field> </block> </value> <value name="B"> <block type="variables_get" id="_uPIPD2aK]uK)q,bOg4X"> <field name="VAR" id="ufM?rs80G4T5E;Ypwa*U">Ct_Wert</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="pkI3:5c@7*bJdVd%LP7c"> <field name="VAR" id="x2]0EQHx.{G(t5jpYMB(">Manuell_geändert</field> <value name="VALUE"> <block type="logic_boolean" id="VcO.3$|3wN8qavb3g5*D"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> </block> </statement> <next> <block type="on_ext" id="~,t!T)CXOH7+oJCzYj,7"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="?]eX`%1I*OhZe`8B5ini"> <field name="oid">knx.0.EG.Beleuchtung.Wohnzimmer_Spots_Status</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="dN{1][PSlqC~Af?t*,@h"> <field name="oid">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="~mZ+a!WQzv=Lgim9LMGi"> <value name="IF0"> <block type="logic_compare" id="nss].$u!Yzb(W/|KtYtD"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="jJ/@?D`z#*rU]X`nF;tt"> <field name="VAR" id="x2]0EQHx.{G(t5jpYMB(">Manuell_geändert</field> </block> </value> <value name="B"> <block type="logic_boolean" id="OU{^h8GzE?X0^]!a~AW,"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="P1s$-9o39nIH[o4kdRZ;"> <value name="IF0"> <block type="logic_compare" id="T$qWaA,tgb!z?rei#yKp"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="4Uk:+R%d}%$R1unThDQ$"> <field name="ATTR">val</field> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> </block> </value> <value name="B"> <block type="math_number" id="j21*t3tw9G/Rbg35L9T~"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="@6MMqUWUU0Pn{f{;7QpS"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">deconz.0.Groups.2.bri</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id=",8yGREmBQW+@y2?r!7BK"> <field name="NUM">55</field> </block> </value> <next> <block type="control" id="09H.*Y;63gW9_,~PDgXM"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">deconz.0.Groups.2.ct</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id=".cH?b99jp:v$sb0qrd:x"> <field name="NUM">500</field> </block> </value> </block> </next> </block> </statement> <next> <block type="comment" id="ar!erVw{2(aKvrb.6l0}"> <field name="COMMENT">Sonnenaufsstieg</field> <next> <block type="controls_if" id="fUL)t;Hh-FI~GTlaNS-Y"> <value name="IF0"> <block type="logic_operation" id="DiVkFx-eH(_!UzQxdIMZ" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="8-R{GsUgd3JEb(/)35tl"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="7Fs-Af3-.`QT~PP9n?fi"> <field name="ATTR">val</field> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> </block> </value> <value name="B"> <block type="math_number" id="9(=J@Cy~B.kgF1*fU?*+"> <field name="NUM">1</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="S]YTD!A_OxV#cY8~zFj%"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="+l2$1)8.pfWwT]Ds_hFs"> <field name="ATTR">val</field> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> </block> </value> <value name="B"> <block type="math_number" id="!7^cGd^fMZ1ByXNALLoe"> <field name="NUM">50</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="HHZ.IkyjM?-IyiSwpe8{"> <field name="VAR" id="V2hgWi%p{Cg/]taWHI7L">Bri_Wert</field> <value name="VALUE"> <block type="math_arithmetic" id="d!;IYMSYGMC{hx5Y`fV9"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="k1n1u#,mgTPYO;g$jr=b"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id=";!v[R.GpIG?TIU(,6CdG"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="]},v%.M=e)(bs~zy9]tD"> <field name="NUM">1</field> </shadow> <block type="get_value" id="sq~$gkN5r(!xb|i.DT`}"> <field name="ATTR">val</field> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> </block> </value> <value name="B"> <shadow type="math_number" id="Aj;-V!{jbOJm0$Sg*Zt-"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="1M:(uKY#Kvm4+nIad2HR"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="[,iV)mF7wQca6;Okprrm"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="%Br+ZRQ(6O5wXeka~n[?"> <field name="VAR" id="CD{frOx_JbK|vHvuDF]2">Bri_Range</field> </block> </value> <value name="B"> <shadow type="math_number" id="vc5{okmD@$H}+a1OOJ*p"> <field name="NUM">50</field> </shadow> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="jyfzI0p6Cf{noDZq;^Ec"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="rDV~Y^Jgj4*E3s=I*+Z/"> <field name="VAR" id="*J0h3H66Lh}#=mGt_6a^">Bri_Min</field> </block> </value> </block> </value> <next> <block type="control" id="H9^]?~RUha6bH?m7XM?T"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">deconz.0.Groups.2.bri</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="S[l|V=o94%kQN5N,5}L."> <field name="VAR" id="V2hgWi%p{Cg/]taWHI7L">Bri_Wert</field> </block> </value> <next> <block type="variables_set" id="kjyYq$9sR37Sj4tRvz`X"> <field name="VAR" id="ufM?rs80G4T5E;Ypwa*U">Ct_Wert</field> <value name="VALUE"> <block type="math_arithmetic" id=":dxTHM*=kS~mv_B2m:/:"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="`7M.sjsQml%)eBq~|^#]"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="6*`mEsdc^f%`nY;(DR:j"> <field name="VAR" id="dZ,bS.XNJ-3AMtu%%,h!">CT_Max</field> </block> </value> <value name="B"> <shadow type="math_number" id="3JK=DkAreEcpiycVS~l)"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="|2YZ*W#I.q%Wsct.ZX{#"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="Rs+?~]~v#_J}fFshx)5A"> <field name="ATTR">val</field> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="HHoxZK!B.+Jw2=TG]5Tw"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="ptQ.JgsmRDmYA8KJ_IRX"> <field name="VAR" id="X`aPNAeyFPieq]{n]n,U">CT_Range</field> </block> </value> <value name="B"> <shadow type="math_number" id="Ho3=[E$8%L#;Q}XsvMj;"> <field name="NUM">50</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="q:4W[+h;I}U!55o2uhkH"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">deconz.0.Groups.2.ct</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="D3#z`]V,rJ:tE-ni3.C2"> <field name="VAR" id="ufM?rs80G4T5E;Ypwa*U">Ct_Wert</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="comment" id=",Pf.Vw(liQJ!BH:gIQ1v"> <field name="COMMENT">Sonnenabstieg</field> <next> <block type="controls_if" id="Q.t_t:U1o-Uu*vACgR}G"> <value name="IF0"> <block type="logic_operation" id="N?#8n/MKOyn=i:pecPS4" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="J)Xo*LT?f@;U}aqBtsKv"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="bu$)^y%MeFI#KjJ(fMaS"> <field name="ATTR">val</field> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> </block> </value> <value name="B"> <block type="math_number" id="3JP}o_#x#$9[seRgJ/+_"> <field name="NUM">50</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="Goi7K,(5%1r*q%h@`dZ9"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="fGT-Xoy%:T8cXS!nmx`n"> <field name="ATTR">val</field> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> </block> </value> <value name="B"> <block type="math_number" id="PxfYr@*.{f7xPVT;nx8X"> <field name="NUM">100</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="^jL)phF.CDX]C_!lZ]Z_"> <field name="VAR" id="V2hgWi%p{Cg/]taWHI7L">Bri_Wert</field> <value name="VALUE"> <block type="math_arithmetic" id="vwt=toWnxEEl^*17@}e0"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="o:Cv,{Cx6W`AYFi`pxWO"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="#r/B=#eCG6MQt4PDZ-|u"> <field name="VAR" id="e:JnT/oK4RY;sPEkIUYX">Bri_Max</field> </block> </value> <value name="B"> <shadow type="math_number" id="Vs*lrt~Ir?,)m@KKCV5b"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="5pmtZ,!}7UrM+rxQphRZ"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="V9bN`eN;=-Itw0`4o;BU"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="IjKZrJd7?@[.}SXUWlMK"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="get_value" id="v-QqsH{uDd:daX=[a9PS"> <field name="ATTR">val</field> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> </block> </value> <value name="B"> <shadow type="math_number" id="Z1!Z@wE|1_;vHa!=QB|("> <field name="NUM">50</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="4g!Q}{G_w4E.,@mdV^bE"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="Mm}2C~7-Tj!eB8,F*K%h"> <field name="VAR" id="CD{frOx_JbK|vHvuDF]2">Bri_Range</field> </block> </value> <value name="B"> <shadow type="math_number" id="I$oR~%1OmFGQ]~zUjKe@"> <field name="NUM">50</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="control" id="W+$f+:DZ/wBH:enXT#eN"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">deconz.0.Groups.2.bri</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="QH)p#6$Q-uF#72[i}.H3"> <field name="VAR" id="V2hgWi%p{Cg/]taWHI7L">Bri_Wert</field> </block> </value> <next> <block type="variables_set" id="VL$cj%CVjKgvU;(8;QpN"> <field name="VAR" id="ufM?rs80G4T5E;Ypwa*U">Ct_Wert</field> <value name="VALUE"> <block type="math_arithmetic" id="-q[5CA/u%FU[K8xqv~N["> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="q7t69L{xHQ9-cOc,[Nkj"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="@54C+*wz*VNBL$E()$6{"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="8Mr!,G)f4gTk(`12L8xt"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="Nfs%6qN-5yvVbIFJJX|F"> <field name="NUM">1</field> </shadow> <block type="get_value" id="2=~:71+a;WLc+EiTsWRU"> <field name="ATTR">val</field> <field name="OID">javascript.0.Variablen.Beleuchtung.Adaptive_Lighting.Sonnenstand</field> </block> </value> <value name="B"> <shadow type="math_number" id="/61FKH|L+TpcmbgdGQE;"> <field name="NUM">50</field> </shadow> </value> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="D4TqY5_l`5[c#q10deWZ"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="ai#wPBw;hVG0h]NDhc_`"> <field name="VAR" id="X`aPNAeyFPieq]{n]n,U">CT_Range</field> </block> </value> <value name="B"> <shadow type="math_number" id="!NrAh=A@8u,UC0l.]w@p"> <field name="NUM">50</field> </shadow> </value> </block> </value> </block> </value> <value name="B"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="^/o$5cL8%Ko79/S|!aes"> <field name="VAR" id="{T7[V,ECyB(9og{b+p:X">CT_Min</field> </block> </value> </block> </value> <next> <block type="control" id="hF2Y5nm6970v7D1w]0S]"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">deconz.0.Groups.2.ct</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id=",R{Vw?9WhsvAtE=@N)+?"> <field name="VAR" id="ufM?rs80G4T5E;Ypwa*U">Ct_Wert</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </xml>