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 @Homoran last edited by

      @homoran said in Einschaltwert über Temperatur erfassen:

      @siporax sagte in Einschaltwert über Temperatur erfassen:

      hoffe es stimmt so.

      was soll denn aktualisiert werden?

      <xml xmlns="https://developers.google.com/blockly/xml">
       <variables>
         <variable id="+#q}sbU;cU9]yxO-lDC1">Abweichung</variable>
       </variables>
       <block type="variables_set" id="m?]6iqd-!BOn;lQIEdlV" x="116" y="-652">
         <field name="VAR" id="+#q}sbU;cU9]yxO-lDC1">Abweichung</field>
         <value name="VALUE">
           <block type="math_number" id="rh?cgbnCT3E|rIVaG69W">
             <field name="NUM">1</field>
           </block>
         </value>
         <next>
           <block type="on" id="QaUb7$N.YH1?Iogdb[{W">
             <field name="OID">sonoff.0.Warmwasserspeicher.DS18B20_Temperature</field>
             <field name="CONDITION">ne</field>
             <field name="ACK_CONDITION"></field>
             <statement name="STATEMENT">
               <block type="update" id=".v~P?b)=F~4laQPnl~S.">
                 <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="logic_compare" id="MgS(TzKR(xPov)|.~;%O">
                     <field name="OP">GTE</field>
                     <value name="A">
                       <block type="on_source" id="J2hqtFqsn6O!pFKR,#H9">
                         <field name="ATTR">state.val</field>
                       </block>
                     </value>
                     <value name="B">
                       <block type="math_arithmetic" id="p?y$yYdJ-URA?~Po4l6(">
                         <field name="OP">ADD</field>
                         <value name="A">
                           <shadow type="math_number" id="M`@JEV9s?e,!JQC4N^GN">
                             <field name="NUM">1</field>
                           </shadow>
                           <block type="on_source" id="A5MDlg,KSM,?lgS9U8ly">
                             <field name="ATTR">oldState.val</field>
                           </block>
                         </value>
                         <value name="B">
                           <shadow type="math_number" id="X~ud,RTMt$ODVg?zw{%Q">
                             <field name="NUM">1</field>
                           </shadow>
                           <block type="variables_get" id="!dtv=owCSg{[DOls3QU/">
                             <field name="VAR" id="+#q}sbU;cU9]yxO-lDC1">Abweichung</field>
                           </block>
                         </value>
                       </block>
                     </value>
                   </block>
                 </value>
                 <next>
                   <block type="update" id="t#CHnKUJ{C=jXlNVj*Hv">
                     <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="logic_compare" id="FM*`IS(FeVro?+=h.4r0">
                         <field name="OP">LTE</field>
                         <value name="A">
                           <block type="on_source" id="ALW/S$nM?Eg,o=JYW~@]">
                             <field name="ATTR">state.val</field>
                           </block>
                         </value>
                         <value name="B">
                           <block type="math_arithmetic" id="%iWJES=TpBGg*JbP|-MU">
                             <field name="OP">MINUS</field>
                             <value name="A">
                               <shadow type="math_number">
                                 <field name="NUM">1</field>
                               </shadow>
                               <block type="on_source" id="@GtHbeHU4`@Z[){cYvqW">
                                 <field name="ATTR">oldState.val</field>
                               </block>
                             </value>
                             <value name="B">
                               <shadow type="math_number">
                                 <field name="NUM">1</field>
                               </shadow>
                               <block type="variables_get" id="?M@%.K3@m]|]Q-R}Yj8q">
                                 <field name="VAR" id="+#q}sbU;cU9]yxO-lDC1">Abweichung</field>
                               </block>
                             </value>
                           </block>
                         </value>
                       </block>
                     </value>
                   </block>
                 </next>
               </block>
             </statement>
           </block>
         </next>
       </block>
      </xml>
      

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

        @siporax
        Das geht so eher nicht. Mit Triggern hast du keine feste Zeitvorgabe. Zeitplan alten Wert speichern und mit neuem Vergleichen. Das geht zwar auch mit Triggern aber dann muß du zumindest die alten Werte speichern bis die Abweichung zutrifft und erst dann den alten Wert neu speichern.

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

          @siporax was willst du mir mit einer xml-Datei sagen?

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

            @ticaki sagte in Einschaltwert über Temperatur erfassen:

            keine feste Zeitvorgabe

            wo kommt jetzt dauernd diese Zeit her?
            davon steht nichts im Eröffnungspost

            S T 2 Replies Last reply Reply Quote 0
            • S
              siporax @Homoran last edited by siporax

              @homoran Test Temperatur Blockly2.JPG
              Wenn ich das im Intervall laufen lasse hätte ich doch eine Zeitangabe oder nicht?
              Habe die Zeit im Eröffnungspost Nachgetragen

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            844
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

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