Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

[blockly] [Frage] Rolladensteuerung mit Sonnenverlauf und Sonnensensor

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
16 Beiträge 3 Kommentatoren 4.8k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • W Offline
    W Offline
    weimaraner
    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
    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 Offline
      L Offline
      lesiflo
      Most Active
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • W Offline
        W Offline
        weimaraner
        schrieb am zuletzt editiert von
        #3

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

        L 1 Antwort Letzte Antwort
        0
        • W weimaraner

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

          L Offline
          L Offline
          lesiflo
          Most Active
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          0
          • smileS Offline
            smileS Offline
            smile
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • smileS Offline
                smileS Offline
                smile
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                0
                • W Offline
                  W Offline
                  weimaraner
                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                  0
                  • W Offline
                    W Offline
                    weimaraner
                    schrieb am zuletzt editiert von
                    #9

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

                    1 Antwort Letzte Antwort
                    0
                    • smileS Offline
                      smileS Offline
                      smile
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      0
                      • W Offline
                        W Offline
                        weimaraner
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        0
                        • L Offline
                          L Offline
                          lesiflo
                          Most Active
                          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                            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 Offline
                              L Offline
                              lesiflo
                              Most Active
                              schrieb am zuletzt editiert von lesiflo
                              #14

                              @weimaraner

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

                              1 Antwort Letzte Antwort
                              0
                              • W Offline
                                W Offline
                                weimaraner
                                schrieb am zuletzt editiert von
                                #15

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

                                L 1 Antwort Letzte Antwort
                                0
                                • W weimaraner

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

                                  L Offline
                                  L Offline
                                  lesiflo
                                  Most Active
                                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  806

                                  Online

                                  32.6k

                                  Benutzer

                                  82.0k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe