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.
    • paul53
      paul53 @ticaki last edited by paul53

      Der DS18B20 sendet den Wert zu oft, so dass die Temperaturdifferenz von 1 K zum vorherigen Wert nie zustande kommt. Deshalb:

      @ticaki sagte in Einschaltwert über Temperatur erfassen:

      Zeitplan alten Wert speichern und mit neuem Vergleichen.

      Blockly_temp.JPG

      Homoran S 3 Replies Last reply Reply Quote 1
      • S
        siporax @ticaki last edited by

        @ticaki Bin schon froh das ich das so hinbekommen haben 🙂 das überfordert meine Kentnisse

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

          @paul53

          @paul53 sagte in Einschaltwert über Temperatur erfassen:

          so dass die Temperaturdifferenz von 1 K zum vorherigen Wert nie zustande kommt.

          dann könnte man mit (Timestamp - last Timestamp) arbeiten und die Entscheidung an der Kürze der Differenz festmachen

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

            @homoran

            Denke plus 1 °C sollte reichen für den Ein zu Signalisieren zu erfassen.
            Für den Aus Zustande dann minus 0,5°C.

            Also wenn die Temperatur dann nach 30 Minuten um 0,5C° gefallen ist, signalisieren wir aus. 🙂 Daher die Zeitkomponente.

            @siporax
            Schau dir das von Paul an, gut umgesetzt wie immer.

            Homoran 1 Reply Last reply Reply Quote 0
            • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            499
                                            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