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] Hilfe bei zeitsteuerung

    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] Hilfe bei zeitsteuerung

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

      @Aphofis
      Vorschlag (nur 1. von 4 Uhrzeiten dargestellt):

      Blockly_temp.JPG

      Aphofis 1 Reply Last reply Reply Quote 1
      • Aphofis
        Aphofis @paul53 last edited by

        @paul53
        Oh Mann woher weißt du sowas alles !?
        Ich werde das mal integrieren und testen
        Vielen Dank!

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

          Wenn du so Fit bist im Blockly wäre mir ein Riesen Projekt wichtig !?
          Kannst du da nicht mal drüber gucken ob du eine Idee hast wie man das realisieren kann!?
          Da es die letzte große Sache ist die ich noch integrieren möchte.

          Daten per USB über Blockly senden

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

            Ist das so korrekt?

            <xml xmlns="http://www.w3.org/1999/xhtml">
              <variables>
                <variable type="" id="u5iug_dP{RWS.8r9[r{%">Dauer</variable>
                <variable type="" id="Q7*Gw)fesXb}OUBj1{`;">Uhrzeit_1</variable>
                <variable type="undefined" id="Intervall">Intervall</variable>
                <variable type="undefined" id="schedule_1">schedule_1</variable>
              </variables>
              <block type="procedures_defnoreturn" id="jE$gVVpa7!Xtx{X@H^Fd" x="-737" y="-762">
                <field name="NAME">Futter</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="u5iug_dP{RWS.8r9[r{%" variabletype="">Dauer</field>
                    <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.Futterautomatik_multiplikator</field>
                      </block>
                    </value>
                    <next>
                      <block type="control" id="%}iPzHc5tUi.(P1_MvRo">
                        <mutation delay_input="false"></mutation>
                        <field name="OID">rpi2.0.gpio.25.state</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">800</field>
                                <field name="UNIT">ms</field>
                                <statement name="STATEMENT">
                                  <block type="math_change" id="!*zN$DgW0K=76_[.1*]X">
                                    <field name="VAR" id="u5iug_dP{RWS.8r9[r{%" 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="u5iug_dP{RWS.8r9[r{%" 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>
                                          </block>
                                        </statement>
                                        <next>
                                          <block type="control" id="SeaFI}%xNdyzRbLV,6HN">
                                            <mutation delay_input="false"></mutation>
                                            <field name="OID">rpi2.0.gpio.25.state</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>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </statement>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
              <block type="comment" id="g{Y%*~I{x`_l;*~`c*Fr" x="-717" y="-405">
                <field name="COMMENT">1. Uhrzeit hh:mm</field>
                <next>
                  <block type="on_ext" id="}BTi=~h~RiZ;@8S.a_*{">
                    <mutation items="1"></mutation>
                    <field name="CONDITION">ne</field>
                    <field name="ACK_CONDITION"></field>
                    <value name="OID0">
                      <shadow type="field_oid" id="6R*wwsh+EjXJ1d`_3hxv">
                        <field name="oid">default</field>
                      </shadow>
                    </value>
                    <statement name="STATEMENT">
                      <block type="variables_set" id="{M}nz9j/hOc[/j9R0[zd">
                        <field name="VAR" id="Q7*Gw)fesXb}OUBj1{`;" variabletype="">Uhrzeit_1</field>
                        <value name="VALUE">
                          <block type="lists_split" id="g,gp5[yex~P:LF-[.*((">
                            <mutation mode="SPLIT"></mutation>
                            <field name="MODE">SPLIT</field>
                            <value name="INPUT">
                              <block type="on_source" id="Pyx^=nsIZs@M|nbNaAiW">
                                <field name="ATTR">state.val</field>
                              </block>
                            </value>
                            <value name="DELIM">
                              <shadow type="text" id="OEq|yeHMb*DILCJQAnkd">
                                <field name="TEXT">:</field>
                              </shadow>
                            </value>
                          </block>
                        </value>
                        <next>
                          <block type="schedule_clear" id="O0@)[PTM_!LiaM@04{V#">
                            <field name="NAME">schedule_1</field>
                            <next>
                              <block type="schedule_create" id="6x%+6G+PaD[w*{FuFm=K">
                                <field name="NAME">schedule_1</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="Q7*Gw)fesXb}OUBj1{`;" variabletype="">Uhrzeit_1</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="Q7*Gw)fesXb}OUBj1{`;" variabletype="">Uhrzeit_1</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="Futter"></mutation>
                                  </block>
                                </statement>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </statement>
                    <next>
                      <block type="comment" id="7wspNJ:OA(%4Ab.`5IAO">
                        <field name="COMMENT">2. Uhrzeit hh:mm</field>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </xml>
            
            

            Woher kommt jetzt die Uhrzeit in der Liste ???
            Und was kommt in den trigger für ein Objekt in die Objekt ID ?
            Oder kommt in den trigger dann der datenpunkt rein wo man die Uhrzeit einstellen kann für die erste Futter Dosierung?

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

              @Aphofis sagte:

              kommt in den trigger dann der datenpunkt rein wo man die Uhrzeit einstellen kann für die erste Futter Dosierung?

              Ja, steht doch im Kommentar über dem Trigger.

              @Aphofis sagte in Hilfe bei zeitsteuerung:

              Ist das so korrekt?

              Ich habe keine Lust, das zu importieren. Poste bitte den vom Blockly erzeugten Javascript-Code ohne die letzte Zeile in Code tags.

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

                @paul53

                var Dauer, Uhrzeit_1, Intervall, schedule_1, Uhrzeit_2, schedule_2, Uhrzeit_3, schedule_3, Uhrzeit_4, schedule_4;
                
                /**
                 * Beschreibe diese Funktion …
                 */
                function Futter() {
                  Dauer = getState("Aqua_Control.0.Futterautomatik_multiplikator").val;
                  setState("rpi2.0.gpio.25.state"/*Futterautomat_Buchse_4*/, true);
                  // Intervalldauer = Faktor
                  Intervall = setInterval(function () {
                    Dauer = (typeof Dauer == 'number' ? Dauer : 0) + -1;
                    if (Dauer <= 0) {
                      (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                    }
                    setState("rpi2.0.gpio.25.state"/*Futterautomat_Buchse_4*/, false);
                  }, 800);
                }
                
                
                // 1. Uhrzeit hh:mm
                on({id: 'Aqua_Control.0.Futterautomatik_Uhrzeit_1', change: "ne"}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  Uhrzeit_1 = (obj.state ? obj.state.val : "").split(':');
                  (function () {if (schedule_1) {clearSchedule(schedule_1); schedule_1 = null;}})();
                  schedule_1 = schedule((Uhrzeit_1[1]).trim() + ' ' + (Uhrzeit_1[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                    Futter();
                  });
                });
                // 2. Uhrzeit hh:mm
                on({id: 'Aqua_Control.0.Futterautomatik_Uhrzeit_2', change: "ne"}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  Uhrzeit_2 = (obj.state ? obj.state.val : "").split(':');
                  (function () {if (schedule_2) {clearSchedule(schedule_2); schedule_2 = null;}})();
                  schedule_2 = schedule((Uhrzeit_2[1]).trim() + ' ' + (Uhrzeit_2[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                    Futter();
                  });
                });
                // 3. Uhrzeit hh:mm
                on({id: 'Aqua_Control.0.Futterautomatik_Uhrzeit_3', change: "ne"}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  Uhrzeit_3 = (obj.state ? obj.state.val : "").split(':');
                  (function () {if (schedule_3) {clearSchedule(schedule_3); schedule_3 = null;}})();
                  schedule_3 = schedule((Uhrzeit_3[1]).trim() + ' ' + (Uhrzeit_3[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                    Futter();
                  });
                });
                // 4. Uhrzeit hh:mm
                on({id: 'Aqua_Control.0.Futterautomatik_Uhrzeit_4', change: "ne"}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  Uhrzeit_4 = (obj.state ? obj.state.val : "").split(':');
                  (function () {if (schedule_4) {clearSchedule(schedule_4); schedule_4 = null;}})();
                  schedule_4 = schedule((Uhrzeit_4[1]).trim() + ' ' + (Uhrzeit_4[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                    Futter();
                  });
                });
                
                
                

                Ok so korrekt?

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

                  @Aphofis sagte:

                  so korrekt?

                  Nicht ganz: Das Auschalten von "rpi2.0.gpio.25.state"/Futterautomat_Buchse_4/ muss innerhalb der Prüfung Dauer <= 0 erfolgen. Die Datenpunkt-ID für den 1. Uhrzeit-Datenpunkt fehlt noch.

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

                    @paul53
                    Irgendwie will die Steuerung nicht das Gerät läuft nur für 800 ms mehr nicht.
                    Ich verstehe noch nicht den gesamten Zusammenhang.

                    var Dauer, Uhrzeit_1, Intervall, schedule_1, Uhrzeit_2, schedule_2, Uhrzeit_3, schedule_3, Uhrzeit_4, schedule_4;
                    
                    /**
                     * Beschreibe diese Funktion …
                     */
                    function Futter() {
                      Dauer = getState("Aqua_Control.0.Futterautomatik_multiplikator").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);
                      }, 800);
                    }
                    
                    
                    // 1. Uhrzeit hh:mm
                    on({id: 'sonoff.0.Aqua_Dosierer.POWER1', change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      Uhrzeit_1 = (obj.state ? obj.state.val : "").split(':');
                      (function () {if (schedule_1) {clearSchedule(schedule_1); schedule_1 = null;}})();
                      schedule_1 = schedule((Uhrzeit_1[1]).trim() + ' ' + (Uhrzeit_1[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                        Futter();
                      });
                    });
                    // 2. Uhrzeit hh:mm
                    // 3. Uhrzeit hh:mm
                    // 4. Uhrzeit hh:mm
                    on({id: 'Aqua_Control.0.Futterautomatik_Uhrzeit_4', change: "ne"}, function (obj) {
                      var value = obj.state.val;
                      var oldValue = obj.oldState.val;
                      Uhrzeit_4 = (obj.state ? obj.state.val : "").split(':');
                      (function () {if (schedule_4) {clearSchedule(schedule_4); schedule_4 = null;}})();
                      schedule_4 = schedule((Uhrzeit_4[1]).trim() + ' ' + (Uhrzeit_4[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                        Futter();
                      });
                    });
                    
                    
                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @Aphofis last edited by paul53

                      @Aphofis sagte:

                      das Gerät läuft nur für 800 ms mehr nicht.

                      @paul53 sagte in Hilfe bei zeitsteuerung:

                      Das Auschalten von "rpi2.0.gpio.25.state"/Futterautomat_Buchse_4/ muss innerhalb der Prüfung Dauer <= 0 erfolgen.

                      steuere Aqua_Dosierer_Pumpe_1 mit falsch muss in das Maul von falls Dauer <= 0, nicht darunter.
                      Blockly_temp.JPG

                      Bist Du sicher, dass das der richtige Datenpunkt ist ?

                      // 1. Uhrzeit hh:mm
                      on({id: 'sonoff.0.Aqua_Dosierer.POWER1', change: "ne"}, function (obj) {
                      
                      Aphofis 1 Reply Last reply Reply Quote 1
                      • Aphofis
                        Aphofis @paul53 last edited by

                        @paul53
                        Ich habe nur eine nicht gebrauchte dosier Pumpe zum testen benutzt.
                        Sonst ist der furtterautomat leer bis die Steuerung funktioniert 😊🤪

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

                          Jetzt da steuere in der Tasche unter dem stop zyklische Ausführung ist macht die Steuerung nix mehr

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

                            @Aphofis sagte:

                            macht die Steuerung nix mehr

                            Dann bau mal ein Log ein:
                            Blockly_temp.JPG

                            Aphofis 1 Reply Last reply Reply Quote 1
                            • Aphofis
                              Aphofis @paul53 last edited by Aphofis

                              @paul53
                              Log eingebaut!
                              Kommt keine Meldung in der log nur das dass Script gestartet ist!
                              Wieso eigentlich
                              Erhöhe Dauer um -1 was bewirkt das ?
                              Das ich zwei datenpunkte habe!? Ist bewusst?
                              Einer wo die Uhrzeit drin steht wann dosiert werden soll und ein datenpunkt ist so zu sagen wie lange die Dosierung stattfinden soll
                              Also eine Dosierung sind 800ms
                              Wenn in dem datenpunkt multiplikator steht zb 3
                              Dann soll die Dosierung 3x800 Millisekunden lang sein demnach 2400 ms
                              Hoffe das ist so auch richtig rüber gekommen.
                              Diese beiden datenpunkte jetzt nur zur Dosierung Futter 1 die anderen können wenn’s läuft

                              paul53 2 Replies Last reply Reply Quote 0
                              • paul53
                                paul53 @Aphofis last edited by paul53

                                @Aphofis sagte:

                                Das ich zwei datenpunkte habe!? Ist bewusst?

                                Nein, es müssten 3 Datenpunkte sein: Die Dauer enthält der DP "Aqua_Control.0.Futterautomatik_multiplikator", die Pumpensteuerung erfolgt an den DP "sonoff.0.Aqua_Dosierer.POWER1" und in welchem DP steht die Uhrzeit ? Deshalb meine Frage weiter oben:

                                Bist Du sicher, dass das der richtige Datenpunkt ist ?

                                Müsste der nicht eine ID haben wie "Aqua_Control.0.Futterautomatik_Uhrzeit_1" ?

                                Aphofis 1 Reply Last reply Reply Quote 1
                                • Aphofis
                                  Aphofis @paul53 last edited by Aphofis

                                  @paul53

                                  Das schon klar!
                                  Datenpunkt wie lange dosiert werden soll
                                  Ist der futterautomatik_multiplikator
                                  Mit wert 1-3 zb
                                  Datenpunkt zum testen der auf die Steuerung reagieren soll mit true und false
                                  sonoff.0.Aqua_Dosierer.POWER1
                                  Später dann der futterautomatik Motor
                                  Und der datenpunkt mit der Uhrzeit
                                  Ja ist
                                  Futterautomatik_Uhrzeit_1
                                  Gibt für die erste Futter Dosierung die Zeit an in
                                  Formatierung 16:30 zb

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

                                    Wenn’s dann läuft wollte ich die selbe Steuerung dann auch für meine Triton Lösungen und Strontium Dosierung benutzen. Natürlich neu erstellt mit eigenen datenpunkten.
                                    Mega wäre natürlich das wenn man zb 6 Dosierungen am Tag hat mit je 2ml (760ms = 1 ml) das dann in der Steuerung zb alle Dosierungen zusammen gezählt werden und dann in der Programmierung nicht mehr als 12 ml ( 9120ms) am Tag dosiert werden dürfen so noch mal als kleine Sperre das auch wirklich nicht mehr dosiert wird.

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

                                      @Aphofis sagte:

                                      Erhöhe Dauer um -1 was bewirkt das ?

                                      Das ist ein Count down.

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

                                        @paul53
                                        Ok Danke aber laufen will es immer noch nicht
                                        Komisch ist das es zu Anfang zumindest 800ms gelaufen ist nach dem ich steuere pumpe1 in die Tasche vom Intervall gepackt hatte kam nix mehr

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

                                          @Aphofis sagte:

                                          aber laufen will es immer noch nicht

                                          Dann poste mal den aktuellen Javascript-Code (ohne letzte Zeile).

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

                                            @paul53

                                            Der Code:

                                            var Dauer, Uhrzeit_1, Intervall, schedule_1, Uhrzeit_2, schedule_2, Uhrzeit_3, schedule_3, Uhrzeit_4, schedule_4;
                                            
                                            /**
                                             * Beschreibe diese Funktion …
                                             */
                                            function Futter() {
                                              Dauer = getState("Aqua_Control.0.Futterautomatik_multiplikator").val;
                                              setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, true);
                                              // Intervalldauer = Faktor
                                              Intervall = setInterval(function () {
                                                Dauer = (typeof Dauer == 'number' ? Dauer : 0) + -1;
                                                console.log(Dauer);
                                                if (Dauer <= 0) {
                                                  (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                                                }
                                                setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, false);
                                              }, 800);
                                            }
                                            
                                            
                                            // 1. Uhrzeit hh:mm
                                            on({id: 'sonoff.0.Aqua_Dosierer.POWER1', change: "ne"}, function (obj) {
                                              var value = obj.state.val;
                                              var oldValue = obj.oldState.val;
                                              Uhrzeit_1 = (obj.state ? obj.state.val : "").split(':');
                                              (function () {if (schedule_1) {clearSchedule(schedule_1); schedule_1 = null;}})();
                                              schedule_1 = schedule((Uhrzeit_1[1]).trim() + ' ' + (Uhrzeit_1[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                                                Futter();
                                              });
                                            });
                                            // 3. Uhrzeit hh:mm
                                            // 4. Uhrzeit hh:mm
                                            on({id: 'Aqua_Control.0.Futterautomatik_Uhrzeit_4', change: "ne"}, function (obj) {
                                              var value = obj.state.val;
                                              var oldValue = obj.oldState.val;
                                              Uhrzeit_4 = (obj.state ? obj.state.val : "").split(':');
                                              (function () {if (schedule_4) {clearSchedule(schedule_4); schedule_4 = null;}})();
                                              schedule_4 = schedule((Uhrzeit_4[1]).trim() + ' ' + (Uhrzeit_4[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                                                Futter();
                                              });
                                            });
                                            
                                            

                                            Die datenpunkte:
                                            0F74F779-1CE7-4D77-B714-F601C53A6F9A.jpeg

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            934
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            80
                                            4116
                                            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