Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Zeitsteuerung in millisekunden

    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

    [gelöst] Zeitsteuerung in millisekunden

    This topic has been deleted. Only users with topic management privileges can see it.
    • Aphofis
      Aphofis last edited by Aphofis

      Hallo Scripter!!!
      Vielleicht, kann mir jemand weiter helfen.
      Ich würde gerne ein Gerät für millisekunden einschalten und das zu bestimmten Zeiten am Tag.
      Natürlich wäre es Spitze, wenn ein Datenpunkt erzeugt wird in den der Wert eingetragen wird.
      Folgendes habe ich vor:
      ESP8266 mit Sonoff Tasmota geflashed, da klemmt ein 8 fach Relais dran an dem 8 Dosierpumpen hängen.

      camphoto_684387517.jpg
      photo_2019-07-09 19.27.21.jpeg

      Ich möchte das eine dosierpumpe 6 mal am Tag für zb 1,6 sekunden pumpt und somit insgesamt 12 ml am tag pumpt. Der Wert wie viel ml und millisekunden muss im Zusammenhang stehen also eine Variable zb 1600 ms = 2 ml bzw 1,6 sek = 2 ml
      damit ich später dann über VIS den wert wie viel ml dosiert werden soll eintragen kann und klasse wäre natürlich wenn man auch die zeit eintragen könnte und die dann auch in dem datenpunkt übernommen wird. Also auch in dem Blockly Script.
      da sich die dosierungen je nach Wasserwerten ändern, muss ich diese Werte ändern!
      Anfangs wäre es natürlich nicht schlimm wenn das ganze nur über Blockly läuft! Hauptsache ist das es überhaupt läuft.
      Dazu muss dann aber im Script zb das täglich von 0:00-0:00 nicht mehr als dann eingetragen 12 ml max dosiert wird. Da sich dann wieder die Wasser werte ändern.
      Doch wie man das bewerkstelligt, weiß ich nicht.

      P.S.
      Ja das Netzteil wird noch fest angebracht und es sind nur zwei Pumpen (Motoren) eingebaut zum testen.
      Ich bin für jede Hilfe dankbar.

      Jey Cee 1 Reply Last reply Reply Quote 0
      • bmueller77
        bmueller77 last edited by

        Ich bin jetzt nicht der Hardcore-Skripter, aber ich denke, die bessere Lösung wäre, wenn du den kritischen Teil mit der Dauer des Pumpens besser über eine Schaltung direkt an deinem Projekt steuerst und nur den Startbefehl dafür über das Netzwerk sendest. Ansonsten könnte es dir passieren, dass, je nach Netzwerkauslastung die Pumpen zu lange pumpen oder gar nicht ausgehen.

        1 Reply Last reply Reply Quote 0
        • Jey Cee
          Jey Cee Developer @Aphofis last edited by

          @Aphofis du musst das auf jedenfalls auf dem ESP ausführen, bei so kurzen Zeiten bekommst du ein Problem mit dem Timing.

          Aphofis 1 Reply Last reply Reply Quote 0
          • Aphofis
            Aphofis @Jey Cee last edited by Aphofis

            @Jey-Cee
            Ich hatte jetzt 3 Wochen lang zwei pumpen am laufen!
            Pumpe 1 braucht 1600 ms für 2 ml
            Pumpe 2 braucht 1520 ms für 2 ml
            Hab die pumpen vorher Kalibriert also die Zeit genommen für 50 und 100 ml und es kommt perfekt hin.
            getestet mit normalen Tages abläufen also 6 mal am Tag je 2 ml
            sind 24 ml am Tag.
            Hab jeden Tag im kommenden Meßbecher 50 ml eingefüllt und im endenden Meßbecher jeden Tag also nach 6 dosierungen geguckt und nach 3 Wochen waren definitiv 500 ml im endenden Meßbecher na klar etwas weniger durch Verdunstung
            aber täglich waren es nie mehr oder weniger als 24 ml und es gab auch keine Störungen trotz das der Iobroker oder der Pi mal neu gestartet sind.
            Ich denke es läuft sehr sauber nur wäre es natürlich top wenn man das zb mit einer übergreifenden regel im Blockly script definiert.
            Das dann zb in 24 Std nur 12 ml je Pumpe also max 9600 ms das Relais gezogen sein darf.
            In den Tasmota Einstellungen kann man zwar zeitpläne eintragen aber nicht wie lange an bis aus.
            Alle 8 Pumpen Motoren laufen über ein ESP8266 also nur die Motoren
            über eine 8fach Relais Karte.

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

              steuere gerät mit true
              steuere gerät mit false mit zeitverzögerung.
              that's it

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

                So das Gerät ist bis auf eine Dosierpumpe zusammengebaut und im Betrieb.

                var clock, Dauer, Uhrzeit, schedule, Intervall;
                
                /**
                 * Beschreibe diese Funktion …
                 */
                function L_C3_B6sung_1() {
                  Dauer = parseFloat(getState("Aqua_Control.0.Triton.Lösung_1.Faktoren.Lösung_1_Faktor_3").val);
                  setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, true);
                  // Intervalldauer = Faktor
                  Intervall = setInterval(function () {
                    Dauer = (typeof Dauer == 'number' ? Dauer : 0) + -1;
                    if (Dauer <= 0) {
                      (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                      setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, false);
                      sendTo("telegram.0", "send", {
                          text: (['Triton Lösung 1 ','\n',getState("Aqua_Control.0.Triton.Lösung_1.Faktoren.Lösung_1_Faktor_3").val,' ml dosiert'].join(''))
                      });
                    }
                  }, 806);
                }
                
                /**
                 * Beschreibe diese Funktion …
                 */
                function setUhr(clock) {
                  Uhrzeit = clock.split(':');
                  schedule = schedule((Uhrzeit[1]).trim() + ' ' + (Uhrzeit[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                    L_C3_B6sung_1();
                  });
                }
                
                
                setUhr(getState("Aqua_Control.0.Triton.Lösung_1.Uhrzeiten.Lösung_1_Uhrzeit_1").val);
                on({id: 'Aqua_Control.0.Triton.Lösung_1.Uhrzeiten.Lösung_1_Uhrzeit_1', change: "ne"}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  (function () {if (schedule) {clearSchedule(schedule); schedule = null;}})();
                  setUhr((obj.state ? obj.state.val : ""));
                });
                
                <xml xmlns="http://www.w3.org/1999/xhtml">
                  <variables>
                    <variable type="" id="snfLpaddd`4/)Uy^kLsW">clock</variable>
                    <variable type="" id=")bAD/?%{s?q44~ZGe7{B">Dauer</variable>
                    <variable type="" id="iQ`n%m6-[L_B242P|7rW">Uhrzeit</variable>
                    <variable type="undefined" id="schedule">schedule</variable>
                    <variable type="undefined" id="Intervall">Intervall</variable>
                  </variables>
                  <block type="procedures_callnoreturn" id="3a)9A+{U=BTerQFdk^7e" x="-3287" y="-1587">
                    <mutation name="setUhr">
                      <arg name="clock"></arg>
                    </mutation>
                    <value name="ARG0">
                      <block type="get_value" id="Rmv(=Tg+:6/}8B(?~nI#">
                        <field name="ATTR">val</field>
                        <field name="OID">Aqua_Control.0.Triton.Lösung_1.Uhrzeiten.Lösung_1_Uhrzeit_1</field>
                      </block>
                    </value>
                    <next>
                      <block type="on_ext" id="X}o|@dWx#6!BiHho8e)o">
                        <mutation items="1"></mutation>
                        <field name="CONDITION">ne</field>
                        <field name="ACK_CONDITION"></field>
                        <value name="OID0">
                          <shadow type="field_oid" id="dXPC7;GFYg(#~T78}@mB">
                            <field name="oid">Aqua_Control.0.Triton.Lösung_1.Uhrzeiten.Lösung_1_Uhrzeit_1</field>
                          </shadow>
                        </value>
                        <statement name="STATEMENT">
                          <block type="schedule_clear" id="nt-N]NBg?,fY%.)hYJ4D">
                            <field name="NAME">schedule</field>
                            <next>
                              <block type="procedures_callnoreturn" id="yvhs4uL6uUxnW!c$UF/{">
                                <mutation name="setUhr">
                                  <arg name="clock"></arg>
                                </mutation>
                                <value name="ARG0">
                                  <block type="on_source" id="SfI,}teG@`dg#_g%Zp#:">
                                    <field name="ATTR">state.val</field>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </statement>
                      </block>
                    </next>
                  </block>
                  <block type="procedures_defnoreturn" id="jE$gVVpa7!Xtx{X@H^Fd" x="-3287" y="-1312">
                    <field name="NAME">Lösung_1</field>
                    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                    <statement name="STACK">
                      <block type="variables_set" id="9kptcK|P^2:}bKZXyZ8f">
                        <field name="VAR" id=")bAD/?%{s?q44~ZGe7{B" variabletype="">Dauer</field>
                        <value name="VALUE">
                          <block type="convert_tonumber" id="Tj/%:}sl8v})GfkG,zO:">
                            <value name="VALUE">
                              <block type="get_value" id=".,XzJi)h(f$9$~(`H$I!">
                                <field name="ATTR">val</field>
                                <field name="OID">Aqua_Control.0.Triton.Lösung_1.Faktoren.Lösung_1_Faktor_3</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <next>
                          <block type="control" id="%}iPzHc5tUi.(P1_MvRo">
                            <mutation delay_input="false"></mutation>
                            <field name="OID">sonoff.0.Aqua_Dosierer.POWER1</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="SM.e~4#O=p?c/SXA|JX%">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                            <next>
                              <block type="comment" id="KV;?nPX*TAluqR-qF9f+">
                                <field name="COMMENT">Intervalldauer = Faktor</field>
                                <next>
                                  <block type="timeouts_setinterval" id="1+dIQ5^rJM?nkaI[6WN}">
                                    <field name="NAME">Intervall</field>
                                    <field name="INTERVAL">806</field>
                                    <field name="UNIT">ms</field>
                                    <statement name="STATEMENT">
                                      <block type="math_change" id="!*zN$DgW0K=76_[.1*]X">
                                        <field name="VAR" id=")bAD/?%{s?q44~ZGe7{B" variabletype="">Dauer</field>
                                        <value name="DELTA">
                                          <shadow type="math_number" id="e_D7=bSd65:`]Q{qWSZD">
                                            <field name="NUM">-1</field>
                                          </shadow>
                                        </value>
                                        <next>
                                          <block type="controls_if" id="=/[;A-M~WF?KXEx~W0z?">
                                            <value name="IF0">
                                              <block type="logic_compare" id=";qY,PC)CB~{1#4iVHaj,">
                                                <field name="OP">LTE</field>
                                                <value name="A">
                                                  <block type="variables_get" id="2k;4KgTu$A3wF)@V`ulP">
                                                    <field name="VAR" id=")bAD/?%{s?q44~ZGe7{B" variabletype="">Dauer</field>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <block type="math_number" id="?bnhw6qVm`$}~NCKlw2P">
                                                    <field name="NUM">0</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <statement name="DO0">
                                              <block type="timeouts_clearinterval" id=";dz/hf`o4]4(2pDSH)I3">
                                                <field name="NAME">Intervall</field>
                                                <next>
                                                  <block type="control" id="SeaFI}%xNdyzRbLV,6HN">
                                                    <mutation delay_input="false"></mutation>
                                                    <field name="OID">sonoff.0.Aqua_Dosierer.POWER1</field>
                                                    <field name="WITH_DELAY">FALSE</field>
                                                    <value name="VALUE">
                                                      <block type="logic_boolean" id="1_[)-;0}n;LMH}tCmhi:">
                                                        <field name="BOOL">FALSE</field>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="telegram" id="N)tO@5NbhTtUeW(4MtBo">
                                                        <field name="INSTANCE">.0</field>
                                                        <field name="LOG"></field>
                                                        <field name="SILENT">FALSE</field>
                                                        <field name="PARSEMODE">default</field>
                                                        <value name="MESSAGE">
                                                          <shadow type="text" id="R8/w|SSi{cj7,4lDKwe[">
                                                            <field name="TEXT">text</field>
                                                          </shadow>
                                                          <block type="text_join" id="Jm8OpAELrwceT@g35lf{">
                                                            <mutation items="4"></mutation>
                                                            <value name="ADD0">
                                                              <block type="text" id="CM1{{J8!7VItB4D8j3B8">
                                                                <field name="TEXT">Triton Lösung 1 </field>
                                                              </block>
                                                            </value>
                                                            <value name="ADD1">
                                                              <block type="text_newline" id="o]Q2(%iBw$/9I:?8IyZw">
                                                                <field name="Type">\n</field>
                                                              </block>
                                                            </value>
                                                            <value name="ADD2">
                                                              <block type="get_value" id="f]$r3U;[8ohFZ.8I[asH">
                                                                <field name="ATTR">val</field>
                                                                <field name="OID">Aqua_Control.0.Triton.Lösung_1.Faktoren.Lösung_1_Faktor_3</field>
                                                              </block>
                                                            </value>
                                                            <value name="ADD3">
                                                              <block type="text" id="Jxd~DTQ,y3LUt8En2!}Y">
                                                                <field name="TEXT"> ml dosiert</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </statement>
                                          </block>
                                        </next>
                                      </block>
                                    </statement>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                  <block type="procedures_defnoreturn" id="fK5kmsd)LwZ7|P2xa^9U" x="-3287" y="-762">
                    <mutation>
                      <arg name="clock" varid="snfLpaddd`4/)Uy^kLsW"></arg>
                    </mutation>
                    <field name="NAME">setUhr</field>
                    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                    <statement name="STACK">
                      <block type="variables_set" id="aOx5`vU/=f;#)rmrW[|7">
                        <field name="VAR" id="iQ`n%m6-[L_B242P|7rW" variabletype="">Uhrzeit</field>
                        <value name="VALUE">
                          <block type="lists_split" id="XnqDHu5JM{#WIs8~S,M-">
                            <mutation mode="SPLIT"></mutation>
                            <field name="MODE">SPLIT</field>
                            <value name="INPUT">
                              <block type="variables_get" id="4`T;i0Hg@f?=Gq^,J6.~">
                                <field name="VAR" id="snfLpaddd`4/)Uy^kLsW" variabletype="">clock</field>
                              </block>
                            </value>
                            <value name="DELIM">
                              <shadow type="text" id="]v!xP8l3r?{D;(m_QyNL">
                                <field name="TEXT">:</field>
                              </shadow>
                            </value>
                          </block>
                        </value>
                        <next>
                          <block type="schedule_create" id="6x%+6G+PaD[w*{FuFm=K">
                            <field name="NAME">schedule</field>
                            <value name="SCHEDULE">
                              <shadow type="field_cron" id="m4F75|F$}NA}2;e/avWa">
                                <field name="CRON">* * * * *</field>
                              </shadow>
                              <block type="cron_builder" id="q6(U2T{7uu}mYF)9QMKr">
                                <mutation seconds="false" as_line="false"></mutation>
                                <field name="LINE">FALSE</field>
                                <field name="WITH_SECONDS">FALSE</field>
                                <value name="DOW">
                                  <shadow type="text" id=")8oVcqHY5re?jv#0QsO8">
                                    <field name="TEXT">*</field>
                                  </shadow>
                                </value>
                                <value name="MONTHS">
                                  <shadow type="text" id="GfQ!DoE|TZTliq*)8,@j">
                                    <field name="TEXT">*</field>
                                  </shadow>
                                </value>
                                <value name="DAYS">
                                  <shadow type="text" id="S6hVuxIjcYJMlS^~:zE5">
                                    <field name="TEXT">*</field>
                                  </shadow>
                                </value>
                                <value name="HOURS">
                                  <shadow type="text" id="NP{*G*@dWEP9M9mNlZFF">
                                    <field name="TEXT">*</field>
                                  </shadow>
                                  <block type="lists_getIndex" id="-0gZ}|H=8/}~St}d%rl;">
                                    <mutation statement="false" at="true"></mutation>
                                    <field name="MODE">GET</field>
                                    <field name="WHERE">FROM_START</field>
                                    <value name="VALUE">
                                      <block type="variables_get" id="8U#M]$`MHq(~A]~(v{2R">
                                        <field name="VAR" id="iQ`n%m6-[L_B242P|7rW" variabletype="">Uhrzeit</field>
                                      </block>
                                    </value>
                                    <value name="AT">
                                      <block type="math_number" id=")zFTxG~Gpp`eZw8r2,8w">
                                        <field name="NUM">1</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <value name="MINUTES">
                                  <shadow type="text" id="I(LCmtz/NJ%:Tvp,*;JL">
                                    <field name="TEXT">*</field>
                                  </shadow>
                                  <block type="lists_getIndex" id="0([.HRKLsVPA.X:jwVI@">
                                    <mutation statement="false" at="true"></mutation>
                                    <field name="MODE">GET</field>
                                    <field name="WHERE">FROM_START</field>
                                    <value name="VALUE">
                                      <block type="variables_get" id="8#E0pY-UET(BcZH]~qB:">
                                        <field name="VAR" id="iQ`n%m6-[L_B242P|7rW" variabletype="">Uhrzeit</field>
                                      </block>
                                    </value>
                                    <value name="AT">
                                      <block type="math_number" id=";UF-jK:^cV#hui?GDL/V">
                                        <field name="NUM">2</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <statement name="STATEMENT">
                              <block type="procedures_callnoreturn" id="/6qq{?/)+*vm:UnA$x,0">
                                <mutation name="Lösung_1"></mutation>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                </xml>
                

                IMG_5133.jpg
                IMG_5131.JPG
                IMG_5126.JPG
                IMG_5127.JPG

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

                Support us

                ioBroker
                Community Adapters
                Donate

                789
                Online

                31.9k
                Users

                80.3k
                Topics

                1.3m
                Posts

                3
                6
                763
                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