Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Lüftung nach Einschalten für 6 Std. Zwangspause

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Lüftung nach Einschalten für 6 Std. Zwangspause

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

      Hallo,
      ich bin gerade dabei meine Kellerlüftung mit Blocky zu automatisieren und komme einfach sind weiter (kenne mich auch noch nicht besonders aus)
      Ich habe über 2 Temperaturfühler die innen und außen die absolute Luftfeuchte berechnen und lasse auf Grund des Unterschiedes (ab 2 Differenz) einen
      angelegten Datenpunkt auf True und bei unter 1,5 Differenz auf False schalten.
      Daraufhin öffnet sich ein automatisches Kellerfenster.
      Nun möchte ich dazu auf der anderen Seite vom Keller noch einen Ventilator dazuschalten. Dieser soll ebenfalls wenn Kellerfenster auf = 30 Minuten mitlaufen und dann wieder ausgehen.
      Und jetzt kommt mein Problem. Ich möchte gerne, dass der Lüfter dann für eine Zeit X nicht wieder anläuft (auch wenn Lüftungsempfehlung weiterhin auf True und Fenster noch offen.
      Kann man das irgenwie machen?

      Grüße
      Flo

      Blockly 2.jpg

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

        @FloJo sagte:

        Lüfter dann für eine Zeit X nicht wieder anläuft

        Blockly_temp.JPG

        <xml xmlns="http://www.w3.org/1999/xhtml">
         <variables>
           <variable type="" id="l;2$H%vIhD$mH,+ucfMI">sperre</variable>
           <variable type="undefined" id="timeout">timeout</variable>
         </variables>
         <block type="on_ext" id="|xDt[_`rE@[qAK$1$_-~" x="-213" y="-88">
           <mutation items="1"></mutation>
           <field name="CONDITION">ne</field>
           <field name="ACK_CONDITION"></field>
           <value name="OID0">
             <shadow type="field_oid" id="tQ`c-EZan%F`/;ZB)IW1">
               <field name="oid">default</field>
             </shadow>
           </value>
           <statement name="STATEMENT">
             <block type="controls_if" id="C%;!^UAX+I,;;~4i~Fq[">
               <value name="IF0">
                 <block type="logic_operation" id="Z%pR.f655j!TaFZ`w6`R" inline="false">
                   <field name="OP">AND</field>
                   <value name="A">
                     <block type="on_source" id="l_@S{YfZ.}WEG9(yc(.y">
                       <field name="ATTR">state.val</field>
                     </block>
                   </value>
                   <value name="B">
                     <block type="logic_negate" id="8^j/Q#-r?*nS{gQc~k8Z">
                       <value name="BOOL">
                         <block type="variables_get" id="UAz}%ixAa5-n@IXNV#.H">
                           <field name="VAR" id="l;2$H%vIhD$mH,+ucfMI" variabletype="">sperre</field>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </value>
               <statement name="DO0">
                 <block type="variables_set" id="_@izukQ,L-2QdpZeZ|0P">
                   <field name="VAR" id="l;2$H%vIhD$mH,+ucfMI" variabletype="">sperre</field>
                   <value name="VALUE">
                     <block type="logic_boolean" id="{0h(uUBk!C!zDyUiY):y">
                       <field name="BOOL">TRUE</field>
                     </block>
                   </value>
                   <next>
                     <block type="control" id="]7i0R(RyAa)yQX]J+^@T">
                       <mutation delay_input="false"></mutation>
                       <field name="OID">Object ID</field>
                       <field name="WITH_DELAY">FALSE</field>
                       <value name="VALUE">
                         <block type="logic_boolean" id="T-cDu~{oh8U,7*Yynb_.">
                           <field name="BOOL">TRUE</field>
                         </block>
                       </value>
                       <next>
                         <block type="control" id="5v3v8Ba71p)$3:]Tg]PN">
                           <mutation delay_input="true"></mutation>
                           <field name="OID">Object ID</field>
                           <field name="WITH_DELAY">TRUE</field>
                           <field name="DELAY_MS">30</field>
                           <field name="UNIT">min</field>
                           <field name="CLEAR_RUNNING">FALSE</field>
                           <value name="VALUE">
                             <block type="logic_boolean" id="NJ+4u555i|1:XWUdMVBi">
                               <field name="BOOL">FALSE</field>
                             </block>
                           </value>
                           <next>
                             <block type="timeouts_settimeout" id="5a/KYjV=V+CK$P53B)iM">
                               <field name="NAME">timeout</field>
                               <field name="DELAY">360</field>
                               <field name="UNIT">min</field>
                               <statement name="STATEMENT">
                                 <block type="variables_set" id="6S%Dp3nd+Bz9SO933nq-">
                                   <field name="VAR" id="l;2$H%vIhD$mH,+ucfMI" variabletype="">sperre</field>
                                   <value name="VALUE">
                                     <block type="logic_boolean" id="Oa3[w1^`XBTIS~9O_!)t">
                                       <field name="BOOL">FALSE</field>
                                     </block>
                                   </value>
                                 </block>
                               </statement>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
               </statement>
             </block>
           </statement>
         </block>
        </xml>
        

        1 Reply Last reply Reply Quote 0
        • F
          FloJo last edited by

          Wow, dass ging ja schnell. Vielen Dank, dass teste ich gleich mal.

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

            @FloJo
            Soll der Lüfter nach 6 Stunden wieder laufen, wenn die Lüftungsempfehlung zu diesem Zeitpunkt aktiv ist, muss man es etwas anders machen.

            Blockly_temp.JPG

            <xml xmlns="http://www.w3.org/1999/xhtml">
             <variables>
               <variable type="" id="j!1iUYk,!Pom)Z,$5rj8">lueften</variable>
               <variable type="" id="l;2$H%vIhD$mH,+ucfMI">sperre</variable>
               <variable type="undefined" id="timeout">timeout</variable>
             </variables>
             <block type="procedures_defnoreturn" id="|PBOZE_dJ699DAiarz(F" x="-213" y="-87">
               <field name="NAME">Luefter</field>
               <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
               <statement name="STACK">
                 <block type="controls_if" id="[_sXWX=OlT6f|-yz;F8c">
                   <value name="IF0">
                     <block type="variables_get" id="744BSt?St4N2A~CjbiUj">
                       <field name="VAR" id="j!1iUYk,!Pom)Z,$5rj8" variabletype="">lueften</field>
                     </block>
                   </value>
                   <statement name="DO0">
                     <block type="control" id="]7i0R(RyAa)yQX]J+^@T">
                       <mutation delay_input="false"></mutation>
                       <field name="OID">Object ID</field>
                       <field name="WITH_DELAY">FALSE</field>
                       <value name="VALUE">
                         <block type="logic_boolean" id="T-cDu~{oh8U,7*Yynb_.">
                           <field name="BOOL">TRUE</field>
                         </block>
                       </value>
                       <next>
                         <block type="control" id="5v3v8Ba71p)$3:]Tg]PN">
                           <mutation delay_input="true"></mutation>
                           <field name="OID">Object ID</field>
                           <field name="WITH_DELAY">TRUE</field>
                           <field name="DELAY_MS">30</field>
                           <field name="UNIT">min</field>
                           <field name="CLEAR_RUNNING">FALSE</field>
                           <value name="VALUE">
                             <block type="logic_boolean" id="NJ+4u555i|1:XWUdMVBi">
                               <field name="BOOL">FALSE</field>
                             </block>
                           </value>
                           <next>
                             <block type="variables_set" id="_@izukQ,L-2QdpZeZ|0P">
                               <field name="VAR" id="l;2$H%vIhD$mH,+ucfMI" variabletype="">sperre</field>
                               <value name="VALUE">
                                 <block type="logic_boolean" id="{0h(uUBk!C!zDyUiY):y">
                                   <field name="BOOL">TRUE</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="timeouts_settimeout" id="5a/KYjV=V+CK$P53B)iM">
                                   <field name="NAME">timeout</field>
                                   <field name="DELAY">360</field>
                                   <field name="UNIT">min</field>
                                   <statement name="STATEMENT">
                                     <block type="variables_set" id="6S%Dp3nd+Bz9SO933nq-">
                                       <field name="VAR" id="l;2$H%vIhD$mH,+ucfMI" variabletype="">sperre</field>
                                       <value name="VALUE">
                                         <block type="logic_boolean" id="Oa3[w1^`XBTIS~9O_!)t">
                                           <field name="BOOL">FALSE</field>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="procedures_callnoreturn" id="}5=oI1b]Y?KTu!Zf=Xxr">
                                           <mutation name="Luefter"></mutation>
                                         </block>
                                       </next>
                                     </block>
                                   </statement>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </statement>
                 </block>
               </statement>
             </block>
             <block type="on_ext" id="|xDt[_`rE@[qAK$1$_-~" x="-212" y="212">
               <mutation items="1"></mutation>
               <field name="CONDITION">ne</field>
               <field name="ACK_CONDITION"></field>
               <value name="OID0">
                 <shadow type="field_oid" id="tQ`c-EZan%F`/;ZB)IW1">
                   <field name="oid">default</field>
                 </shadow>
               </value>
               <statement name="STATEMENT">
                 <block type="variables_set" id="_UkUgMTPze`]#}WK*?)R">
                   <field name="VAR" id="j!1iUYk,!Pom)Z,$5rj8" variabletype="">lueften</field>
                   <value name="VALUE">
                     <block type="on_source" id="l_@S{YfZ.}WEG9(yc(.y">
                       <field name="ATTR">state.val</field>
                     </block>
                   </value>
                   <next>
                     <block type="controls_if" id="C%;!^UAX+I,;;~4i~Fq[">
                       <value name="IF0">
                         <block type="logic_negate" id="8^j/Q#-r?*nS{gQc~k8Z">
                           <value name="BOOL">
                             <block type="variables_get" id="UAz}%ixAa5-n@IXNV#.H">
                               <field name="VAR" id="l;2$H%vIhD$mH,+ucfMI" variabletype="">sperre</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <statement name="DO0">
                         <block type="procedures_callnoreturn" id="f9W%G~k(Z*(lP(s*tCgu">
                           <mutation name="Luefter"></mutation>
                         </block>
                       </statement>
                     </block>
                   </next>
                 </block>
               </statement>
             </block>
            </xml>
            

            W 1 Reply Last reply Reply Quote 0
            • F
              FloJo last edited by

              Genau, ich möchte nach erfolgter Lüftung eine Zwangspause von 6 Stunden und danach soll der Datenpunkt Lüftungsempfehlung wieder neu geprüft werden. Wenn dann noch True wird erneut für 30 Minuten gelüftet und wenn false bleibt der Lüfter aus.

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

                @FloJo sagte:

                Wenn dann noch True wird erneut für 30 Minuten gelüftet und wenn false bleibt der Lüfter aus.

                Dann sollte die 2. Version passen.

                W 1 Reply Last reply Reply Quote 0
                • W
                  woupi @paul53 last edited by woupi

                  @paul53

                  ich weiß, dass Thema hier ist uralt, allerdings bin ich bei der Suche nach einem Lösungsvorschlag für etwas ähnliches, auf dieses Thema gestoßen und Antworte, bzw stelle meine Frage, darum auch hier drauf.

                  Ich bin noch ganz frisch in blockly und kenne noch lange nicht alle Funktionen.

                  Das was Du hier vorgeschlagen hast, kann ich darum leider nicht ganz nachvollziehen, also was wird wann warum gemacht.
                  Da ich blockly versuche zu lernen, wäre es super Nett, wenn Du, oder auch jemand anderes, mir dein kleines Skript genauer erklären könntest.

                  Speziell geht es mir um die Punkte "Funktionen Luefter" und "setze lueften auf Wert".

                  Den Rest habe ich glaube ich verstanden bzw kann es nachvollziehen und die gewünschte Funktion funktioniert auch.

                  Schonmal vielen Dank im Voraus und VG

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

                    @woupi sagte: "setze lueften auf Wert".

                    lueften ist eine selbst erstellte globale Variable, die in der Funktion Luefter ausgewertet wird. Die Funktion Luefter wird nach 6 Stunden erneut aufgerufen und dabei die Variable `lueften' geprüft.

                    W 1 Reply Last reply Reply Quote 0
                    • W
                      woupi @paul53 last edited by

                      @paul53

                      Ok, danke erstmal für die rasche Antwort.

                      Das hatte ich mir so allerdings auch schon vorgestellt, nur auf welchen Wert?
                      Also wo kommt jetzt genau ein Wert her?

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

                        @woupi sagte: auf welchen Wert?

                        Wert (unter "Trigger", damals noch ohne Pfeil) enthält den Wert des Trigger-Datenpunktes: Lüftungsanforderung.

                        1 Reply Last reply Reply Quote 1
                        • W
                          woupi @paul53 last edited by woupi

                          @paul53 sagte in Lüftung nach Einschalten für 6 Std. Zwangspause:

                          Blockly_temp.JPG

                          Habe ich das richtig verstanden, dass "Wert" den Wert des Trigger-Datenpunkt: default , enthält?

                          Den Datenpunkt "Lüftungsanforderung" gibt es nicht, darum frage ich so doof.

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

                            @woupi sagte: "Wert" den Wert des Trigger-Datenpunkt: default , enthält?

                            "default" ist kein Datenpunkt! Es muss ein Datenpunkt zur "Lüftungsanforderung" zugewiesen werden.

                            @flojo sagte in Lüftung nach Einschalten für 6 Std. Zwangspause:

                            absolute Luftfeuchte berechnen und lasse auf Grund des Unterschiedes (ab 2 Differenz) einen angelegten Datenpunkt auf True und bei unter 1,5 Differenz auf False schalten.

                            Wenn man so ein altes Thema kapert, sollte man es schon richtig lesen.

                            W 2 Replies Last reply Reply Quote 0
                            • W
                              woupi @paul53 last edited by

                              @paul53

                              sorry, war missverständlich von mir ausgedrückt.

                              An die Stelle, wo jetzt Default steht, muss natürlich ein Datenpunkt, wie auch immer der heißen mag, und dessen Wert wird dann gesetzt.

                              6fb81df4-9d15-4383-979c-b85f9575de77-image.png

                              Bei mir heißt der Datenpunkt jetzt "lüften".

                              1 Reply Last reply Reply Quote 0
                              • W
                                woupi @paul53 last edited by

                                @paul53 sagte in Lüftung nach Einschalten für 6 Std. Zwangspause:

                                Wenn man so ein altes Thema kapert, sollte man es schon richtig lesen.

                                Da hast Du natürlich vollkommen recht, warum auch immer ich das ganz oben übersehen habe, mein Fehler, sorry.

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                889
                                Online

                                32.0k
                                Users

                                80.4k
                                Topics

                                1.3m
                                Posts

                                3
                                14
                                591
                                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