Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Klimaautomatik

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Klimaautomatik

    This topic has been deleted. Only users with topic management privileges can see it.
    • Stephan Schleich
      Stephan Schleich @CrunkFX last edited by Stephan Schleich

      @CrunkFX Ich hab nun mal ganz simple angefangen, selbst so startet es nicht, manuell aber schon
      Sind beides bool Variablen, somit haben wir schon mal einen Fehler 🙂
      Klima.png

      (Unwahr weil Handy grad aus ist)

      Edit: Wenn sich der Handypresence WErte von true auf false scheint's zu gehen, sollte aber doch auch ohne gehen oder?

      CrunkFX paul53 4 Replies Last reply Reply Quote 0
      • CrunkFX
        CrunkFX Forum Testing @Stephan Schleich last edited by

        @Stephan-Schleich Sorry für die späte Antwort aber deinen Edit verstehe ich nicht ganz

        1 Reply Last reply Reply Quote 0
        • CrunkFX
          CrunkFX Forum Testing @Stephan Schleich last edited by

          @Stephan-Schleich Handypresence ist ja ein Trigger, nur wenn dieser erfüllt ist und nur in dem Moment wo sich der Zustand ändert wird der Rest in Blau ausgeführt, also ohne Handypresence Kein Klima. Ich tippe, dass du davon ausgehst, das sobald das handy da ist der wert darunter weiter abgefragt wird, dies ist aber nicht der fall, da sich der Zustand ja nur ändert sobald das handy registriert wird. Tausche Handypresence mit Raumtemperatur, diese wird regelmäßig abgefragt und kann dann checken ob das handy da ist.

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

            @Stephan-Schleich
            Wenn bei Anwesenheit um 20:00 Uhr eingeschaltet und um 22:30 Uhr ausgeschaltet werden soll, sind zwei zusätzliche Zeit-Trigger erforderlich.

            CrunkFX 1 Reply Last reply Reply Quote 0
            • CrunkFX
              CrunkFX Forum Testing @paul53 last edited by

              @paul53 Er scheint doch von biz realisieren zu wollen, oder?

              1 Reply Last reply Reply Quote 0
              • CrunkFX
                CrunkFX Forum Testing @Stephan Schleich last edited by CrunkFX

                @Stephan-Schleich Probier den Trigger mal so: Anmerkung 2019-09-15 190219.png

                <xml xmlns="http://www.w3.org/1999/xhtml">
                  <block type="on_ext" id="a@{5xDrpUYXIbreg)1^;" x="88" y="163">
                    <mutation items="1"></mutation>
                    <field name="CONDITION">ne</field>
                    <field name="ACK_CONDITION"></field>
                    <value name="OID0">
                      <shadow type="field_oid" id="PMw4oO^)XPeu7GA=PnvA">
                        <field name="oid">Temp Wohnzimmer</field>
                      </shadow>
                    </value>
                    <statement name="STATEMENT">
                      <block type="controls_if" id="?kDy_%9m;]yP09:L0`j(">
                        <value name="IF0">
                          <block type="logic_operation" id="k*TD`s+{X_XvvhYa0h+q" inline="false">
                            <field name="OP">AND</field>
                            <value name="A">
                              <block type="logic_compare" id="rTRZuM4Z8wuq}dE~HC.B">
                                <field name="OP">EQ</field>
                                <value name="A">
                                  <block type="get_value" id="2:A^/j6-{jh%J+?(Bw3V">
                                    <field name="ATTR">val</field>
                                    <field name="OID">Handypresence</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="logic_boolean" id="U,NvPa/O}E2U`Hi?qmsl">
                                    <field name="BOOL">TRUE</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <value name="B">
                              <block type="logic_operation" id="[}-9pHab2mSeVkptzaMu" inline="false">
                                <field name="OP">AND</field>
                                <value name="A">
                                  <block type="logic_compare" id="b2eN8`cP3-qT`n1*SZl.">
                                    <field name="OP">EQ</field>
                                    <value name="A">
                                      <block type="get_value" id="_SiD!r1D*O}.Tj133+`2">
                                        <field name="ATTR">val</field>
                                        <field name="OID">Klimaanlage Power</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="logic_boolean" id="?H8zS7E7j?E@ava]PPWM">
                                        <field name="BOOL">FALSE</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="B">
                                  <block type="logic_operation" id="4@dDLiJO17s(|%b?t91P" inline="false">
                                    <field name="OP">AND</field>
                                    <value name="A">
                                      <block type="logic_compare" id="1GMQ[z|{Zd^N9lp0ZT/d">
                                        <field name="OP">GT</field>
                                        <value name="A">
                                          <block type="get_value" id="[gh#PxW]z[%{g*_~u-ia">
                                            <field name="ATTR">val</field>
                                            <field name="OID">Temp Wohnzimmer</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="get_value" id="**|2!2x+hj6L9h5X[ri-">
                                            <field name="ATTR">val</field>
                                            <field name="OID">Temp Klimaanlage</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <block type="logic_operation" id="qsx8:`RN=fb6w%%P+-1D" inline="false">
                                        <field name="OP">AND</field>
                                        <value name="A">
                                          <block type="logic_compare" id="o^)Hjnas7T|NY_Qez*l|">
                                            <field name="OP">EQ</field>
                                            <value name="A">
                                              <block type="get_value" id="DwQN}{,=ftE$z2VW3B6`">
                                                <field name="ATTR">val</field>
                                                <field name="OID">Sommerzeit</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <block type="logic_boolean" id="1Jkuv~xDK+cgwK*JOCg~">
                                                <field name="BOOL">TRUE</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <block type="logic_operation" id="zDQ.slhC+tLpLI8i?@ol" inline="false">
                                            <field name="OP">AND</field>
                                            <value name="A">
                                              <block type="time_compare" id="WUj:7BiOA=9fZ~1@a/o$">
                                                <mutation end_time="false"></mutation>
                                                <field name="OPTION">&gt;=</field>
                                                <field name="START_TIME">20:00</field>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <block type="time_compare" id="Q4}2pZ48xgJqTIfg-!mv">
                                                <mutation end_time="false"></mutation>
                                                <field name="OPTION">&lt;=</field>
                                                <field name="START_TIME">23:30</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </statement>
                  </block>
                </xml>
                

                Die Objekte musst du natürlich aus deinem Objektkatalog noch anpassen.
                Übrigens wäre eine kleine Hysterese in Form eines Offset sicher hilfreich, sonst Klima an Klima aus ..........

                1 Reply Last reply Reply Quote 1
                • paul53
                  paul53 @Stephan Schleich last edited by paul53

                  @Stephan-Schleich:

                  sollte aber doch auch ohne gehen oder?

                  Nein, der Zustand des Trigger-Datenpunktes muss sich ändern, damit getriggert wird.

                  Vorschlag:

                  Blockly_temp.JPG

                  <xml xmlns="https://developers.google.com/blockly/xml">
                   <variables>
                     <variable id=",#[n}Gg5cU04i[r{vbVP">anwesend</variable>
                     <variable id="cYFNuA7+[ui2R{rh*Dy3">temperatur</variable>
                     <variable id="{_07)W}dyHfg7bV9kbMy">ein</variable>
                   </variables>
                   <block type="on_ext" id="YNj.._4x;GYL)^j8%b](" x="87" y="12">
                     <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                     <field name="CONDITION">ne</field>
                     <field name="ACK_CONDITION"></field>
                     <value name="OID0">
                       <shadow type="field_oid" id="LOk{:^78XZ^`Cz!J;/UV">
                         <field name="oid">default</field>
                       </shadow>
                     </value>
                     <statement name="STATEMENT">
                       <block type="variables_set" id="9d==KjB!:@GS/!zL8kM7">
                         <field name="VAR" id=",#[n}Gg5cU04i[r{vbVP">anwesend</field>
                         <value name="VALUE">
                           <block type="on_source" id="R(xurYk?*HTWevL?#)`Q">
                             <field name="ATTR">state.val</field>
                           </block>
                         </value>
                         <next>
                           <block type="procedures_callnoreturn" id="oLAJ|Qxw}t`6{4fn!}O6">
                             <mutation name="kuehlen"></mutation>
                           </block>
                         </next>
                       </block>
                     </statement>
                     <next>
                       <block type="on_ext" id="OvSmm.g`|(g*QcRZ7;/]">
                         <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                         <field name="CONDITION">ne</field>
                         <field name="ACK_CONDITION"></field>
                         <value name="OID0">
                           <shadow type="field_oid" id="u7@qHUUkQxMH=)u2_hnU">
                             <field name="oid">default</field>
                           </shadow>
                         </value>
                         <statement name="STATEMENT">
                           <block type="variables_set" id=",gNc73gdnP3n#0::,ggC">
                             <field name="VAR" id="cYFNuA7+[ui2R{rh*Dy3">temperatur</field>
                             <value name="VALUE">
                               <block type="on_source" id="1HCa;{|q*HMR0DV)0Dd.">
                                 <field name="ATTR">state.val</field>
                               </block>
                             </value>
                             <next>
                               <block type="procedures_callnoreturn" id="Nk[%`8lHmL1%F`/lPC|W">
                                 <mutation name="kuehlen"></mutation>
                               </block>
                             </next>
                           </block>
                         </statement>
                         <next>
                           <block type="schedule" id="*)bu;dEPPzy54LGvK(Ys">
                             <field name="SCHEDULE">0 20 * * *</field>
                             <statement name="STATEMENT">
                               <block type="procedures_callnoreturn" id="=%dEl#JJTv.%hmBZ*YEq">
                                 <mutation name="kuehlen"></mutation>
                               </block>
                             </statement>
                             <next>
                               <block type="schedule" id="fbTw-^/AAjYH,pgYPBSX">
                                 <field name="SCHEDULE">30 22 * * *</field>
                                 <statement name="STATEMENT">
                                   <block type="procedures_callnoreturn" id="ED)/87kx;~]Xp.zojoge">
                                     <mutation name="kuehlen"></mutation>
                                   </block>
                                 </statement>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                   <block type="procedures_defnoreturn" id="Bbf%9?1bkwu!iz%Ub-jw" x="412" y="13">
                     <field name="NAME">kuehlen</field>
                     <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                     <statement name="STACK">
                       <block type="controls_if" id="ppM%sPOym-1Y](hAm(q6">
                         <mutation else="1"></mutation>
                         <value name="IF0">
                           <block type="logic_operation" id="_Y_Qia}J9A,eUw2pZ=F," inline="false">
                             <field name="OP">AND</field>
                             <value name="A">
                               <block type="logic_operation" id="PvvH|_qg5eE])u7KHsev" inline="false">
                                 <field name="OP">AND</field>
                                 <value name="A">
                                   <block type="variables_get" id="|fHqoQYX}=!Uqtl}OU34">
                                     <field name="VAR" id=",#[n}Gg5cU04i[r{vbVP">anwesend</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="get_value" id="p}DN%6$ZpGO_?6E2Zs-F">
                                     <field name="ATTR">val</field>
                                     <field name="OID">ID auswählen</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <value name="B">
                               <block type="time_compare" id="/bXbx6=z^~!_%!6vv@{?">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation>
                                 <field name="OPTION">between</field>
                                 <field name="START_TIME">20:00</field>
                                 <field name="END_TIME">22:30</field>
                               </block>
                             </value>
                           </block>
                         </value>
                         <statement name="DO0">
                           <block type="controls_if" id="C$6:9$56%C,R~=E:8/,B">
                             <mutation elseif="1"></mutation>
                             <value name="IF0">
                               <block type="logic_compare" id="~1dNq!mZ3VpOM0CIpt(m">
                                 <field name="OP">GT</field>
                                 <value name="A">
                                   <block type="variables_get" id="p^OZN:AX-SU%8D{:06{P">
                                     <field name="VAR" id="cYFNuA7+[ui2R{rh*Dy3">temperatur</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="get_value" id="=wB;Z:WyX[Vx4SV9h`@H">
                                     <field name="ATTR">val</field>
                                     <field name="OID">ID auswählen</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO0">
                               <block type="variables_set" id="6t!@o?4QV9=ypvjtbd%Y">
                                 <field name="VAR" id="{_07)W}dyHfg7bV9kbMy">ein</field>
                                 <value name="VALUE">
                                   <block type="logic_boolean" id="q8Wl4SyJP`H1e]pmN}Y-">
                                     <field name="BOOL">TRUE</field>
                                   </block>
                                 </value>
                               </block>
                             </statement>
                             <value name="IF1">
                               <block type="logic_compare" id="3)V;}[8e;Tn/@+ihB]-n">
                                 <field name="OP">LTE</field>
                                 <value name="A">
                                   <block type="variables_get" id="rt}2n0apEDyd.p:^4v@R">
                                     <field name="VAR" id="cYFNuA7+[ui2R{rh*Dy3">temperatur</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="math_arithmetic" id="Gs^WPdkl#wmnd?]Wi;:#">
                                     <field name="OP">MINUS</field>
                                     <value name="A">
                                       <shadow type="math_number" id="^PXS$i.V;`!-*=Xf[CD1">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="get_value" id="8SribB_vha]}voS^kI4R">
                                         <field name="ATTR">val</field>
                                         <field name="OID">ID auswählen</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <shadow type="math_number" id="a9-S~X+Z-NL^CelZoYfN">
                                         <field name="NUM">0.5</field>
                                       </shadow>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO1">
                               <block type="variables_set" id="2Vobz4w?b-m,l#)-VomB">
                                 <field name="VAR" id="{_07)W}dyHfg7bV9kbMy">ein</field>
                                 <value name="VALUE">
                                   <block type="logic_boolean" id="j}dj89pmd.G|Jl%lBM,d">
                                     <field name="BOOL">FALSE</field>
                                   </block>
                                 </value>
                               </block>
                             </statement>
                           </block>
                         </statement>
                         <statement name="ELSE">
                           <block type="variables_set" id="-HI7mr0P;iOM-zDLWs[f">
                             <field name="VAR" id="{_07)W}dyHfg7bV9kbMy">ein</field>
                             <value name="VALUE">
                               <block type="logic_boolean" id="0ojp[euPAp=85{@qoN10">
                                 <field name="BOOL">FALSE</field>
                               </block>
                             </value>
                           </block>
                         </statement>
                         <next>
                           <block type="controls_if" id="=cfhZNH7CAY%|79ke;UM">
                             <value name="IF0">
                               <block type="logic_compare" id=":aZi[XLG@INk`ILDgyK{">
                                 <field name="OP">NEQ</field>
                                 <value name="A">
                                   <block type="variables_get" id="g]GQ2oybF[K8rp3ONc4V">
                                     <field name="VAR" id="{_07)W}dyHfg7bV9kbMy">ein</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="get_value" id="IiO5n~B0F3qVVXso_*s5">
                                     <field name="ATTR">val</field>
                                     <field name="OID">ID auswählen</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO0">
                               <block type="control" id="zHo{ISJ8zc)@eM,O;_tI">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                 <field name="OID">Object ID</field>
                                 <field name="WITH_DELAY">FALSE</field>
                                 <value name="VALUE">
                                   <block type="variables_get" id="ev/:jFq,%1o4~a[_[WgD">
                                     <field name="VAR" id="{_07)W}dyHfg7bV9kbMy">ein</field>
                                   </block>
                                 </value>
                               </block>
                             </statement>
                           </block>
                         </next>
                       </block>
                     </statement>
                   </block>
                  </xml>
                  

                  1 Reply Last reply Reply Quote 1
                  • Stephan Schleich
                    Stephan Schleich last edited by Stephan Schleich

                    @paul53 @CrunkFX Danke euch 2 für die Beispiele. Ich dachte der Trigger würde in gewissen Intervallen prüfen, dann ist es logisch warum es nicht klappt.

                    Ich probier mal pauls Blockly da er mehrere Trigger abfrägt

                    Bei dem rot markierten Feld bin ich mir unsicher, er frägt ab ob ich anwesend bin, ob die klima aus ist und ob's zwischen der genannten zeit liegt oder?
                    Klima.png

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

                      @Stephan-Schleich:

                      Bei dem rot markierten Feld bin ich mir unsicher

                      Rechts oben soll "Sommerzeit" abgefragt werden.
                      Bei "steuere" fehlt noch die Datenpunkt-Zuweisung zu "Büro Klimaanlage Power".

                      Stephan Schleich 2 Replies Last reply Reply Quote 1
                      • Stephan Schleich
                        Stephan Schleich @paul53 last edited by

                        @paul53 Danke, teste ich die Tage 👍

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

                          @paul53 habs gerade mal getestet, leider passiert nichts automatisch.
                          Klima.png

                          Stephan Schleich 1 Reply Last reply Reply Quote 0
                          • Stephan Schleich
                            Stephan Schleich @Stephan Schleich last edited by Stephan Schleich

                            Ich weiß es ist eigentlich das selbe wie von Paul aber die Trigger Punkte haben iwie die Werte nicht richtig übernommen, so läufts bei mir

                            Klima.png

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            554
                            Online

                            32.0k
                            Users

                            80.4k
                            Topics

                            1.3m
                            Posts

                            3
                            16
                            560
                            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