Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [gelöst] Zeitsteuerung in millisekunden

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    719

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

[gelöst] Zeitsteuerung in millisekunden

Scheduled Pinned Locked Moved Blockly
6 Posts 3 Posters 873 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • AphofisA Offline
    AphofisA Offline
    Aphofis
    wrote on last edited by Aphofis
    #1

    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 CeeJ 1 Reply Last reply
    0
    • bmueller77B Offline
      bmueller77B Offline
      bmueller77
      wrote on last edited by
      #2

      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
      0
      • AphofisA 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 CeeJ Offline
        Jey CeeJ Offline
        Jey Cee
        Developer
        wrote on last edited by
        #3

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

        Persönlicher Support
        Spenden -> paypal.me/J3YC33

        AphofisA 1 Reply Last reply
        0
        • Jey CeeJ Jey Cee

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

          AphofisA Offline
          AphofisA Offline
          Aphofis
          wrote on last edited by Aphofis
          #4

          @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
          0
          • AphofisA Offline
            AphofisA Offline
            Aphofis
            wrote on last edited by
            #5

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

            1 Reply Last reply
            0
            • AphofisA Offline
              AphofisA Offline
              Aphofis
              wrote on last edited by
              #6

              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
              0

              Hello! It looks like you're interested in this conversation, but you don't have an account yet.

              Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

              With your input, this post could be even better 💗

              Register Login
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Support us

              ioBroker
              Community Adapters
              Donate

              259

              Online

              32.7k

              Users

              82.6k

              Topics

              1.3m

              Posts
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Home
              • Recent
              • Tags
              • Unread 0
              • Categories
              • Unreplied
              • Popular
              • GitHub
              • Docu
              • Hilfe