Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Regenmenge der letzten drei Tage berechnen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Regenmenge der letzten drei Tage berechnen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Glasfaser
      Glasfaser @G.Hawk last edited by

      @Martin-0

      Du könntest dieses Script in diesem Thread : Regenmengenmesser Ventus W174 Regenmenge berechnen
      für deine Berechnung nutzen .

      G 1 Reply Last reply Reply Quote 0
      • G
        G.Hawk @Glasfaser last edited by

        Die Menge pro Tag habe ich ja ich weiß nur nicht wie man das macht dass man drei Tage zusammen rechnet und das dann immer die letzten drei Tage sind.
        Die Regenmenge pro Tag steht mir ja zur Verfügung . Ich weiss nur nicht wie ich das umsetze.

        Wenn heute Donnerstag ist dann möchte ich in einem Datenpunkt die Regenmengen aus Dienstag Mittwoch und Donnerstag haben.

        Und am Freitag dann die Regenmengen aus Mittwoch Donnerstag und Freitag.

        Ich hoffe es ist halbwegs verständlich es sei denn irgendeiner hat eine ganz andere Idee wie man so etwas machen kann.

        Glasfaser paul53 2 Replies Last reply Reply Quote 0
        • Glasfaser
          Glasfaser @G.Hawk last edited by

          @Martin-0 sagte in Regenmenge der letzten drei Tage berechnen:

          Die Menge pro Tag habe ich ja

          Das war mir klar ... hast du überhaupt im Thread reingeschaut , da auch der Wert gestern drin ist ... das Script kannst du doch erweitern ..

          bzw. deshalb habe ich dir auch geschrieben ..

          für deine Berechnung nutzen .

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @G.Hawk last edited by paul53

            @Martin-0 sagte:

            drei Tage zusammen rechnet und das dann immer die letzten drei Tage sind.

            Prinzip:

            Blockly_temp.JPG

            <xml xmlns="https://developers.google.com/blockly/xml">
             <variables>
               <variable id="rq{##2}brF,H1z%75~/w">Liste</variable>
               <variable id="QPe?Ou3i?s5i$GZ]RgQ$">regen_heute</variable>
             </variables>
             <block type="create" id="nv(4QW_Yc*WF}5~#c8ai" inline="true" x="87" y="-38">
               <field name="NAME">0_userdata.0.Regen.Summe</field>
               <value name="VALUE">
                 <block type="math_number" id="5cdmh:rGuK2=?CE-Iz+C">
                   <field name="NUM">0</field>
                 </block>
               </value>
               <value name="COMMON">
                 <block type="text" id=":=Y/DRPU6KX,QR+y:*[=">
                   <field name="TEXT">{"type":"number","unit":"mm"}</field>
                 </block>
               </value>
               <next>
                 <block type="create" id="w2aXX+,#|:IJF~Jt[nw3" inline="true">
                   <field name="NAME">0_userdata.0.Regen.Liste</field>
                   <value name="VALUE">
                     <block type="text" id=":Q`./R$`N-h!]cMlLZrv">
                       <field name="TEXT">[0,0,0]</field>
                     </block>
                   </value>
                   <value name="COMMON">
                     <block type="text" id="4`J!WIn~FLikOJEpggr3">
                       <field name="TEXT">{"type":"string"}</field>
                     </block>
                   </value>
                   <statement name="STATEMENT">
                     <block type="variables_set" id="ctvQuB(=dril+qij,U;2">
                       <field name="VAR" id="rq{##2}brF,H1z%75~/w">Liste</field>
                       <value name="VALUE">
                         <block type="convert_json2object" id="hs5#qjmV;#%if`|ni)ig">
                           <value name="VALUE">
                             <block type="get_value_var" id="VH4[k!l:Z/I21BZ~#DOX">
                               <field name="ATTR">val</field>
                               <value name="OID">
                                 <shadow type="text" id="ET%`1Bx|Mta}PXul9=JF">
                                   <field name="TEXT">0_userdata.0.Regen.Liste</field>
                                 </shadow>
                               </value>
                             </block>
                           </value>
                         </block>
                       </value>
                     </block>
                   </statement>
                   <next>
                     <block type="schedule" id="UV4%O=Jcbk523]]01mu}">
                       <field name="SCHEDULE">59 23 * * *</field>
                       <statement name="STATEMENT">
                         <block type="variables_set" id="2M}Njb/0|6p3KHC~T,#E">
                           <field name="VAR" id="QPe?Ou3i?s5i$GZ]RgQ$">regen_heute</field>
                           <value name="VALUE">
                             <block type="get_value" id="opp*9~+Zf]YA(Y}yto/x">
                               <field name="ATTR">val</field>
                               <field name="OID">ID auswählen</field>
                             </block>
                           </value>
                           <next>
                             <block type="update" id="7-*h)oAAMpBW7Vdqho8=">
                               <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="Ttu.^n}F8VFo]q8PR_hl">
                                   <field name="VAR" id="QPe?Ou3i?s5i$GZ]RgQ$">regen_heute</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="lists_getIndex" id="hMhb2Do0$5}^#)%|!vNe">
                                   <mutation statement="true" at="true"></mutation>
                                   <field name="MODE">REMOVE</field>
                                   <field name="WHERE">FROM_START</field>
                                   <value name="VALUE">
                                     <block type="variables_get" id="aOV_X-/%%InaofARE4T[">
                                       <field name="VAR" id="rq{##2}brF,H1z%75~/w">Liste</field>
                                     </block>
                                   </value>
                                   <value name="AT">
                                     <block type="math_number" id="9,WtnKAb[So8a|N+4[/J">
                                       <field name="NUM">1</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="lists_setIndex" id="y$),/rr:epg]zb!STeC{">
                                       <mutation at="false"></mutation>
                                       <field name="MODE">INSERT</field>
                                       <field name="WHERE">LAST</field>
                                       <value name="LIST">
                                         <block type="variables_get" id="c(!}.eH%KS/+G,[|bLCU">
                                           <field name="VAR" id="rq{##2}brF,H1z%75~/w">Liste</field>
                                         </block>
                                       </value>
                                       <value name="TO">
                                         <block type="variables_get" id="wc%9bkz]EXzyocS*#/=n">
                                           <field name="VAR" id="QPe?Ou3i?s5i$GZ]RgQ$">regen_heute</field>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="control_ex" id="7z/rGz}ajk[RQ#-y*AJW" inline="true">
                                           <field name="TYPE">true</field>
                                           <field name="CLEAR_RUNNING">FALSE</field>
                                           <value name="OID">
                                             <shadow type="field_oid" id=";xx+[xd(jUFCy!hfIgeD">
                                               <field name="oid">Object ID</field>
                                             </shadow>
                                             <block type="text" id="LK#Grgo7noU1%~oi*PB;">
                                               <field name="TEXT">0_userdata.0.Regen.Liste</field>
                                             </block>
                                           </value>
                                           <value name="VALUE">
                                             <shadow type="logic_boolean" id="kDs4-TkQ0`qfc%!/U.nJ">
                                               <field name="BOOL">TRUE</field>
                                             </shadow>
                                             <block type="convert_object2json" id="=yL/pZ[m*K`gbHXI8*i0">
                                               <field name="PRETTIFY">FALSE</field>
                                               <value name="VALUE">
                                                 <block type="variables_get" id="PI;04iQJ{+kcj~Em:Q;/">
                                                   <field name="VAR" id="rq{##2}brF,H1z%75~/w">Liste</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="DELAY_MS">
                                             <shadow type="math_number" id="a+K=G{437Zs3.ibo1Zl}">
                                               <field name="NUM">0</field>
                                             </shadow>
                                           </value>
                                           <next>
                                             <block type="control_ex" id="9w#Kd|j@KDGY4$u0PkqI" inline="true">
                                               <field name="TYPE">true</field>
                                               <field name="CLEAR_RUNNING">FALSE</field>
                                               <value name="OID">
                                                 <shadow type="field_oid">
                                                   <field name="oid">Object ID</field>
                                                 </shadow>
                                                 <block type="text" id="Cny?uquJAUC|gXmcy8pn">
                                                   <field name="TEXT">0_userdata.0.Regen.Summe</field>
                                                 </block>
                                               </value>
                                               <value name="VALUE">
                                                 <shadow type="logic_boolean" id="olhS:dGNkMt7N^Syq,}v">
                                                   <field name="BOOL">TRUE</field>
                                                 </shadow>
                                                 <block type="math_on_list" id="*;eg.@GGST!R-qY/T(fO">
                                                   <mutation op="SUM"></mutation>
                                                   <field name="OP">SUM</field>
                                                   <value name="LIST">
                                                     <block type="variables_get" id="ufP}zO2wJm-LPBl7zmL5">
                                                       <field name="VAR" id="rq{##2}brF,H1z%75~/w">Liste</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <value name="DELAY_MS">
                                                 <shadow type="math_number" id="^?F2$tv9L-2t_|[N;wCU">
                                                   <field name="NUM">0</field>
                                                 </shadow>
                                               </value>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </statement>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
            </xml>
            

            G 1 Reply Last reply Reply Quote 1
            • G
              G.Hawk @paul53 last edited by

              @paul53
              Das ist der Hammer. Vielen Dank. Funktioniert einwandfrei nach den ersten Tests.
              Aber einige Fragen habe ich noch:
              Die Datenpunkte am Anfang müssen wohl stehenbleiben.
              Wenn ich ich die deaktiviere, dann funktioniert es nicht, aber warum?
              Ich mache mal ein Bild von dem angepassten Blockly.
              Eigentlich liegen die Datenpunkte da: javascript.0.Bewaesserung.Niederschlag_der_letzten_drei_Tage_Station
              Aber in dem Blockly darf ich nur "Bewaesserung.Niederschlag_der_letzten_drei_Tage_Station" schreiben, sonst legt er mir unter "javascript.0. den gleichen order nochmal an.

              G paul53 2 Replies Last reply Reply Quote 0
              • G
                G.Hawk @G.Hawk last edited by

                Blockly Regenmenge.JPG

                1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @G.Hawk last edited by paul53

                  @Martin-0 sagte:

                  Die Datenpunkte am Anfang müssen wohl stehenbleiben.
                  Wenn ich ich die deaktiviere, dann funktioniert es nicht, aber warum?

                  "Datenpunkt erzeugen" wird nur einmal benötigt und kann dann gelöscht / deaktiviert werden. In dem Fall muss aber "setze Liste auf ..." vor den Zeitplan gesetzt werden, da die Liste sonst nach jedem Skriptstart verloren ist.

                  Blockly_temp.JPG

                  G 1 Reply Last reply Reply Quote 0
                  • G
                    G.Hawk @paul53 last edited by

                    @paul53
                    Es wäre aber nicht schädlich, wenn ich es so stehen lasse?
                    Warum funktioniert der Datenpunkt eigentlich der Pfad ist ja eigentlich nicht richtig, da ja javascript.0 davor fehlt.

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @G.Hawk last edited by

                      @Martin-0 sagte:

                      Es wäre aber nicht schädlich, wenn ich es so stehen lasse?

                      Schädlich nicht, aber Verschwendung von Ressourcen.

                      @Martin-0 sagte in Regenmenge der letzten drei Tage berechnen:

                      Warum funktioniert der Datenpunkt eigentlich der Pfad ist ja eigentlich nicht richtig

                      Für Datenpunkte unter der Javascript-Instanz (javascript.0) kann eine verkürzte ID für createState(id), setState(id) und getState(id) angegeben werden.

                      G 1 Reply Last reply Reply Quote 0
                      • G
                        G.Hawk @paul53 last edited by

                        @paul53
                        OK Ich habe alles geändert.
                        Warum sind in dem Datenpunkt Liste eigentlich drei Werte bzw. wo stelle ich ein, dass diese Liste nur drei Einträge haben darf?
                        Wenn ich auf den Datenpunkt klicke und mir den anschaue, sehe ich dafür keine Einstellung.

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @G.Hawk last edited by

                          @Martin-0 sagte:

                          Warum sind in dem Datenpunkt Liste eigentlich drei Werte bzw. wo stelle ich ein, dass diese Liste nur drei Einträge haben darf?

                          Beim Erzeugen des Datenpunktes wurde eine Liste mit 3 Werten als JSON initialisiert: '[0,0,0]'
                          Danach wird im Skript der älteste Eintrag gelöscht und der neue hinzugefügt, so dass sich die Anzahl nicht ändert.

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            G.Hawk @paul53 last edited by

                            @paul53
                            Super danke.
                            Jetzt probiere ich mal den Niederschlagswert mit dem der Vorhersage des nächsten Tages zu addieren.
                            Das soll dann die Grundlage werden ob beregnet wird oder nicht.

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @G.Hawk last edited by Homoran

                              @Martin-0 sagte in Regenmenge der letzten drei Tage berechnen:

                              Das soll dann die Grundlage werden ob beregnet wird oder nicht.

                              Was passiert, wenn es trotzdem nicht regnet?
                              Der Wert bleibt hoch, die Erde trocken...

                              G 1 Reply Last reply Reply Quote 0
                              • G
                                G.Hawk @Homoran last edited by

                                @Homoran
                                Mist. da hast du recht. Er wird aber diesen Wert jeden Tag aktualisieren. Und wenn es nicht regnet, dann wird er am nächsten Tag beregnen. Es sei denn die Vorhersage stimmt jeden Tag nicht.
                                Oder hast du eine andere Idee?

                                Homoran 1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators @G.Hawk last edited by Homoran

                                  @Martin-0 sagte in Regenmenge der letzten drei Tage berechnen:

                                  Oder hast du eine andere Idee?

                                  nö.

                                  Bei mir wird bewässert wenn der Bodenfeuchtesensor sagt, dass es Zeit ist.
                                  Wenn es trotzdem genau 5 Minuten später regnet (was schon mehrfach passiert ist) wird der Boden entsprechend feuchter und die nächste künstliche Beregnung findet erst wieder statt wenn auch das Wasser "verbraucht" ist.

                                  G 1 Reply Last reply Reply Quote 0
                                  • G
                                    G.Hawk @Homoran last edited by

                                    @Homoran
                                    Das ist auch nicht schlecht.
                                    Es hat geklappt mit der Gesamtniederschlagsmenge.
                                    Ich habe eben noch einen Betriebsstundenzähler gemacht für die Bewässerungsventile.
                                    Das funktioniert auch, nur müsste sich dieser drei Tage später wieder auf null stellen.

                                    Kann mir jemand sagen, wie ich das mache?

                                    G paul53 2 Replies Last reply Reply Quote 0
                                    • G
                                      G.Hawk @G.Hawk last edited by

                                      Betriebsstundenblockly.JPG

                                      1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @G.Hawk last edited by paul53

                                        @Martin-0 sagte:

                                        müsste sich dieser drei Tage später wieder auf null stellen.

                                        Weshalb nach 3 Tagen ?

                                        Besserer Trigger: ist kleiner als letztes (Änderung wahr --> falsch)

                                        G 1 Reply Last reply Reply Quote 0
                                        • G
                                          G.Hawk @paul53 last edited by

                                          @paul53
                                          Weil er in drei Tagen die benötigte Wassermenge bzw. die Einschaltzeit der Ventile berechnen soll.
                                          Wenn er also heute guckt wie die Niederschlagsmengen waren und es nicht geregnet hat, würde er am nächsten Tag ja wieder bewässern. Deshalb prüfe ich, ob die Beregnung an war. Wenn sie jetzt also drei Tage aus war (Was dem Wert "0 min" entspricht, dann darf wieder bewässert werden.

                                          1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 @G.Hawk last edited by

                                            @Martin-0 sagte:

                                            Für meine Bewässerung muss ich alle drei Tage ca. 15-20 mm beregnen.

                                            Must Du nicht eher eine Zeitvorgabe je nach erforderlicher Restmenge machen ? Und was ist, wenn es am 2. Tag der Bewässerung etwas regnet ?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            503
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly climate
                                            4
                                            71
                                            4440
                                            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