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 paul53

      @Aphofis sagte:

      Doch der fehler ist immer noch geblieben.

      on({id: 'rpi2.0.gpio.25.state', change: "ne"}, function (obj) {
      

      Das ist auch der falsche Datenpunkt ! Der richtige ist

      on({id: 'Aqua_Control.0.Futterautomatik_Uhrzeit_1', change: "ne"}, function (obj) {
      

      , steht übrigens im Kommentar darüber (Zeile 23).

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

        @paul53
        Meinst du so ?

        var Dauer, Uhrzeit_1, Intervall, schedule_1;
        
        /**
         * Beschreibe diese Funktion …
         */
        function Futter() {
          Dauer = parseFloat(getState("Aqua_Control.0.Futterautomatik.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);
        }
        
        
        Futter();
        // 1. Uhrzeit hh:mm
        on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1', change: "ne"}, function (obj) {
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          Uhrzeit_1 = (obj.state ? obj.state.val : "").join(':');
          (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();
          });
        });
        

        Sobald ich dann die Steuerung speichere läuft die eingestellte multiplikator Zeit los
        Die Uhrzeit aus dem Datenpunkt wird ignoriert.
        und in der Ausgabe kommt immer noch die Fehlermeldung:
        01:35:37.695 error javascript.0 at Object.<anonymous> (script.js.Test_Blocklys.test:25:48)

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

          @Aphofis sagte:

          Sobald ich dann die Steuerung speichere läuft die eingestellte multiplikator Zeit los

          Vor dem Kommentar ist noch der Testaufruf (Zeile 20) der Funktion Futter() enthalten, der nach erfolgreichem Test der Funktion wieder entfernt werden muss.

          Zeile 25: Wieso steht da plötzlich ?

           Uhrzeit_1 = (obj.state ? obj.state.val : "").join(':');
          

          Richtig ist

            Uhrzeit_1 = (obj.state ? obj.state.val : "").split(':');
          

          Blockly_temp.JPG

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

            @paul53
            Das weiß ich alledings auch nicht! Habe ich geändert doch die steuerung schweigt immer noch still.

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

              @Aphofis sagte:

              die steuerung schweigt immer noch still.

              Hast Du mal eine Uhrzeit eingtragen (geändert nach Skriptstart), die Du beobachten kannst ? Die Schedules werden erst nach Änderung der Uhrzeiten gesetzt.

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

                @paul53
                Ja hatte das Script gestoppt dann Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1
                geändert und gestartet aber script bleibt stumm

                var Dauer, Uhrzeit_1, Intervall, schedule_1;
                
                /**
                 * Beschreibe diese Funktion …
                 */
                function Futter() {
                  Dauer = parseFloat(getState("Aqua_Control.0.Futterautomatik.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);
                }
                
                
                Futter();
                // 1. Uhrzeit hh:mm
                on({id: 'Aqua_Control.0.Futterautomatik.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();
                  });
                });
                
                paul53 2 Replies Last reply Reply Quote 0
                • Aphofis
                  Aphofis last edited by Aphofis

                  Diese Fehler sind immer noch aktuell in der Log zu sehen:

                  javascript.0	2019-08-18 11:35:50.400	warn	at TCP.onread (net.js:601:20)
                  javascript.0	2019-08-18 11:35:50.400	warn	at Socket.Readable.push (_stream_readable.js:208:10)
                  javascript.0	2019-08-18 11:35:50.400	warn	at readableAddChunk (_stream_readable.js:250:11)
                  javascript.0	2019-08-18 11:35:50.399	warn	at addChunk (_stream_readable.js:263:12)
                  javascript.0	2019-08-18 11:35:50.399	warn	at Socket.emit (events.js:211:7)
                  javascript.0	2019-08-18 11:35:50.398	warn	at emitOne (events.js:116:13)
                  javascript.0	2019-08-18 11:35:50.398	warn	at Socket.realHandler (/opt/iobroker/node_modules/ws/lib/WebSocket.js:825:20)
                  javascript.0	2019-08-18 11:35:50.398	warn	at Receiver.add (/opt/iobroker/node_modules/ws/lib/Receiver.js:103:24)
                  javascript.0	2019-08-18 11:35:50.397	warn	at Receiver.expectHandler (/opt/iobroker/node_modules/ws/lib/Receiver.js:499:31)
                  javascript.0	2019-08-18 11:35:50.397	warn	at Receiver.finish (/opt/iobroker/node_modules/ws/lib/Receiver.js:541:12)
                  javascript.0	2019-08-18 11:35:50.396	warn	at Receiver.flush (/opt/iobroker/node_modules/ws/lib/Receiver.js:347:3)
                  javascript.0	2019-08-18 11:35:50.396	warn	at /opt/iobroker/node_modules/ws/lib/Receiver.js:508:14
                  javascript.0	2019-08-18 11:35:50.396	warn	at Receiver.applyExtensions (/opt/iobroker/node_modules/ws/lib/Receiver.js:371:5)
                  javascript.0	2019-08-18 11:35:50.395	warn	at /opt/iobroker/node_modules/ws/lib/Receiver.js:536:18
                  javascript.0	2019-08-18 11:35:50.395	warn	at Receiver.ontext (/opt/iobroker/node_modules/ws/lib/WebSocket.js:841:10)
                  javascript.0	2019-08-18 11:35:50.395	warn	at WebSocket.emit (events.js:214:7)
                  javascript.0	2019-08-18 11:35:50.394	warn	at emitTwo (events.js:126:13)
                  javascript.0	2019-08-18 11:35:50.394	warn	at WebSocket.onMessage (/opt/iobroker/node_modules/ws/lib/WebSocket.js:442:14)
                  javascript.0	2019-08-18 11:35:50.393	warn	at WebSocket.ws.onmessage (/opt/iobroker/node_modules/engine.io-client/lib/transports/websocket.js:146:10)
                  javascript.0	2019-08-18 11:35:50.393	warn	at WS.Transport.onData (/opt/iobroker/node_modules/engine.io-client/lib/transport.js:137:8)
                  javascript.0	2019-08-18 11:35:50.392	warn	at WS.Transport.onPacket (/opt/iobroker/node_modules/engine.io-client/lib/transport.js:145:8)
                  javascript.0	2019-08-18 11:35:50.392	warn	at WS.Emitter.emit (/opt/iobroker/node_modules/engine.io-client/node_modules/component-emitter/index.js:133:20)
                  javascript.0	2019-08-18 11:35:50.392	warn	at WS.<anonymous> (/opt/iobroker/node_modules/engine.io-client/lib/socket.js:268:10)
                  javascript.0	2019-08-18 11:35:50.391	warn	at Socket.onPacket (/opt/iobroker/node_modules/engine.io-client/lib/socket.js:451:14)
                  javascript.0	2019-08-18 11:35:50.391	warn	at Socket.Emitter.emit (/opt/iobroker/node_modules/engine.io-client/node_modules/component-emitter/index.js:133:20)
                  javascript.0	2019-08-18 11:35:50.390	warn	at Socket.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                  javascript.0	2019-08-18 11:35:50.390	warn	at Manager.ondata (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:322:16)
                  javascript.0	2019-08-18 11:35:50.390	warn	at Decoder.add (/opt/iobroker/node_modules/socket.io-parser/index.js:246:12)
                  javascript.0	2019-08-18 11:35:50.389	warn	at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:134:20)
                  javascript.0	2019-08-18 11:35:50.389	warn	at Decoder.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                  javascript.0	2019-08-18 11:35:50.388	warn	at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:332:8)
                  javascript.0	2019-08-18 11:35:50.388	warn	at Manager.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
                  javascript.0	2019-08-18 11:35:50.388	warn	at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                  javascript.0	2019-08-18 11:35:50.387	warn	at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:228:12)
                  javascript.0	2019-08-18 11:35:50.387	warn	at Socket.onevent (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:270:10)
                  javascript.0	2019-08-18 11:35:50.386	warn	at Socket.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
                  javascript.0	2019-08-18 11:35:50.386	warn	at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30)
                  javascript.0	2019-08-18 11:35:50.386	warn	at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3706:37)
                  javascript.0	2019-08-18 11:35:50.385	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:364:25)
                  javascript.0	2019-08-18 11:35:50.385	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:973:38)
                  javascript.0	2019-08-18 11:35:50.382	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1276:20)
                  
                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Aphofis last edited by

                    @Aphofis sagte:

                    Ja hatte das Script gestoppt dann Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1
                    geändert und gestartet aber script bleibt stumm

                    Der Wert des Datenpunktes (die Uhrzeit) muss nach dem Starten des Skriptes geändert werden.

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

                      @Aphofis sagte:

                      warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1276:20)

                      Es gibt nur ein setState() im Skript (Zeile 14). Es kann also nur an dem Datenpunkt "rpi2.0.gpio.25.state" liegen. Ist er nicht vom Typ "Logikwert"(boolean) ?

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

                        @Aphofis sagte:

                        gestartet aber script bleibt stumm

                        Wenn die Uhrzeiten auch bei Skriptstart gesetzt werden sollen ohne dass sie erst geändert werden müssen, ist für jede Uhrzeit eine Funktion erforderlich. Hier habe ich es mal für 2 Uhrzeiten dargestellt:

                        Blockly_temp.JPG

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

                          @paul53
                          wäre es so korrekt???

                          var clock_1, clock_2, Dauer, Uhrzeit_1, Uhrzeit_2, schedule_1, schedule_2, Intervall;
                          
                          /**
                           * Beschreibe diese Funktion …
                           */
                          function Futter() {
                            Dauer = parseFloat(getState("Aqua_Control.0.Futterautomatik.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);
                          }
                          
                          /**
                           * Beschreibe diese Funktion …
                           */
                          function setUhr1(clock_1) {
                            Uhrzeit_1 = clock_1.split(':');
                            schedule_1 = schedule((Uhrzeit_1[1]).trim() + ' ' + (Uhrzeit_1[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                              Futter();
                            });
                          }
                          
                          /**
                           * Beschreibe diese Funktion …
                           */
                          function setUhr2(clock_2) {
                            Uhrzeit_2 = clock_2.split(':');
                            schedule_2 = schedule((Uhrzeit_2[1]).trim() + ' ' + (Uhrzeit_2[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                              Futter();
                            });
                          }
                          
                          
                          // 1. Uhrzeit hh:mm
                          setUhr1(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1").val);
                          on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1', change: "ne"}, function (obj) {
                            var value = obj.state.val;
                            var oldValue = obj.oldState.val;
                            (function () {if (schedule_1) {clearSchedule(schedule_1); schedule_1 = null;}})();
                            setUhr1((obj.state ? obj.state.val : ""));
                          });
                          
                          // 2. Uhrzeit hh:mm
                          setUhr2(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_2").val);
                          on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_2', change: "ne"}, function (obj) {
                            var value = obj.state.val;
                            var oldValue = obj.oldState.val;
                            (function () {if (schedule_2) {clearSchedule(schedule_2); schedule_2 = null;}})();
                            setUhr2((obj.state ? obj.state.val : ""));
                          });
                          

                          Bildschirmfoto 2019-08-18 um 15.42.38.png

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

                            @Aphofis sagte:

                            wäre es so korrekt?

                            Ja, so sollte es funktionieren. Es ist zwar nicht nötig, unterschiedliche Variablen zu verwenden, schadet aber auch nicht. Nur die Zeitplan-Variablen (schedule_1, schedule_2) müssen unterschieden werden.

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

                              @paul53
                              Du bist mein Held!!! nur komisch ist fütterung 3 und 4 zucken einmal kurz und ich hatte zum testen die faktoren 1-4 auf 1-4 intervalle gestellt zum zeit stoppen ob erste dosierung 800 ms läuft 2 dosierung 1,6 sek. usw.
                              Doch 3 und 4 zuckt nur einmal kurz und bitte nicht vergessen.
                              Die sonoff.0.Aqua_Dosierer.POWER1 ist zum testen da der Dosierpumpen kasten noch nicht am system angeschlossen ist. Der Datenpunkt wird nachher geändert. Ich bin mir auch noch nicht ganz schlüssig, ob ich in den Haupt Controller Kasten ein ESP32 oder zwei ESP8266 einbaue und die schwimmschalter und die wichtigen Geräte wie vlies motor und Osmose Magnetventil darüber laufen lasse. Da mir die Pins am Pi nicht verlässlich genug sind. dann ändern sich einige Datenpunkte eh noch.
                              Desweiteren soll ja die dosierpumpen geschichte eine eigene steuerung bekommen die den selben aufbau hat wie die futterautomatik.
                              Was kann an 3 und 4 falsch sein !?

                              var clock_1, clock_3, clock_2, clock_4, Dauer_1, Dauer_2, Dauer_3, Dauer_4, Uhrzeit_1, Uhrzeit_3, Uhrzeit_2, Uhrzeit_4, schedule_1, schedule_3, schedule_2, schedule_4, Intervall, Intervall2, Intervall3, Intervall4;
                              
                              /**
                               * Beschreibe diese Funktion …
                               */
                              function Futter_1() {
                                Dauer_1 = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_1").val);
                                setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, true);
                                // Intervalldauer = Faktor
                                Intervall = setInterval(function () {
                                  Dauer_1 = (typeof Dauer_1 == 'number' ? Dauer_1 : 0) + -1;
                                  if (Dauer_1 <= 0) {
                                    (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                                    setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, false);
                                    sendTo("telegram.0", "send", {
                                        text: (['Futterautomatik wurde zeitgesteuert gestartet','\n','Granulat Futter für 0,8 Sek. gefüttert'].join(''))
                                    });
                                  }
                                }, 800);
                              }
                              
                              /**
                               * Beschreibe diese Funktion …
                               */
                              function Futter_2() {
                                Dauer_2 = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_2").val);
                                setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, true);
                                // Intervalldauer = Faktor
                                Intervall2 = setInterval(function () {
                                  Dauer_2 = (typeof Dauer_2 == 'number' ? Dauer_2 : 0) + -1;
                                  if (Dauer_2 <= 0) {
                                    (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                                    setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, false);
                                    sendTo("telegram.0", "send", {
                                        text: (['Futterautomatik wurde zeitgesteuert gestartet','\n','Granulat Futter für 0,8 Sek. gefüttert'].join(''))
                                    });
                                  }
                                }, 800);
                              }
                              
                              /**
                               * Beschreibe diese Funktion …
                               */
                              function Futter_3() {
                                Dauer_3 = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_3").val);
                                setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, true);
                                // Intervalldauer = Faktor
                                Intervall3 = setInterval(function () {
                                  Dauer_3 = (typeof Dauer_3 == 'number' ? Dauer_3 : 0) + -1;
                                  if (Dauer_3 <= 0) {
                                    (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                                    setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, false);
                                    sendTo("telegram.0", "send", {
                                        text: (['Futterautomatik wurde zeitgesteuert gestartet','\n','Granulat Futter für 0,8 Sek. gefüttert'].join(''))
                                    });
                                  }
                                }, 800);
                              }
                              
                              /**
                               * Beschreibe diese Funktion …
                               */
                              function Futter_4() {
                                Dauer_4 = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_3").val);
                                setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, true);
                                // Intervalldauer = Faktor
                                Intervall4 = setInterval(function () {
                                  Dauer_4 = (typeof Dauer_4 == 'number' ? Dauer_4 : 0) + -1;
                                  if (Dauer_4 <= 0) {
                                    (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                                    setState("sonoff.0.Aqua_Dosierer.POWER1"/*Aqua_Dosierer_Pumpe_1*/, false);
                                    sendTo("telegram.0", "send", {
                                        text: (['Futterautomatik wurde zeitgesteuert gestartet','\n','Granulat Futter für 0,8 Sek. gefüttert'].join(''))
                                    });
                                  }
                                }, 800);
                              }
                              
                              /**
                               * Beschreibe diese Funktion …
                               */
                              function setUhr1(clock_1) {
                                Uhrzeit_1 = clock_1.split(':');
                                schedule_1 = schedule((Uhrzeit_1[1]).trim() + ' ' + (Uhrzeit_1[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                                  Futter_1();
                                });
                              }
                              
                              /**
                               * Beschreibe diese Funktion …
                               */
                              function setUhr2(clock_2) {
                                Uhrzeit_2 = clock_2.split(':');
                                schedule_2 = schedule((Uhrzeit_2[1]).trim() + ' ' + (Uhrzeit_2[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                                  Futter_2();
                                });
                              }
                              
                              /**
                               * Beschreibe diese Funktion …
                               */
                              function setUhr3(clock_3) {
                                Uhrzeit_3 = clock_3.split(':');
                                schedule_3 = schedule((Uhrzeit_3[1]).trim() + ' ' + (Uhrzeit_3[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                                  Futter_3();
                                });
                              }
                              
                              /**
                               * Beschreibe diese Funktion …
                               */
                              function setUhr4(clock_4) {
                                Uhrzeit_4 = clock_4.split(':');
                                schedule_4 = schedule((Uhrzeit_4[1]).trim() + ' ' + (Uhrzeit_4[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                                  Futter_4();
                                });
                              }
                              
                              
                              // 1. Uhrzeit hh:mm
                              setUhr1(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1").val);
                              on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1', change: "ne"}, function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                (function () {if (schedule_1) {clearSchedule(schedule_1); schedule_1 = null;}})();
                                setUhr1((obj.state ? obj.state.val : ""));
                              });
                              
                              // 2. Uhrzeit hh:mm
                              setUhr2(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_2").val);
                              on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_2', change: "ne"}, function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                (function () {if (schedule_2) {clearSchedule(schedule_2); schedule_2 = null;}})();
                                setUhr2((obj.state ? obj.state.val : ""));
                              });
                              
                              // 3. Uhrzeit hh:mm
                              setUhr3(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_3").val);
                              on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_3', change: "ne"}, function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                (function () {if (schedule_3) {clearSchedule(schedule_3); schedule_3 = null;}})();
                                setUhr3((obj.state ? obj.state.val : ""));
                              });
                              
                              // 4. Uhrzeit hh:mm
                              setUhr4(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_4").val);
                              on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_4', change: "ne"}, function (obj) {
                                var value = obj.state.val;
                                var oldValue = obj.oldState.val;
                                (function () {if (schedule_4) {clearSchedule(schedule_4); schedule_4 = null;}})();
                                setUhr4((obj.state ? obj.state.val : ""));
                              });
                              
                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @Aphofis last edited by

                                @Aphofis
                                In den Funktionen Futter_2(), Futter_3() und Futter_4() wird das falsche Intervall gestoppt.

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

                                  Hab jetzt für jede Fütterung eine eigene Steuerung gemacht da es sonst zu unübersichtlich wird.

                                  var clock, Dauer, Uhrzeit, schedule, Intervall;
                                  
                                  /**
                                   * Beschreibe diese Funktion …
                                   */
                                  function Futter() {
                                    Dauer = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_1").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);
                                  }
                                  
                                  /**
                                   * Beschreibe diese Funktion …
                                   */
                                  function setUhr(clock) {
                                    Uhrzeit = clock.split(':');
                                    schedule = schedule((Uhrzeit[1]).trim() + ' ' + (Uhrzeit[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                                      Futter();
                                    });
                                  }
                                  
                                  
                                  setUhr(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1").val);
                                  on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_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 : ""));
                                  });
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • Aphofis
                                    Aphofis @paul53 last edited by

                                    @paul53
                                    Ja hatte ich gesehen! Deswegen einzelne Steuerungen dann kommt es innerhalb der Variablen und Funktionen nicht zum irrtum.

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

                                      Habe jetzt alle vier steuerungen getestet und es werden alle so dosiert wie der intervall eingestellt ist mit dem Faktor und der angegebenen Uhrzeit!!!
                                      Das Ergebnis für eine Dosierzeit ist:

                                      <xml xmlns="http://www.w3.org/1999/xhtml">
                                        <variables>
                                          <variable type="" id=".S1.A,IoO_~]*nXiz`S*">clock</variable>
                                          <variable type="" id="u)9}*R19v/Qs3Rt)$4,W">Dauer</variable>
                                          <variable type="" id="Q7*Gw)fesXb}OUBj1{`;">Uhrzeit</variable>
                                          <variable type="undefined" id="schedule">schedule</variable>
                                          <variable type="undefined" id="Intervall">Intervall</variable>
                                        </variables>
                                        <block type="procedures_defnoreturn" id="jE$gVVpa7!Xtx{X@H^Fd" x="-2662" y="-1512">
                                          <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="u)9}*R19v/Qs3Rt)$4,W" 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.Futterautomatik.Futterautomatik_Faktor_1</field>
                                                    </block>
                                                  </value>
                                                </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">700</field>
                                                          <field name="UNIT">ms</field>
                                                          <statement name="STATEMENT">
                                                            <block type="math_change" id="!*zN$DgW0K=76_[.1*]X">
                                                              <field name="VAR" id="u)9}*R19v/Qs3Rt)$4,W" 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="u)9}*R19v/Qs3Rt)$4,W" 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">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>
                                                                  </statement>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </statement>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </statement>
                                        </block>
                                        <block type="procedures_callnoreturn" id="3a)9A+{U=BTerQFdk^7e" x="-2662" y="-1162">
                                          <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.Futterautomatik.Futterautomatik_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.Futterautomatik.Futterautomatik_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="fK5kmsd)LwZ7|P2xa^9U" x="-2387" y="-1062">
                                          <mutation>
                                            <arg name="clock" varid=".S1.A,IoO_~]*nXiz`S*"></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="Q7*Gw)fesXb}OUBj1{`;" 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=".S1.A,IoO_~]*nXiz`S*" 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="Q7*Gw)fesXb}OUBj1{`;" 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="Q7*Gw)fesXb}OUBj1{`;" 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="Futter"></mutation>
                                                    </block>
                                                  </statement>
                                                </block>
                                              </next>
                                            </block>
                                          </statement>
                                        </block>
                                      </xml>
                                      
                                      <xml xmlns="http://www.w3.org/1999/xhtml">
                                        <variables>
                                          <variable type="" id=".S1.A,IoO_~]*nXiz`S*">clock</variable>
                                          <variable type="" id="u)9}*R19v/Qs3Rt)$4,W">Dauer</variable>
                                          <variable type="" id="Q7*Gw)fesXb}OUBj1{`;">Uhrzeit</variable>
                                          <variable type="undefined" id="schedule">schedule</variable>
                                          <variable type="undefined" id="Intervall">Intervall</variable>
                                        </variables>
                                        <block type="procedures_defnoreturn" id="jE$gVVpa7!Xtx{X@H^Fd" x="-2662" y="-1512">
                                          <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="u)9}*R19v/Qs3Rt)$4,W" 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.Futterautomatik.Futterautomatik_Faktor_1</field>
                                                    </block>
                                                  </value>
                                                </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">700</field>
                                                          <field name="UNIT">ms</field>
                                                          <statement name="STATEMENT">
                                                            <block type="math_change" id="!*zN$DgW0K=76_[.1*]X">
                                                              <field name="VAR" id="u)9}*R19v/Qs3Rt)$4,W" 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="u)9}*R19v/Qs3Rt)$4,W" 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">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>
                                                                  </statement>
                                                                </block>
                                                              </next>
                                                            </block>
                                                          </statement>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </statement>
                                        </block>
                                        <block type="procedures_callnoreturn" id="3a)9A+{U=BTerQFdk^7e" x="-2662" y="-1162">
                                          <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.Futterautomatik.Futterautomatik_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.Futterautomatik.Futterautomatik_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="fK5kmsd)LwZ7|P2xa^9U" x="-2387" y="-1062">
                                          <mutation>
                                            <arg name="clock" varid=".S1.A,IoO_~]*nXiz`S*"></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="Q7*Gw)fesXb}OUBj1{`;" 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=".S1.A,IoO_~]*nXiz`S*" 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="Q7*Gw)fesXb}OUBj1{`;" 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="Q7*Gw)fesXb}OUBj1{`;" 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="Futter"></mutation>
                                                    </block>
                                                  </statement>
                                                </block>
                                              </next>
                                            </block>
                                          </statement>
                                        </block>
                                      </xml>
                                      
                                      var clock, Dauer, Uhrzeit, schedule, Intervall;
                                      
                                      /**
                                       * Beschreibe diese Funktion …
                                       */
                                      function Futter() {
                                        Dauer = parseFloat(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Faktor_1").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);
                                          }
                                        }, 700);
                                      }
                                      
                                      /**
                                       * Beschreibe diese Funktion …
                                       */
                                      function setUhr(clock) {
                                        Uhrzeit = clock.split(':');
                                        schedule = schedule((Uhrzeit[1]).trim() + ' ' + (Uhrzeit[0]).trim() + ' ' + '*'.trim() + ' ' + '*'.trim() + ' ' + '*'.trim(), function () {
                                          Futter();
                                        });
                                      }
                                      
                                      
                                      setUhr(getState("Aqua_Control.0.Futterautomatik.Futterautomatik_Uhrzeit_1").val);
                                      on({id: 'Aqua_Control.0.Futterautomatik.Futterautomatik_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 : ""));
                                      });
                                      

                                      Datenpunkte:

                                      Bildschirmfoto 2019-08-18 um 17.40.11.png

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

                                        Es ist echt Spitze!!!!
                                        Egal welches Problem ich dir auch vor die Füße Werfe, du findest eine Lösung!!!
                                        Vielen vielen Dank.
                                        Ich würde ja glatt sagen um meine Strömungspumpen geschichte zum laufen zu bekommen, würde ich dir dafür sogar Geld geben.

                                        Homoran 1 Reply Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators @Aphofis last edited by

                                          @Aphofis
                                          Und warum gibt es keine positive(n) Bewertung(en)?

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

                                            @Homoran
                                            Wenn du mir verrätst wo!
                                            ICh suche das schon die ganze Zeit aber finde die option nicht.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            786
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

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