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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [gelöst] Hilfe bei zeitsteuerung

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

[gelöst] Hilfe bei zeitsteuerung

Geplant Angeheftet Gesperrt Verschoben Blockly
80 Beiträge 4 Kommentatoren 6.5k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • AphofisA Aphofis
    var Dauer, Intervall, Uhrzeit_1, schedule_1, Uhrzeit_2, schedule_2, Uhrzeit_3, schedule_3, Uhrzeit_4, schedule_4;
    
    /**
     * Beschreibe diese Funktion …
     */
    function Futter() {
      Dauer = parseFloat(getState("Aqua_Control.0.Futterautomatik.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);
    }
    
    
    console.log(typeof getState("Aqua_Control.0.Futterautomatik.Futterautomatik_multiplikator").val);
    Futter();
    // 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
    
    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #29

    @Aphofis
    Der Datenpunkt 'sonoff.0.Aqua_Dosierer.POWER1' (s. Zeile 24) enthält keinen String, weshalb .split(':') in Zeile 27 nicht ausgeführt werden kann. Setze endlich die richtige Datenpunkt-ID ein !

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    AphofisA 1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @Aphofis
      Der Datenpunkt 'sonoff.0.Aqua_Dosierer.POWER1' (s. Zeile 24) enthält keinen String, weshalb .split(':') in Zeile 27 nicht ausgeführt werden kann. Setze endlich die richtige Datenpunkt-ID ein !

      AphofisA Offline
      AphofisA Offline
      Aphofis
      schrieb am zuletzt editiert von Aphofis
      #30

      @paul53
      Datenpunkt gesetzt

      var Dauer, Intervall, Uhrzeit_1, schedule_1, Uhrzeit_2, schedule_2, Uhrzeit_3, schedule_3, Uhrzeit_4, schedule_4;
      
      /**
       * 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;
          console.log(Dauer);
          if (Dauer <= 0) {
            (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
          }
          setState("rpi2.0.gpio.25.state"/*Futterautomat_Buchse_4*/, false);
        }, 800);
      }
      
      
      console.log(typeof getState("Aqua_Control.0.Futterautomatik.Futterautomatik_multiplikator").val);
      Futter();
      // 1. Uhrzeit hh:mm
      on({id: 'rpi2.0.gpio.25.state', 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
      

      Dosierung läuft und zählt die dosierzeit vom eingestellten Datenpunkt wert runter und stoppt dann.
      Doch der fehler ist immer noch geblieben.

      00:17:53.823	error	javascript.0 at Object.<anonymous> (script.js.Test_Blocklys.test:27:48)
      
      paul53P 1 Antwort Letzte Antwort
      0
      • AphofisA Aphofis

        @paul53
        Datenpunkt gesetzt

        var Dauer, Intervall, Uhrzeit_1, schedule_1, Uhrzeit_2, schedule_2, Uhrzeit_3, schedule_3, Uhrzeit_4, schedule_4;
        
        /**
         * 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;
            console.log(Dauer);
            if (Dauer <= 0) {
              (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
            }
            setState("rpi2.0.gpio.25.state"/*Futterautomat_Buchse_4*/, false);
          }, 800);
        }
        
        
        console.log(typeof getState("Aqua_Control.0.Futterautomatik.Futterautomatik_multiplikator").val);
        Futter();
        // 1. Uhrzeit hh:mm
        on({id: 'rpi2.0.gpio.25.state', 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
        

        Dosierung läuft und zählt die dosierzeit vom eingestellten Datenpunkt wert runter und stoppt dann.
        Doch der fehler ist immer noch geblieben.

        00:17:53.823	error	javascript.0 at Object.<anonymous> (script.js.Test_Blocklys.test:27:48)
        
        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #31

        @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).

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        AphofisA 1 Antwort Letzte Antwort
        1
        • paul53P 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).

          AphofisA Offline
          AphofisA Offline
          Aphofis
          schrieb am zuletzt editiert von Aphofis
          #32

          @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)

          paul53P 1 Antwort Letzte Antwort
          0
          • AphofisA 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)

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #33

            @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

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            AphofisA 1 Antwort Letzte Antwort
            1
            • paul53P 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

              AphofisA Offline
              AphofisA Offline
              Aphofis
              schrieb am zuletzt editiert von
              #34

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

              paul53P 1 Antwort Letzte Antwort
              0
              • AphofisA Aphofis

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

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von paul53
                #35

                @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.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                AphofisA 1 Antwort Letzte Antwort
                0
                • paul53P 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.

                  AphofisA Offline
                  AphofisA Offline
                  Aphofis
                  schrieb am zuletzt editiert von
                  #36

                  @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();
                    });
                  });
                  
                  paul53P 2 Antworten Letzte Antwort
                  0
                  • AphofisA Offline
                    AphofisA Offline
                    Aphofis
                    schrieb am zuletzt editiert von Aphofis
                    #37

                    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)
                    
                    paul53P 1 Antwort Letzte Antwort
                    0
                    • AphofisA Aphofis

                      @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();
                        });
                      });
                      
                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #38

                      @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.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      1
                      • AphofisA 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)
                        
                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #39

                        @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) ?

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        1 Antwort Letzte Antwort
                        1
                        • AphofisA Aphofis

                          @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();
                            });
                          });
                          
                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #40

                          @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

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          AphofisA 1 Antwort Letzte Antwort
                          1
                          • paul53P paul53

                            @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

                            AphofisA Offline
                            AphofisA Offline
                            Aphofis
                            schrieb am zuletzt editiert von Aphofis
                            #41

                            @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

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • AphofisA 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

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von paul53
                              #42

                              @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.

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              AphofisA 1 Antwort Letzte Antwort
                              1
                              • paul53P 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.

                                AphofisA Offline
                                AphofisA Offline
                                Aphofis
                                schrieb am zuletzt editiert von
                                #43

                                @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 : ""));
                                });
                                
                                paul53P 1 Antwort Letzte Antwort
                                0
                                • AphofisA Aphofis

                                  @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 : ""));
                                  });
                                  
                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von
                                  #44

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

                                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                  AphofisA 1 Antwort Letzte Antwort
                                  0
                                  • AphofisA Offline
                                    AphofisA Offline
                                    Aphofis
                                    schrieb am zuletzt editiert von
                                    #45

                                    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 Antwort Letzte Antwort
                                    0
                                    • paul53P paul53

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

                                      AphofisA Offline
                                      AphofisA Offline
                                      Aphofis
                                      schrieb am zuletzt editiert von
                                      #46

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

                                      1 Antwort Letzte Antwort
                                      0
                                      • AphofisA Offline
                                        AphofisA Offline
                                        Aphofis
                                        schrieb am zuletzt editiert von Aphofis
                                        #47

                                        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 Antwort Letzte Antwort
                                        0
                                        • AphofisA Offline
                                          AphofisA Offline
                                          Aphofis
                                          schrieb am zuletzt editiert von
                                          #48

                                          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.

                                          HomoranH 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          668

                                          Online

                                          32.6k

                                          Benutzer

                                          82.3k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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