Navigation

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

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Einschaltwert über Temperatur erfassen

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      siporax @paul53 last edited by

      @paul53 Danke Paul das muss ich ertmal nachbauen in Blockly und Testen

      1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @ticaki last edited by Homoran

        @ticaki siehe letzten Post von mir.
        dann arbeitet man eventbasiert und hat trotzdem die Zeit berücksichtigt

        T 1 Reply Last reply Reply Quote 0
        • T
          ticaki Developer @Homoran last edited by

          @homoran
          hehe... Zeiten brauchste dabei aber auch... und das wird imho tatsächlich kompliziert.

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

            @paul53 Kannste mir das script zur verfügung stellen ?
            Das möchte ich fehlerfrei übernehmen,wenn das geht.

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

              @siporax sagte: script zur verfügung stellen ?

              <xml xmlns="https://developers.google.com/blockly/xml">
               <variables>
                 <variable id="Vn6j?jOO?$kDTnqTWGfU">lastTemp</variable>
                 <variable id="JV,7/}p(l?3Qii59u`wo">temp</variable>
                 <variable id="L:#sVF3F*)ZIZ7+wyOUD">istEin</variable>
               </variables>
               <block type="variables_set" id="]!T`lxoBB4d;Cg!NZ]}|" x="-662" y="-1163">
                 <field name="VAR" id="Vn6j?jOO?$kDTnqTWGfU">lastTemp</field>
                 <value name="VALUE">
                   <block type="get_value" id="Iz2p*j8Ax;+XzF=rVKhl">
                     <field name="ATTR">val</field>
                     <field name="OID">0_userdata.0.Blockly.Temperatur</field>
                   </block>
                 </value>
                 <next>
                   <block type="schedule" id="9vy9?l/Ip;~mD-a8NGT4">
                     <field name="SCHEDULE">*/5 * * * *</field>
                     <statement name="STATEMENT">
                       <block type="variables_set" id="U2YZi=*EcWMmgr5TH/5B">
                         <field name="VAR" id="JV,7/}p(l?3Qii59u`wo">temp</field>
                         <value name="VALUE">
                           <block type="get_value" id="N5#;gX!iV_`9;l3@%8cd">
                             <field name="ATTR">val</field>
                             <field name="OID">0_userdata.0.Blockly.Temperatur</field>
                           </block>
                         </value>
                         <next>
                           <block type="controls_if" id="yoQjZl{f2D5XcmPJfuK!">
                             <mutation elseif="1"></mutation>
                             <value name="IF0">
                               <block type="logic_compare" id="X9VwCHq$Ikow)bf5R)$P">
                                 <field name="OP">GTE</field>
                                 <value name="A">
                                   <block type="variables_get" id="4pB((16P$wnIiV:_RW{m">
                                     <field name="VAR" id="JV,7/}p(l?3Qii59u`wo">temp</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="math_arithmetic" id="-ypD2~#RlcvCw8G=N2QT">
                                     <field name="OP">ADD</field>
                                     <value name="A">
                                       <shadow type="math_number" id="dDkgt-`Ih))K6]iktTJ$">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="variables_get" id="eidIUFk]Uy{qD6:s)P7W">
                                         <field name="VAR" id="Vn6j?jOO?$kDTnqTWGfU">lastTemp</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <shadow type="math_number" id="m47!La,.3r!*:kGOG:i_">
                                         <field name="NUM">1</field>
                                       </shadow>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO0">
                               <block type="variables_set" id="|;r)}t;NdlJK:U%qf@p@">
                                 <field name="VAR" id="L:#sVF3F*)ZIZ7+wyOUD">istEin</field>
                                 <value name="VALUE">
                                   <block type="logic_boolean" id="Lte;~5RI[HxZmV~:9,l?">
                                     <field name="BOOL">TRUE</field>
                                   </block>
                                 </value>
                               </block>
                             </statement>
                             <value name="IF1">
                               <block type="logic_compare" id="Q8YL?;2opW^@CduOyRkJ">
                                 <field name="OP">LTE</field>
                                 <value name="A">
                                   <block type="variables_get" id="-Z_l4#mR/3NfnymU9R+m">
                                     <field name="VAR" id="JV,7/}p(l?3Qii59u`wo">temp</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="math_arithmetic" id="egk=Qz=iAzK-r!HiBrNu">
                                     <field name="OP">MINUS</field>
                                     <value name="A">
                                       <shadow type="math_number" id="dDkgt-`Ih))K6]iktTJ$">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="variables_get" id="TmLPt[P}QkHvB:Lf*dV}">
                                         <field name="VAR" id="Vn6j?jOO?$kDTnqTWGfU">lastTemp</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <shadow type="math_number" id="V;G{]7/Ek0s|@*?,($6q">
                                         <field name="NUM">0.5</field>
                                       </shadow>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO1">
                               <block type="variables_set" id=",!.Ij;r44xuub.^h%{pf">
                                 <field name="VAR" id="L:#sVF3F*)ZIZ7+wyOUD">istEin</field>
                                 <value name="VALUE">
                                   <block type="logic_boolean" id="6oVc%{sJAP#|aG2JW;F6">
                                     <field name="BOOL">FALSE</field>
                                   </block>
                                 </value>
                               </block>
                             </statement>
                             <next>
                               <block type="update" id="LoMN_Gt.CbXa^4?p?vjq">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                 <field name="OID">0_userdata.0.Blockly.WP</field>
                                 <field name="WITH_DELAY">FALSE</field>
                                 <value name="VALUE">
                                   <block type="variables_get" id="mRHB]k/b2+EI3]6i#%/[">
                                     <field name="VAR" id="L:#sVF3F*)ZIZ7+wyOUD">istEin</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="variables_set" id="q=1q;b5nA-;`bgbI8z/d">
                                     <field name="VAR" id="Vn6j?jOO?$kDTnqTWGfU">lastTemp</field>
                                     <value name="VALUE">
                                       <block type="variables_get" id="U!0X(O3pQvmbqtV:lJ]y">
                                         <field name="VAR" id="JV,7/}p(l?3Qii59u`wo">temp</field>
                                       </block>
                                     </value>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </statement>
                   </block>
                 </next>
               </block>
              </xml>
              

              S 1 Reply Last reply Reply Quote 1
              • S
                siporax @paul53 last edited by

                @paul53 muss den Ordner erstellen ?
                0_userdata.0.Blockly.Temperatur

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

                  @siporax sagte: muss den Ordner erstellen ?

                  Nein, dort muss die DS18B20-Temperatur zugewiesen werden.

                  Für "WP" muss ein eigener Datenpunkt unter "0_userdata.0" vom Typ "Logikwert" vorhanden sein / erstellt werden.

                  S 1 Reply Last reply Reply Quote 1
                  • S
                    siporax @paul53 last edited by siporax

                    @paul53 Ok Datenpunkt erstellt.
                    Was ich noch nicht verstehe wo wird mein Relais nun geschaltet in dem Script.
                    Das brauche ich um das im Vis darstellen zu können oder bin ich da falsch?
                    Oder kann ich den Datenpunkt direkt dazu verwenden ?

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

                      @siporax sagte: wo wird mein Relais nun geschaltet in dem Script.

                      Weshalb ein Relais schalten?

                      @siporax sagte in Einschaltwert über Temperatur erfassen:

                      Oder kann ich den Datenpunkt direkt dazu verwenden ?

                      Ja, der eigene Datenpunkt kann in Vis verwendet werden.

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

                        @paul53 said in Einschaltwert über Temperatur erfassen:

                        @siporax sagte: wo wird mein Relais nun geschaltet in dem Script.

                        Weshalb ein Relais schalten?

                        @siporax sagte in Einschaltwert über Temperatur erfassen:

                        Oder kann ich den Datenpunkt direkt dazu verwenden ?

                        Ja, der eigene Datenpunkt kann in Vis verwendet werden.

                        Klasse ,Danke ich teste das mal

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

                          @siporax sagte: ich teste das mal

                          Ich habe das Skript noch um die Initialisierung von istEin bei Skriptstart erweitert:

                          Blockly_temp.JPG

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

                            @paul53 Mache ich gleich.
                            Habe mal nachgemessen ich habe in 16 Minuten einen Temperaturabfall von 0,1°C im Speicher.
                            Ist doch lang für das Script.
                            Denke er Vergleich ja nur 1x oder vergleich er immer wieder bis sich das was ändert und die 5 Minuten stoßen das nur wieder von vorne an?

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

                              @siporax sagte: habe in 16 Minuten einen Temperaturabfall von 0,1°C im Speicher.

                              Dann passen Prüfung alle 5 Minuten und Abfall von 0,5 K nicht.

                              @siporax sagte in Einschaltwert über Temperatur erfassen:

                              vergleich er immer wieder

                              Es wird alle 5 Minuten verglichen.

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

                                @paul53 habs angepasst von 0,5 auf 0,1°C

                                S 1 Reply Last reply Reply Quote 0
                                • S
                                  siporax @siporax last edited by

                                  @siporax Test Temperatur Blockly3.JPG

                                  S 1 Reply Last reply Reply Quote 0
                                  • S
                                    siporax @siporax last edited by siporax

                                    @siporax nur nochmal für mein Verständnis:
                                    vergleicht er immer wieder alle 5 Minuten
                                    und würde dann bei 16 Minuten Wartezeit dennoch Schalten.
                                    Oder muss ich 16 Minuten einstellen anstatt die 5 Minuten ?

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

                                      @siporax sagte: Oder muss ich 16 Minuten einstellen anstatt die 5 Minuten ?

                                      Eher alle 20 Minuten prüfen, ob temp < lastTemp - 0.1 ist, wenn die Auflösung 0,1 K beträgt. Bei Prüfung <= führen auch zufällige Schwankungen zum Ausschalten.

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

                                        @paul53 ok Verstehe.
                                        Das bedeudet dann aber auch das er solange auch wartet diese 20 Minuten beim Aufheizen oder?
                                        Wenn dem so ist könnte man das nicht trennen das man einen andere Intervall bekommt ?

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

                                          @siporax
                                          Steigt die Temperatur nicht ständig solange die WP (Kompressor) läuft? Dann genügt es alle 5 Minuten für das Ausschalten zu prüfen: temp < lastTemp. Das funktioniert unabhängig davon, wie langsam die Temperatur sinkt.

                                          Homoran S 2 Replies Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators @paul53 last edited by Homoran

                                            @paul53 ich bleibe hartnäckig dabei es über die Aktualisierungsgeschwindigkeit (Timestamp - last Timestamp) auszuwerten und auf Änderung zu triggern.

                                            Je kürzer der Abstand der Änderungen nach oben desto schneller wird aufgeheizt.
                                            Im Prinzip kann man dann schon an der (deutlichen) Erhöhung der Zeit das Ende des Aufheizens erkennen.

                                            und ja msec/K ist nicht unbedingt eine gewöhnliche Einheit

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            832
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            59
                                            1962
                                            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