Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.6k

[gelöst] Zeitsteuerung in millisekunden

Geplant Angeheftet Gesperrt Verschoben Blockly
6 Beiträge 3 Kommentatoren 867 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • AphofisA Offline
    AphofisA Offline
    Aphofis
    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
    0
    • bmueller77B Offline
      bmueller77B Offline
      bmueller77
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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 Online
        Jey CeeJ Online
        Jey Cee
        Developer
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        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
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          0
          • AphofisA Offline
            AphofisA Offline
            Aphofis
            schrieb am zuletzt editiert von
            #5

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

            1 Antwort Letzte Antwort
            0
            • AphofisA Offline
              AphofisA Offline
              Aphofis
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              582

              Online

              32.7k

              Benutzer

              82.4k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Home
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe