Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly - Rolladensteuerung mit Prüfung auf offene Fenster mit Wiederholung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly - Rolladensteuerung mit Prüfung auf offene Fenster mit Wiederholung

    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      norbhb last edited by

      Hallo zusammen,

      ich bin Neuling in Sachen ioBroker und Blockly. Daher verzeiht mit bitte ggf. blöde Fragen oder Vermutungen. Von Javascript habe ich leider auch so gut wie keine Ahnung.

      Ich habe aber bereits einige Skripte mit Blockly realisiert und schalte damit Homematic Geräte. Das funktioniert weitestgehend alles wie ich möchte.

      Bei einem Szenario habe ich allerdings Probleme das abzubilden.

      Folgendes möchte ich erreichen:

      In jedem Raum sind Fenstersensoren (offen/geschlossen) und Rolladensteuerung vorhanden. Ich möchte zu einem Zeitpunkt X die Rolläden schließen lassen. Allerdings nur wenn das dazugehörige Fenster auch geschlossen ist. Ist das Fenster geöffnet, soll die Prüfung aber immer wieder erfolgen, sodass die Rolläden auch nach dem Zeitpunkt X geschlossen werden sobald das Fenster dann geschlossen ist. Der Befehl zum Schließen soll quasi geparkt werden bis das Fenster geschlossen wird oder ein Zeitpunkt Y erreicht ist.

      So wie ich es umgesetzt habe funktioniert das auch weitestgehend bzw. manchmal. Als Beispiel habe ich mal ein kleines Skript genommen. Es gibt auch Räume mit mehreren Fenstern und mehreren Rolladen und anderen Abhängigkeiten. Ist nun ein Fenster offen werden aber scheinbar andere Skripte nicht mehr ausgeführt. Es bleiben bei geöffnetem Fenster in einem Raum plötzlich die Rolladen eines anderen Raumes geöffnet.

      Ich fürchte das liegt daran, dass ich mit Wiederholungen in Blockly arbeite und das vielleicht nicht das richtige Werkzeug dafür ist.

      Führt eine Wiederholung dazu, dass das System die ganze Zeit in dem Skript bleibt und es immer wieder versucht zu wiederholen und während dessen auch keine anderen Skripte mehr ausgeführt werden? Das würde meine Probleme mit der mangelnden Zuverlässigkeit der Skripte erklären.

      Hier das verwendete Skript:
      13703_esszimmer.png

      ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
      ! <block type="comment" id="]0ZqmioP2VSNH]-%aEA5" x="-638" y="63"><field name="COMMENT">Esszimmer</field>
      ! <next><block type="schedule" id="P3Yb*N?HMq08rY.A:=u/"><field name="SCHEDULE">30 22 * * 0-6</field>
      ! <statement name="STATEMENT"><block type="controls_if" id="6/3{2|z.]t,U;]et+m"><mutation else="1"></mutation> ! <value name="IF0"><block type="logic_compare" id="?xjb23GavD)KD]Z;0N^}"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="lXK0soFK1xL{D[WEAcF2"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.1.0007D7099D033E.1.STATE</field></block></value> ! <value name="B"><block type="convert_tonumber" id="Y6zC?QqpZD3G0?6MYgVj"><value name="VALUE"><block type="math_number" id="sJ_j)oW_0CS_vb_R%be"><field name="NUM">0</field></block></value></block></value></block></value>
      ! <statement name="DO0"><block type="control" id="y3qqK9o6Gx%E;EeQ5CR"><mutation delay_input="true"></mutation> ! <field name="OID">hm-rpc.0.OEQ1317662.1.LEVEL</field> ! <field name="WITH_DELAY">TRUE</field> ! <field name="DELAY_MS">1</field> ! <field name="UNIT">sec</field> ! <field name="CLEAR_RUNNING">FALSE</field> ! <value name="VALUE"><block type="math_number" id="=BKh=#e+WrNyJRDSO|Nn"><field name="NUM">0</field></block></value> ! <next><block type="debug" id="|MjR!6Yd?^F+:5eAH^d"><field name="Severity">log</field>
      ! <value name="TEXT"><shadow type="text" id="8},F]r,hIwFeJ}?t5Q1W"><field name="TEXT">Rolladen Esszimmer abends geschlossen</field></shadow></value></block></next></block></statement>
      ! <statement name="ELSE"><block type="controls_whileUntil" id="|o2YC}=b4LgzCK-Q=?HZ"><field name="MODE">UNTIL</field>
      ! <value name="BOOL"><block type="logic_operation" id="P5DsZ8rOOQ1
      +0%egwZL"><field name="OP">OR</field>
      ! <value name="A"><block type="logic_compare" id="7fb^L+UHQrEs0!ZlDnK"><field name="OP">EQ</field> ! <value name="A"><block type="get_value" id="crutH~k)hpYm[V)qQ:{D"><field name="ATTR">val</field> ! <field name="OID">hm-rpc.1.0007D7099D033E.1.STATE</field></block></value> ! <value name="B"><block type="convert_tonumber" id=":R5N|EJ(Acu71suZ8p@,"><value name="VALUE"><block type="math_number" id="4mAbKJm*UedW/M.3pz.7"><field name="NUM">0</field></block></value></block></value></block></value> ! <value name="B"><block type="time_compare" id="Clu=)S6Q9Kiije47tK;Y"><mutation end_time="true"></mutation> ! <field name="OPTION">between</field> ! <field name="START_TIME">22:30</field> ! <field name="END_TIME">06:00</field></block></value></block></value> ! <statement name="DO"><block type="control" id=";FoI7sK*MeGUBdJ!JxB"><mutation delay_input="false"></mutation>
      ! <field name="OID">hm-rpc.0.OEQ1317662.1.LEVEL</field>
      ! <field name="WITH_DELAY">FALSE</field>
      ! <value name="VALUE"><block type="math_number" id="LjvT30ZeIWJhsm!Jhc8("><field name="NUM">0</field></block></value>
      ! <next><block type="debug" id="DpB+VXCxipU,]b8H4y05"><field name="Severity">log</field>
      ! <value name="TEXT"><shadow type="text" id="dj|1eD/(lWf8p8rn(`x4"><field name="TEXT">Rolladen Esszimmer abends geschlossen (nachdem Fenster geschlossen wurde)</field></shadow></value></block></next></block></statement></block></statement></block></statement></block></next></block></xml>

      Habt ihr Tipps für mich, wie man das besser/richtig machen kann?

      Wichtig ist mir halt die Funktion, dass die Rolladen auch nach dem Schließen das Fenster noch nachträglich geschlossen werden.

      Danke für eure Hilfe!

      LG

      norbhb

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        Schleifen wiederhole bis unbedingt vermeiden !! Vorschlag:
        493_blockly_rollo_zeit_fensterzu.jpg

        1 Reply Last reply Reply Quote 0
        • N
          norbhb last edited by

          Vielen Dank für die schnelle Hilfe.

          Aber würde ich damit nicht eine permanente Steuerung des Rolladen erwirken?

          Das Skript sagt doch im unteren Teil aus, dass wenn das Fenster geschlossen ist, dass dann steuere den Rolladen auf 0%. Aber das würde er ja permanent zwischen 22.30 und 6 Uhr machen, oder macht er das einmalig bei einer Änderung des Status des Fensters?

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            @norbhb:

            macht er das einmalig bei einer Änderung des Status des Fensters? `
            Ja, im Kommentar steht "Fenster <u>wird</u> geschlossen".

            Falls der Fensterkontakt öfter sendet als bei Änderung des Zustands, muss man auf "wurde geändert" triggern und den Wert abfragen.

            falls Aktuelle Zeit ist zwischen 22:30 und 06:00  und  nicht Wert
            
            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            419
            Online

            31.9k
            Users

            80.2k
            Topics

            1.3m
            Posts

            2
            4
            716
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo