Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [blockly] [Frage] Rolladensteuerung mit Sonnenverlauf und Sonnensensor

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    407

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

[blockly] [Frage] Rolladensteuerung mit Sonnenverlauf und Sonnensensor

Scheduled Pinned Locked Moved Blockly
blockly
16 Posts 3 Posters 4.8k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Offline
    W Offline
    weimaraner
    wrote on last edited by weimaraner
    #1

    Hallo zusammen,
    meines erstes größeres blockly ist fertig. :relaxed:
    Gesteuert werden sollen Rolladen, die in einem Erker in verschiedene Himmelsrichtungen zeigen. Als Sonnensensor benutze ich den Marmeladenglas HM-Temperatursensor von stall.biz
    Damit detektiere ich die "Sonnenstärke". Ab 18°C am Differenztermometer scheint die Sonne relativ stark.
    Die Rolladen sollen nur herunterfahren, wenn die sonne drauf scheint und in einen "Halbschatten" Modus fahren, wenn die Sonne vorbeigezogen ist.
    Zudem soll die Aussentemperatur auch eine Rolle spielen, wenn es ein diesiger, aber sehr warmer Tag ist.
    Ausserdem soll die Rolladenautomatik (per vis) auch abgechaltet werden können.
    Bei den Terrassenrollos sollen diese nicht herunterfahren, wenn jemand draussen ist, also die Tür geöffnet ist.

    Meine Lösung sieht nun so aus.
    Vielleicht können die blockly Profis mal einen Blick drauf werfen und schauen, ob das so läuft. Testen könnte ich es ja erst, wenn es Sommer ist. Aber da muß es laufen, sonst sinkt der WAF gen 0.
    Für jedes Fenster im Erker habe ich dann ein eigenes Skript mit angepaßten Azimut Werten.
    Rolladen Vorlage.JPG

    Das Blockly für den Schattenmodus sieht wie folgt aus:
    Edit: weiter unten habe ich ein alternatives blockly und die Frage, welches geeignter ist.

    RolloSchattenModus.JPG

    ```
    <xml xmlns="http://www.w3.org/1999/xhtml">
    <block type="on_ext" id="097d5m}CdRhtHmL^iw|W" x="86" y="55">
    <mutation items="2"></mutation>
    <field name="CONDITION">ne</field>
    <field name="ACK_CONDITION"></field>
    <value name="OID0">
    <shadow type="field_oid" id="9z:-r~}EayOy]L[|RP3.">
    <field name="oid">hm-rpc.0.LEQ1251872.1.STATE</field>
    </shadow>
    </value>
    <value name="OID1">
    <shadow type="field_oid" id="lh|y4CTBr(#@7J,2(Vf:">
    <field name="oid">javascript.0.Sonnenstand.Azimut</field>
    </shadow>
    </value>
    <statement name="STATEMENT">
    <block type="comment" id="zEks^SX~c0NJG?84.VJI">
    <field name="COMMENT">Sonne scheint direkt auf Fenster</field>
    <comment pinned="true" h="80" w="160">Automatik AN
    Schattenmodus Wahr
    Tür NICHT AUF
    Winkel erfüllt
    </comment>
    <next>
    <block type="controls_if" id="9[K#H].4-{M.mv*ktWd"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_operation" id="%3taS[CN{8fGFr%xXdta" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=":t(W~p/=g^k6V7Q)Io.6"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="#x={!mTjzt@@N|d.%,Q/"> <field name="ATTR">val</field> <field name="OID">eigene_Variablen.0.Rollo_Variablen.RolloAutomatik</field> </block> </value> <value name="B"> <block type="logic_boolean" id="GD?3nt(d-aNC~P/ZbHjm"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="uiO_7U?RFw@HI,Cdo5kN" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="/cZ81?#Crb+1oFLqH}A2"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="NdW=S2(7A^~_23.|M}x|"> <field name="ATTR">val</field> <field name="OID">eigene_Variablen.0.Rollo_Variablen.RolloSchattenmodus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="5-v.XF;K7E2,~Vw|y5q">
    <field name="BOOL">TRUE</field>
    </block>
    </value>
    </block>
    </value>
    <value name="B">
    <block type="logic_operation" id="r[z;uiy_8t!F.tV.-VO*" inline="false">
    <field name="OP">AND</field>
    <value name="A">
    <block type="logic_compare" id="i/=JF*?7f7|Gm{IBAvl+">
    <field name="OP">NEQ</field>
    <value name="A">
    <block type="get_value" id="ox=O(E_)bS?0{fUT~!kL">
    <field name="ATTR">val</field>
    <field name="OID">hm-rpc.0.LEQ1252259.1.STATE</field>
    </block>
    </value>
    <value name="B">
    <block type="math_number" id="k!:x9G^D6XUGE9_20r%"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="Y6E#5y,Y%t|RoF6nI6sF" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="wbgX4ye8ti2Hz(+Q=n*-"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="2h%m2ySv(?#bmuGCGJi;"> <field name="ATTR">val</field> <field name="OID">javascript.0.Sonnenstand.Azimut</field> </block> </value> <value name="B"> <block type="math_number" id=".6m+o?a(AL~Wp0wXc/,;"> <field name="NUM">80</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="GlvokR+5DLRLien,|jG">
    <field name="OP">LTE</field>
    <value name="A">
    <block type="get_value" id="dBxRC9fRnnETdzXRHy.M">
    <field name="ATTR">val</field>
    <field name="OID">javascript.0.Sonnenstand.Azimut</field>
    </block>
    </value>
    <value name="B">
    <block type="math_number" id="*Pb4I1ZY3rg-_b@cNFW"> <field name="NUM">200</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="8eeHb@jDiy^Tsex@(d:@"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.LEQ1436562.1.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="xWm#Hc-_.Vffucv_1xvk"> <field name="NUM">35</field> </block> </value> <next> <block type="comment" id="A5s8cP3M{cNNr=u3|9bA"> <field name="COMMENT">Sonne scheint nicht mehr direkt auf Fenster</field> <comment pinned="true" h="80" w="160">Automatik AN Schattenmodus Wahr Tür NICHT AUF Winkel überschritten </comment> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="!6@?/}7c+o94dg)_,:Iw" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="AZ-V.k258fAUks;U)@E("> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="vWmD7D5-_Df2S-d%%~[M"> <field name="ATTR">val</field> <field name="OID">eigene_Variablen.0.Rollo_Variablen.RolloAutomatik</field> </block> </value> <value name="B"> <block type="logic_boolean" id="0lE_]C,B?g{s2C1RCudM"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="Hw^zq(^~~/V^9FFj(dSs" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="SC.RSQ0dMyMt,dU_z(RK"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="pI@G-lVSEkqh;hePA}^["> <field name="ATTR">val</field> <field name="OID">eigene_Variablen.0.Rollo_Variablen.RolloSchattenmodus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Q^nW-^+H64bhawB:fDJ="> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="X7+tUcx)MD1R-LA{Mh,N" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="0p[i/4f=R]FrPy9LP7Vz"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="-hgicO;=tU:muaXfOtX">
    <field name="ATTR">val</field>
    <field name="OID">hm-rpc.0.LEQ1252259.1.STATE</field>
    </block>
    </value>
    <value name="B">
    <block type="math_number" id="z;71=I{kw+ahs(vlk[;/">
    <field name="NUM">2</field>
    </block>
    </value>
    </block>
    </value>
    <value name="B">
    <block type="logic_operation" id="68c2Wn,8KP(7:G+Yh~z%" inline="false">
    <field name="OP">AND</field>
    <value name="A">
    <block type="logic_compare" id="7=OR+O_azw-K)QN~5T1a">
    <field name="OP">GTE</field>
    <value name="A">
    <block type="get_value" id="hi(m*qc#Rth^xGxA?Pgb">
    <field name="ATTR">val</field>
    <field name="OID">javascript.0.Sonnenstand.Azimut</field>
    </block>
    </value>
    <value name="B">
    <block type="math_number" id="2Zqz.p#~i}(LoCSFdAU|">
    <field name="NUM">200</field>
    </block>
    </value>
    </block>
    </value>
    <value name="B">
    <block type="logic_compare" id="p+ecdl-f/cm5ozdgdM~v">
    <field name="OP">LTE</field>
    <value name="A">
    <block type="get_value" id="R;(xoIM,Sg#6VSXs7yyz">
    <field name="ATTR">val</field>
    <field name="OID">javascript.0.Sonnenstand.Azimut</field>
    </block>
    </value>
    <value name="B">
    <block type="math_number" id="ZW!o?tk=wl+YpNWUg_"> <field name="NUM">240</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="T=]oovR{|t@sdh_-LKcf"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.LEQ1436562.1.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="-{fksob!.KJfOUN_KVvY"> <field name="NUM">80</field> </block> </value> <next> <block type="comment" id="v]|hriup#J~V6uv;hCP">
    <field name="COMMENT">Rollo AUF</field>
    <comment pinned="true" h="80" w="160">Automatik AUS
    Schattenmodus Unwahr
    Tür AUF
    Winkel absolut überschritten
    </comment>
    </block>
    </next>
    </block>
    </statement>
    <value name="IF2">
    <block type="logic_operation" id="{hLG|aYJ.p||9qI+is(=" inline="false">
    <field name="OP">OR</field>
    <value name="A">
    <block type="logic_compare" id="C-9:,|^r=+xgr^^Hdp-#">
    <field name="OP">EQ</field>
    <value name="A">
    <block type="get_value" id="u#eR!_!#OSy[E.[/O98"> <field name="ATTR">val</field> <field name="OID">eigene_Variablen.0.Rollo_Variablen.RolloAutomatik</field> </block> </value> <value name="B"> <block type="logic_boolean" id="7Gvn5adO*.i-1dJ[M3T]"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="V5qKrBO@%95-n3W;Uv+_" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="(f4MelbKI][]oTyqN3Q,"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="WdXFRH!TgfzWn7(vvyG0"> <field name="ATTR">val</field> <field name="OID">eigene_Variablen.0.Rollo_Variablen.RolloSchattenmodus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="HIaAkip2ah_*l38Z3u6,"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="=!s[}%];fg0s8CEJJSFi" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="EBf]*rj#kz7ilu.!cM,">
    <field name="OP">EQ</field>
    <value name="A">
    <block type="get_value" id="qSPI]::K3(5paWmOT^.p">
    <field name="ATTR">val</field>
    <field name="OID">hm-rpc.0.LEQ1252259.1.STATE</field>
    </block>
    </value>
    <value name="B">
    <block type="math_number" id="ZP!^{!C7rI..4=mGJMsU">
    <field name="NUM">2</field>
    </block>
    </value>
    </block>
    </value>
    <value name="B">
    <block type="logic_compare" id="RUaQZs=fxO!K=7x+YsH">
    <field name="OP">GTE</field>
    <value name="A">
    <block type="get_value" id="3J.noqVX8_j/6
    XQ.:|K">
    <field name="ATTR">val</field>
    <field name="OID">javascript.0.Sonnenstand.Azimut</field>
    </block>
    </value>
    <value name="B">
    <block type="math_number" id="dkf5NqM=K
    4]-hiT70q5">
    <field name="NUM">240</field>
    </block>
    </value>
    </block>
    </value>
    </block>
    </value>
    </block>
    </value>
    </block>
    </value>
    <statement name="DO2">
    <block type="control" id="Yh;uKBxWUoRZ./iPDpwG">
    <mutation delay_input="false"></mutation>
    <field name="OID">hm-rpc.0.LEQ1436562.1.LEVEL</field>
    <field name="WITH_DELAY">FALSE</field>
    <value name="VALUE">
    <block type="math_number" id="mh0NJPC)PklEp##U_4w">
    <field name="NUM">95</field>
    </block>
    </value>
    </block>
    </statement>
    </block>
    </next>
    </block>
    </statement>
    </block>
    <block type="comment" id="r`E
    e~}M(8n7B,*nSOBD" x="87" y="112">
    <field name="COMMENT">Kommentar</field>
    </block>
    <block type="logic_compare" id="S(29~/2T3#v0P~s)G3Ao" x="525" y="375">
    <field name="OP">NEQ</field>
    <value name="B">
    <block type="math_number" id="A!7~{tIy[4y%pIIpm1G6">
    <field name="NUM">2</field>
    </block>
    </value>
    </block>
    </xml>

    Danke und Grüße Andreas
    L 1 Reply Last reply
    0
    • W weimaraner

      Hallo zusammen,
      meines erstes größeres blockly ist fertig. :relaxed:
      Gesteuert werden sollen Rolladen, die in einem Erker in verschiedene Himmelsrichtungen zeigen. Als Sonnensensor benutze ich den Marmeladenglas HM-Temperatursensor von stall.biz
      Damit detektiere ich die "Sonnenstärke". Ab 18°C am Differenztermometer scheint die Sonne relativ stark.
      Die Rolladen sollen nur herunterfahren, wenn die sonne drauf scheint und in einen "Halbschatten" Modus fahren, wenn die Sonne vorbeigezogen ist.
      Zudem soll die Aussentemperatur auch eine Rolle spielen, wenn es ein diesiger, aber sehr warmer Tag ist.
      Ausserdem soll die Rolladenautomatik (per vis) auch abgechaltet werden können.
      Bei den Terrassenrollos sollen diese nicht herunterfahren, wenn jemand draussen ist, also die Tür geöffnet ist.

      Meine Lösung sieht nun so aus.
      Vielleicht können die blockly Profis mal einen Blick drauf werfen und schauen, ob das so läuft. Testen könnte ich es ja erst, wenn es Sommer ist. Aber da muß es laufen, sonst sinkt der WAF gen 0.
      Für jedes Fenster im Erker habe ich dann ein eigenes Skript mit angepaßten Azimut Werten.
      Rolladen Vorlage.JPG

      Das Blockly für den Schattenmodus sieht wie folgt aus:
      Edit: weiter unten habe ich ein alternatives blockly und die Frage, welches geeignter ist.

      RolloSchattenModus.JPG

      ```
      <xml xmlns="http://www.w3.org/1999/xhtml">
      <block type="on_ext" id="097d5m}CdRhtHmL^iw|W" x="86" y="55">
      <mutation items="2"></mutation>
      <field name="CONDITION">ne</field>
      <field name="ACK_CONDITION"></field>
      <value name="OID0">
      <shadow type="field_oid" id="9z:-r~}EayOy]L[|RP3.">
      <field name="oid">hm-rpc.0.LEQ1251872.1.STATE</field>
      </shadow>
      </value>
      <value name="OID1">
      <shadow type="field_oid" id="lh|y4CTBr(#@7J,2(Vf:">
      <field name="oid">javascript.0.Sonnenstand.Azimut</field>
      </shadow>
      </value>
      <statement name="STATEMENT">
      <block type="comment" id="zEks^SX~c0NJG?84.VJI">
      <field name="COMMENT">Sonne scheint direkt auf Fenster</field>
      <comment pinned="true" h="80" w="160">Automatik AN
      Schattenmodus Wahr
      Tür NICHT AUF
      Winkel erfüllt
      </comment>
      <next>
      <block type="controls_if" id="9[K#H].4-{M.mv*ktWd"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_operation" id="%3taS[CN{8fGFr%xXdta" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=":t(W~p/=g^k6V7Q)Io.6"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="#x={!mTjzt@@N|d.%,Q/"> <field name="ATTR">val</field> <field name="OID">eigene_Variablen.0.Rollo_Variablen.RolloAutomatik</field> </block> </value> <value name="B"> <block type="logic_boolean" id="GD?3nt(d-aNC~P/ZbHjm"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="uiO_7U?RFw@HI,Cdo5kN" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="/cZ81?#Crb+1oFLqH}A2"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="NdW=S2(7A^~_23.|M}x|"> <field name="ATTR">val</field> <field name="OID">eigene_Variablen.0.Rollo_Variablen.RolloSchattenmodus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="5-v.XF;K7E2,~Vw|y5q">
      <field name="BOOL">TRUE</field>
      </block>
      </value>
      </block>
      </value>
      <value name="B">
      <block type="logic_operation" id="r[z;uiy_8t!F.tV.-VO*" inline="false">
      <field name="OP">AND</field>
      <value name="A">
      <block type="logic_compare" id="i/=JF*?7f7|Gm{IBAvl+">
      <field name="OP">NEQ</field>
      <value name="A">
      <block type="get_value" id="ox=O(E_)bS?0{fUT~!kL">
      <field name="ATTR">val</field>
      <field name="OID">hm-rpc.0.LEQ1252259.1.STATE</field>
      </block>
      </value>
      <value name="B">
      <block type="math_number" id="k!:x9G^D6XUGE9_20r%"> <field name="NUM">2</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="Y6E#5y,Y%t|RoF6nI6sF" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="wbgX4ye8ti2Hz(+Q=n*-"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="2h%m2ySv(?#bmuGCGJi;"> <field name="ATTR">val</field> <field name="OID">javascript.0.Sonnenstand.Azimut</field> </block> </value> <value name="B"> <block type="math_number" id=".6m+o?a(AL~Wp0wXc/,;"> <field name="NUM">80</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="GlvokR+5DLRLien,|jG">
      <field name="OP">LTE</field>
      <value name="A">
      <block type="get_value" id="dBxRC9fRnnETdzXRHy.M">
      <field name="ATTR">val</field>
      <field name="OID">javascript.0.Sonnenstand.Azimut</field>
      </block>
      </value>
      <value name="B">
      <block type="math_number" id="*Pb4I1ZY3rg-_b@cNFW"> <field name="NUM">200</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="8eeHb@jDiy^Tsex@(d:@"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.LEQ1436562.1.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="xWm#Hc-_.Vffucv_1xvk"> <field name="NUM">35</field> </block> </value> <next> <block type="comment" id="A5s8cP3M{cNNr=u3|9bA"> <field name="COMMENT">Sonne scheint nicht mehr direkt auf Fenster</field> <comment pinned="true" h="80" w="160">Automatik AN Schattenmodus Wahr Tür NICHT AUF Winkel überschritten </comment> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="!6@?/}7c+o94dg)_,:Iw" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="AZ-V.k258fAUks;U)@E("> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="vWmD7D5-_Df2S-d%%~[M"> <field name="ATTR">val</field> <field name="OID">eigene_Variablen.0.Rollo_Variablen.RolloAutomatik</field> </block> </value> <value name="B"> <block type="logic_boolean" id="0lE_]C,B?g{s2C1RCudM"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="Hw^zq(^~~/V^9FFj(dSs" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="SC.RSQ0dMyMt,dU_z(RK"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="pI@G-lVSEkqh;hePA}^["> <field name="ATTR">val</field> <field name="OID">eigene_Variablen.0.Rollo_Variablen.RolloSchattenmodus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="Q^nW-^+H64bhawB:fDJ="> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="X7+tUcx)MD1R-LA{Mh,N" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="0p[i/4f=R]FrPy9LP7Vz"> <field name="OP">NEQ</field> <value name="A"> <block type="get_value" id="-hgicO;=tU:muaXfOtX">
      <field name="ATTR">val</field>
      <field name="OID">hm-rpc.0.LEQ1252259.1.STATE</field>
      </block>
      </value>
      <value name="B">
      <block type="math_number" id="z;71=I{kw+ahs(vlk[;/">
      <field name="NUM">2</field>
      </block>
      </value>
      </block>
      </value>
      <value name="B">
      <block type="logic_operation" id="68c2Wn,8KP(7:G+Yh~z%" inline="false">
      <field name="OP">AND</field>
      <value name="A">
      <block type="logic_compare" id="7=OR+O_azw-K)QN~5T1a">
      <field name="OP">GTE</field>
      <value name="A">
      <block type="get_value" id="hi(m*qc#Rth^xGxA?Pgb">
      <field name="ATTR">val</field>
      <field name="OID">javascript.0.Sonnenstand.Azimut</field>
      </block>
      </value>
      <value name="B">
      <block type="math_number" id="2Zqz.p#~i}(LoCSFdAU|">
      <field name="NUM">200</field>
      </block>
      </value>
      </block>
      </value>
      <value name="B">
      <block type="logic_compare" id="p+ecdl-f/cm5ozdgdM~v">
      <field name="OP">LTE</field>
      <value name="A">
      <block type="get_value" id="R;(xoIM,Sg#6VSXs7yyz">
      <field name="ATTR">val</field>
      <field name="OID">javascript.0.Sonnenstand.Azimut</field>
      </block>
      </value>
      <value name="B">
      <block type="math_number" id="ZW!o?tk=wl+YpNWUg_"> <field name="NUM">240</field> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="T=]oovR{|t@sdh_-LKcf"> <mutation delay_input="false"></mutation> <field name="OID">hm-rpc.0.LEQ1436562.1.LEVEL</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="-{fksob!.KJfOUN_KVvY"> <field name="NUM">80</field> </block> </value> <next> <block type="comment" id="v]|hriup#J~V6uv;hCP">
      <field name="COMMENT">Rollo AUF</field>
      <comment pinned="true" h="80" w="160">Automatik AUS
      Schattenmodus Unwahr
      Tür AUF
      Winkel absolut überschritten
      </comment>
      </block>
      </next>
      </block>
      </statement>
      <value name="IF2">
      <block type="logic_operation" id="{hLG|aYJ.p||9qI+is(=" inline="false">
      <field name="OP">OR</field>
      <value name="A">
      <block type="logic_compare" id="C-9:,|^r=+xgr^^Hdp-#">
      <field name="OP">EQ</field>
      <value name="A">
      <block type="get_value" id="u#eR!_!#OSy[E.[/O98"> <field name="ATTR">val</field> <field name="OID">eigene_Variablen.0.Rollo_Variablen.RolloAutomatik</field> </block> </value> <value name="B"> <block type="logic_boolean" id="7Gvn5adO*.i-1dJ[M3T]"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="V5qKrBO@%95-n3W;Uv+_" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="(f4MelbKI][]oTyqN3Q,"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="WdXFRH!TgfzWn7(vvyG0"> <field name="ATTR">val</field> <field name="OID">eigene_Variablen.0.Rollo_Variablen.RolloSchattenmodus</field> </block> </value> <value name="B"> <block type="logic_boolean" id="HIaAkip2ah_*l38Z3u6,"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="=!s[}%];fg0s8CEJJSFi" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="EBf]*rj#kz7ilu.!cM,">
      <field name="OP">EQ</field>
      <value name="A">
      <block type="get_value" id="qSPI]::K3(5paWmOT^.p">
      <field name="ATTR">val</field>
      <field name="OID">hm-rpc.0.LEQ1252259.1.STATE</field>
      </block>
      </value>
      <value name="B">
      <block type="math_number" id="ZP!^{!C7rI..4=mGJMsU">
      <field name="NUM">2</field>
      </block>
      </value>
      </block>
      </value>
      <value name="B">
      <block type="logic_compare" id="RUaQZs=fxO!K=7x+YsH">
      <field name="OP">GTE</field>
      <value name="A">
      <block type="get_value" id="3J.noqVX8_j/6
      XQ.:|K">
      <field name="ATTR">val</field>
      <field name="OID">javascript.0.Sonnenstand.Azimut</field>
      </block>
      </value>
      <value name="B">
      <block type="math_number" id="dkf5NqM=K
      4]-hiT70q5">
      <field name="NUM">240</field>
      </block>
      </value>
      </block>
      </value>
      </block>
      </value>
      </block>
      </value>
      </block>
      </value>
      <statement name="DO2">
      <block type="control" id="Yh;uKBxWUoRZ./iPDpwG">
      <mutation delay_input="false"></mutation>
      <field name="OID">hm-rpc.0.LEQ1436562.1.LEVEL</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE">
      <block type="math_number" id="mh0NJPC)PklEp##U_4w">
      <field name="NUM">95</field>
      </block>
      </value>
      </block>
      </statement>
      </block>
      </next>
      </block>
      </statement>
      </block>
      <block type="comment" id="r`E
      e~}M(8n7B,*nSOBD" x="87" y="112">
      <field name="COMMENT">Kommentar</field>
      </block>
      <block type="logic_compare" id="S(29~/2T3#v0P~s)G3Ao" x="525" y="375">
      <field name="OP">NEQ</field>
      <value name="B">
      <block type="math_number" id="A!7~{tIy[4y%pIIpm1G6">
      <field name="NUM">2</field>
      </block>
      </value>
      </block>
      </xml>

      Danke und Grüße Andreas
      L Online
      L Online
      lesiflo
      Most Active
      wrote on last edited by
      #2

      @weimaraner

      wenn ich das richtig sehen gehen deine Rollläden erst nach 20 Minuten runter nachdem die Sonne scheint. Ist das so gewollt?
      Sinnvoller währe es doch sie sofort runtergehen zulassen und sie erst nach 20 Minuten ohne Sonne wieder rauf gehen zulassen.
      So habe ich es zumindest gemacht.

      1 Reply Last reply
      0
      • W Offline
        W Offline
        weimaraner
        wrote on last edited by
        #3

        Ja, das stimmt. Mit dieser Verzögerung will ich das hoch und runter bei schnellen Wolkenwechsel vermeiden.

        L 1 Reply Last reply
        0
        • W weimaraner

          Ja, das stimmt. Mit dieser Verzögerung will ich das hoch und runter bei schnellen Wolkenwechsel vermeiden.

          L Online
          L Online
          lesiflo
          Most Active
          wrote on last edited by
          #4

          @weimaraner
          Das war mir schon klar mit dem rauf und runter, habe ich auch so gemacht. Aber meine Frage war ob sie nicht gleich runter gehen sollten und nicht erst nach 20 Minuten. Die Verzögerung hätte ich beim Hochfahren eingetragen.

          1 Reply Last reply
          0
          • smileS Offline
            smileS Offline
            smile
            wrote on last edited by
            #5

            Ich mache die Verzögerung bei meinem Rolladenblockly nach Badewannen-Prinzip und habe dabei fürs runterfahren eine etwas kleine Verzögerung und fürs hochfahren eine etwas größe Verzögerung eingebaut.
            Das Badewannen Prinzip hat den Vorteil gegenüber deinem System, dass es keine Überschneidungen geben kann. Bei deinem Blockly sieht es mir nämlich so aus dass bei häufigen Werteänderungen das ganze doch öfter rauf und runterfahren kann, je nachdem wie häufig die Sensoren neue Werte liefern und wenn dann vorher schonmal eine 20-Minuten Schleife läuft, dann aber ein anderer Wert kommt, wird dann nicht die 20 Min. Schleife erst abgearbeitet?


            io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

            Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

            W 1 Reply Last reply
            0
            • smileS smile

              Ich mache die Verzögerung bei meinem Rolladenblockly nach Badewannen-Prinzip und habe dabei fürs runterfahren eine etwas kleine Verzögerung und fürs hochfahren eine etwas größe Verzögerung eingebaut.
              Das Badewannen Prinzip hat den Vorteil gegenüber deinem System, dass es keine Überschneidungen geben kann. Bei deinem Blockly sieht es mir nämlich so aus dass bei häufigen Werteänderungen das ganze doch öfter rauf und runterfahren kann, je nachdem wie häufig die Sensoren neue Werte liefern und wenn dann vorher schonmal eine 20-Minuten Schleife läuft, dann aber ein anderer Wert kommt, wird dann nicht die 20 Min. Schleife erst abgearbeitet?

              W Offline
              W Offline
              weimaraner
              wrote on last edited by
              #6

              @smile sagte in [blockly] Rolladensteuerung mit Sonnenverlauf und Sonnensensor:

              je nachdem wie häufig die Sensoren neue Werte liefern und wenn dann vorher schonmal eine 20-Minuten Schleife läuft, dann aber ein anderer Wert kommt, wird dann nicht die 20 Min. Schleife erst abgearbeitet?

              Hi smile. Das verstehe ich nicht so ganz. Der Sonnensensor, der eigentlich ein Temperaturfühler ist, liefert ca. minütlich einen Wert. Wie meinst das mit der schon laufenden 20 Minuten Schleife?
              Grüße Andreas

              1 Reply Last reply
              0
              • smileS Offline
                smileS Offline
                smile
                wrote on last edited by
                #7

                Nunja, wenn der Sonnensensor (Temperaturfühler) den Schwellwert überschreitet, dann wird der Schattenmodus in 20 Minuten gestartet. Wird nach z.B. 5 Minuten der Schwellert wieder unterschritten, und in den nächsten Minuten wieder überschritten, dann laufen mehrere 20-Minuten-Verzögerungen und der Schattenmodus wird laufend wahr / unwahr. Das kann also zu stetigem rauf und runterfahren führen.

                Ich hab auch so angefangen mit einem Blockly so in der Art, habe aber die Erfahrung gemacht dass es mit Badewannen-Prinzip am besten läuft.


                io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

                Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

                1 Reply Last reply
                0
                • W Offline
                  W Offline
                  weimaraner
                  wrote on last edited by weimaraner
                  #8

                  @smile sagte in [blockly] Rolladensteuerung mit Sonnenverlauf und Sonnensensor:

                  dann laufen mehrere 20-Minuten-Verzögerungen und der Schattenmodus wird laufend wahr / unwahr.

                  Eigentlich nicht, oder?
                  Tempwert einmal erreicht, läßt die 20 Minuten laufen. Tempwert unterschritten läßt den Modus auf unwahr.
                  Laufen die 20 Minuten an der Stelle weiter? Ich dachte eigentlich nicht.
                  Sollte jetzt der TempWert erneut überschritten werden, laufen die 20 Minuten neu. Aber dann doch nur diese 20 Minuten und nicht die von vorher auch noch.

                  1 Reply Last reply
                  0
                  • W Offline
                    W Offline
                    weimaraner
                    wrote on last edited by
                    #9

                    Oder ist es richtiger mit dem grünen timeout blockly zu arbeiten?

                    1 Reply Last reply
                    0
                    • smileS Offline
                      smileS Offline
                      smile
                      wrote on last edited by
                      #10

                      Mit dem grünen Blockly Timeout könntest du beim Wechsel zumindest eine "Stop Timeout" Funktion einfügen.

                      Ich lasse mich gerne überraschen wenn es dennoch so funktioniert wie du geplant hast. Meiner Erfahrung nach gibt das aber eher Probleme, und es ist zuverlässiger mit Intervallabfrage nach Badewannenprinzip zu arbeiten.


                      io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

                      Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

                      1 Reply Last reply
                      0
                      • W Offline
                        W Offline
                        weimaraner
                        wrote on last edited by
                        #11

                        So, jetzt nochmal die Randbedingungen:

                        Die "Sonnenstärke" wird mittels Marmeladenglas-TempSensor ermittelt und reagiert träge genug, um nicht bei jedem Wolkenwechsel gleich auszulösen. Dieses Verfahren nutze ich seit ca. 3 Jahren und bin sehr zufrieden. Allerdings mit einem Programm auf der CCU2. Jetzt möchte ich das Programm auf blockly umziehen. Meine Frage ist daher, ob das blockly als solches Sinn macht und die Logiken richtig angeordnet sind.

                        Fall1: es ist sehr warm, aber bedeckt -> das Rollo soll zur "Dämmung" runterfahren
                        Fall2: es ist warm und die Sonne scheint -> das Rollo zum Schatten spenden runterfahren
                        Fall3: die Sonne scheint nicht mehr -> das Rollo soll hochfahren

                        Die Frage ist nun:
                        Passen die Logiken oder gibt es eine "unlogische" Temperaturkonstellation?
                        Nutz man für die Verzögerung blockly1 mit dem verzögerten Einschalten oder blockly2 mit dem timeout?
                        Sind die blocklys richtig angewendet?

                        Grüße Andreas
                        A mit Verzögerung
                        blocklyA Verzögerung.JPG
                        B mit timeout
                        blocklyb timeout.JPG

                        1 Reply Last reply
                        0
                        • L Online
                          L Online
                          lesiflo
                          Most Active
                          wrote on last edited by lesiflo
                          #12

                          Mal 'ne Frage unabhängig von deinem Script. Warum willst du das ganze auf den iobroker umziehen? Du hast dadurch nur eine zusätzliche Fehlerquelle. Sollte aus irgendeinem Grund die Kommunikation zwischen iobroker und deiner CCU mal gestört sein, bleiben die Rollläden oben oder unten. Außer du arbeitest mit Geräten die von der CCU nicht unterstützt werden. Ach ja und deine Rollläden fahren immer noch erst nach 20 Minuten runter und nicht gleich wenn die Sonne scheint.

                          W 1 Reply Last reply
                          0
                          • L lesiflo

                            Mal 'ne Frage unabhängig von deinem Script. Warum willst du das ganze auf den iobroker umziehen? Du hast dadurch nur eine zusätzliche Fehlerquelle. Sollte aus irgendeinem Grund die Kommunikation zwischen iobroker und deiner CCU mal gestört sein, bleiben die Rollläden oben oder unten. Außer du arbeitest mit Geräten die von der CCU nicht unterstützt werden. Ach ja und deine Rollläden fahren immer noch erst nach 20 Minuten runter und nicht gleich wenn die Sonne scheint.

                            W Offline
                            W Offline
                            weimaraner
                            wrote on last edited by weimaraner
                            #13

                            @lesiflo
                            Die CCU2 soll perspektivisch nur noch eine Art backup sein. Alle Programme sollen auf iobroker laufen. Wenn dieser mal nicht laufen sollte, weil ausgefallen, dann schalte ich in der CCU die Rolladenporgramme (und andere) wieder auf aktiv und in relativ kurzer Zeit ist die Automatisation wieder am laufen (quasi im Notprogramm)
                            Die 20 Minuten Verzögerung sind ja auch gewollt. Die Frage ist, welcher Weg zur Verzögerung richtig ist.
                            Edit: jetzt gesehen... du hattest weiter oben schon geschrieben, daß du die Verzögerung eher beim hoch- statt beim runterfahren machen würdest. Da ist was dran, aber ich habe es jetzt in der CCU auch so und bin eigentlich zufrieden.

                            L 1 Reply Last reply
                            0
                            • W weimaraner

                              @lesiflo
                              Die CCU2 soll perspektivisch nur noch eine Art backup sein. Alle Programme sollen auf iobroker laufen. Wenn dieser mal nicht laufen sollte, weil ausgefallen, dann schalte ich in der CCU die Rolladenporgramme (und andere) wieder auf aktiv und in relativ kurzer Zeit ist die Automatisation wieder am laufen (quasi im Notprogramm)
                              Die 20 Minuten Verzögerung sind ja auch gewollt. Die Frage ist, welcher Weg zur Verzögerung richtig ist.
                              Edit: jetzt gesehen... du hattest weiter oben schon geschrieben, daß du die Verzögerung eher beim hoch- statt beim runterfahren machen würdest. Da ist was dran, aber ich habe es jetzt in der CCU auch so und bin eigentlich zufrieden.

                              L Online
                              L Online
                              lesiflo
                              Most Active
                              wrote on last edited by lesiflo
                              #14

                              @weimaraner

                              Ja genau, aber in deinem Blockly ist es anders herum. Du hast die Verzögerung beim Runterfahren eingebaut.

                              1 Reply Last reply
                              0
                              • W Offline
                                W Offline
                                weimaraner
                                wrote on last edited by
                                #15

                                okay, das ändere ich noch. Ansonsten A oder B?:relaxed:

                                L 1 Reply Last reply
                                0
                                • W weimaraner

                                  okay, das ändere ich noch. Ansonsten A oder B?:relaxed:

                                  L Online
                                  L Online
                                  lesiflo
                                  Most Active
                                  wrote on last edited by lesiflo
                                  #16

                                  @weimaraner

                                  Wenn du die Verzögerung noch in das Hochfahren einbaust sollten eigentlich beide Varianten funktionieren.
                                  Einfach mal ausprobieren. Wobei dann die Variante A wohl eher der Logik der CCU entspricht.
                                  Ich habe da einen etwas anderen Ansatz gewählt. Ich habe den Sonnensensor von Homematic. Bei
                                  mir geht die Variable für Beschattung sofort auf wahr oder falsch. Die Verzögerung habe ich in
                                  das Programm für das Schalten der Röllladen eingebaut. Hat den Vorteil das ich dadurch unabhängig der Uhrzeit und Sonnenstand verschiedene Rollläden zu unschiedlichen Zeiten schalten kann (Osten,Süden oder Westen). Morgens in der Küche, Vormittags und Nachmittags dann Süd oder Westfenster im Wohnzimmer.

                                  1 Reply Last reply
                                  0
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  474

                                  Online

                                  32.7k

                                  Users

                                  82.5k

                                  Topics

                                  1.3m

                                  Posts
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Login

                                  • Don't have an account? Register

                                  • Login or register to search.
                                  • First post
                                    Last post
                                  0
                                  • Home
                                  • Recent
                                  • Tags
                                  • Unread 0
                                  • Categories
                                  • Unreplied
                                  • Popular
                                  • GitHub
                                  • Docu
                                  • Hilfe