Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Hilfe bei zeitsteuerung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Hilfe bei zeitsteuerung

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

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

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

        @Aphofis sagte:

        Das ich zwei datenpunkte habe!? Ist bewusst?

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

        Bist Du sicher, dass das der richtige Datenpunkt ist ?

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

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

          @paul53

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

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

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

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

              @Aphofis sagte:

              Erhöhe Dauer um -1 was bewirkt das ?

              Das ist ein Count down.

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

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

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

                  @Aphofis sagte:

                  aber laufen will es immer noch nicht

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

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

                    @paul53

                    Der Code:

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

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

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

                      @Aphofis
                      Zeile 16: setState() ist immer noch außerhalb der Abfrage if(Dauer <= 0)
                      Zeile 22: Die ID ist falsch (keine Uhrzeit)
                      Mit welcher Uhrzeit hast Du es getestet ?

                      Zum Testen der Funktion Futter rufe die Funktion mal beim Skripstart auf und prüfe den Typ des Multiplikator-Datenpunktes.

                      Blockly_temp.JPG

                      Vielleicht hilft die Konvertierung nach Zahl ?
                      Blockly_temp.JPG

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

                        @paul53
                        Hab ich mal eingefügt
                        Zeiten trage ich in die datenpunkte
                        Mit zb 16:30 ein

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

                          @paul53
                          Wenn ich das Script mit den Änderungen ausführe kommt die Meldung:
                          34E28E1B-2E5A-4D78-BB28-A5615458F0FF.jpeg

                          Und die Play Pause Zeichen vom Script ist das Pause Zeichen jetzt gelb
                          Im trigger ist wert
                          image.jpg
                          aus trigger Objekt ID korrekt oder ?

                          Und in der log hat JavaScript eine Menge Fehler mit welcher Steuerung das jetzt zu tun hat weiß ich nicht.

                          javascript.0	2019-08-15 00:15:20.484	warn	at TCP.onread (net.js:601:20)
                          javascript.0	2019-08-15 00:15:20.484	warn	at Socket.Readable.push (_stream_readable.js:208:10)
                          javascript.0	2019-08-15 00:15:20.484	warn	at readableAddChunk (_stream_readable.js:250:11)
                          javascript.0	2019-08-15 00:15:20.484	warn	at addChunk (_stream_readable.js:263:12)
                          javascript.0	2019-08-15 00:15:20.483	warn	at Socket.emit (events.js:211:7)
                          javascript.0	2019-08-15 00:15:20.483	warn	at emitOne (events.js:116:13)
                          javascript.0	2019-08-15 00:15:20.483	warn	at Socket.realHandler (/opt/iobroker/node_modules/ws/lib/WebSocket.js:825:20)
                          javascript.0	2019-08-15 00:15:20.483	warn	at Receiver.add (/opt/iobroker/node_modules/ws/lib/Receiver.js:103:24)
                          javascript.0	2019-08-15 00:15:20.483	warn	at Receiver.expectHandler (/opt/iobroker/node_modules/ws/lib/Receiver.js:499:31)
                          javascript.0	2019-08-15 00:15:20.483	warn	at Receiver.finish (/opt/iobroker/node_modules/ws/lib/Receiver.js:541:12)
                          javascript.0	2019-08-15 00:15:20.483	warn	at Receiver.flush (/opt/iobroker/node_modules/ws/lib/Receiver.js:347:3)
                          javascript.0	2019-08-15 00:15:20.483	warn	at /opt/iobroker/node_modules/ws/lib/Receiver.js:508:14
                          javascript.0	2019-08-15 00:15:20.483	warn	at Receiver.applyExtensions (/opt/iobroker/node_modules/ws/lib/Receiver.js:371:5)
                          javascript.0	2019-08-15 00:15:20.483	warn	at /opt/iobroker/node_modules/ws/lib/Receiver.js:536:18
                          javascript.0	2019-08-15 00:15:20.483	warn	at Receiver.ontext (/opt/iobroker/node_modules/ws/lib/WebSocket.js:841:10)
                          javascript.0	2019-08-15 00:15:20.482	warn	at WebSocket.emit (events.js:214:7)
                          javascript.0	2019-08-15 00:15:20.482	warn	at emitTwo (events.js:126:13)
                          javascript.0	2019-08-15 00:15:20.482	warn	at WebSocket.onMessage (/opt/iobroker/node_modules/ws/lib/WebSocket.js:442:14)
                          javascript.0	2019-08-15 00:15:20.482	warn	at WebSocket.ws.onmessage (/opt/iobroker/node_modules/engine.io-client/lib/transports/websocket.js:146:10)
                          javascript.0	2019-08-15 00:15:20.482	warn	at WS.Transport.onData (/opt/iobroker/node_modules/engine.io-client/lib/transport.js:137:8)
                          javascript.0	2019-08-15 00:15:20.482	warn	at WS.Transport.onPacket (/opt/iobroker/node_modules/engine.io-client/lib/transport.js:145:8)
                          javascript.0	2019-08-15 00:15:20.482	warn	at WS.Emitter.emit (/opt/iobroker/node_modules/engine.io-client/node_modules/component-emitter/index.js:133:20)
                          javascript.0	2019-08-15 00:15:20.482	warn	at WS.<anonymous> (/opt/iobroker/node_modules/engine.io-client/lib/socket.js:268:10)
                          javascript.0	2019-08-15 00:15:20.482	warn	at Socket.onPacket (/opt/iobroker/node_modules/engine.io-client/lib/socket.js:451:14)
                          javascript.0	2019-08-15 00:15:20.482	warn	at Socket.Emitter.emit (/opt/iobroker/node_modules/engine.io-client/node_modules/component-emitter/index.js:133:20)
                          javascript.0	2019-08-15 00:15:20.482	warn	at Socket.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                          javascript.0	2019-08-15 00:15:20.482	warn	at Manager.ondata (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:322:16)
                          javascript.0	2019-08-15 00:15:20.482	warn	at Decoder.add (/opt/iobroker/node_modules/socket.io-parser/index.js:246:12)
                          javascript.0	2019-08-15 00:15:20.481	warn	at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:134:20)
                          javascript.0	2019-08-15 00:15:20.481	warn	at Decoder.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                          javascript.0	2019-08-15 00:15:20.481	warn	at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:332:8)
                          javascript.0	2019-08-15 00:15:20.481	warn	at Manager.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
                          javascript.0	2019-08-15 00:15:20.481	warn	at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                          javascript.0	2019-08-15 00:15:20.481	warn	at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:228:12)
                          javascript.0	2019-08-15 00:15:20.481	warn	at Socket.onevent (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:270:10)
                          javascript.0	2019-08-15 00:15:20.481	warn	at Socket.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
                          javascript.0	2019-08-15 00:15:20.481	warn	at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30)
                          javascript.0	2019-08-15 00:15:20.481	warn	at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3706:37)
                          javascript.0	2019-08-15 00:15:20.481	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:364:25)
                          javascript.0	2019-08-15 00:15:20.481	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:973:38)
                          javascript.0	2019-08-15 00:15:20.480	warn	at Object.<anonymous> (script.js.Automatik_Steuerung.Aquarium_Niveau_Sensor:20:14)
                          javascript.0	2019-08-15 00:15:20.480	warn	getState "Aqua_Control.0.Aquarium_ausschalten" not found (3)
                          host.GordonX-Pi	2019-08-15 00:15:02.578	info	instance system.adapter.daswetter.0 terminated with code 11 (Desired termination)
                          daswetter.0	2019-08-15 00:15:02.045	debug	calling forecast 7 days: https://www.daswetter.com/wetter_Norderstedt-Europa-Deutschland-Schleswig+Holstein--1-27129.html
                          daswetter.0	2019-08-15 00:15:02.045	debug	using new data structure
                          daswetter.0	2019-08-15 00:15:02.045	debug	set timeout to 60 sec
                          daswetter.0	2019-08-15 00:15:02.044	info	starting. Version 2.8.0 in /opt/iobroker/node_modules/iobroker.daswetter, node: v8.16.0
                          host.GordonX-Pi	2019-08-15 00:15:00.054	info	instance system.adapter.daswetter.0 started with pid 20997
                          javascript.0	2019-08-15 00:14:30.455	warn	at TCP.onread (net.js:601:20)
                          javascript.0	2019-08-15 00:14:30.454	warn	at Socket.Readable.push (_stream_readable.js:208:10)
                          javascript.0	2019-08-15 00:14:30.453	warn	at readableAddChunk (_stream_readable.js:250:11)
                          javascript.0	2019-08-15 00:14:30.452	warn	at addChunk (_stream_readable.js:263:12)
                          javascript.0	2019-08-15 00:14:30.451	warn	at Socket.emit (events.js:211:7)
                          javascript.0	2019-08-15 00:14:30.450	warn	at emitOne (events.js:116:13)
                          javascript.0	2019-08-15 00:14:30.449	warn	at Socket.realHandler (/opt/iobroker/node_modules/ws/lib/WebSocket.js:825:20)
                          javascript.0	2019-08-15 00:14:30.445	warn	at Receiver.add (/opt/iobroker/node_modules/ws/lib/Receiver.js:103:24)
                          javascript.0	2019-08-15 00:14:30.445	warn	at Receiver.expectHandler (/opt/iobroker/node_modules/ws/lib/Receiver.js:499:31)
                          javascript.0	2019-08-15 00:14:30.444	warn	at Receiver.finish (/opt/iobroker/node_modules/ws/lib/Receiver.js:541:12)
                          javascript.0	2019-08-15 00:14:30.444	warn	at Receiver.flush (/opt/iobroker/node_modules/ws/lib/Receiver.js:347:3)
                          javascript.0	2019-08-15 00:14:30.444	warn	at /opt/iobroker/node_modules/ws/lib/Receiver.js:508:14
                          javascript.0	2019-08-15 00:14:30.443	warn	at Receiver.applyExtensions (/opt/iobroker/node_modules/ws/lib/Receiver.js:371:5)
                          javascript.0	2019-08-15 00:14:30.442	warn	at /opt/iobroker/node_modules/ws/lib/Receiver.js:536:18
                          javascript.0	2019-08-15 00:14:30.437	warn	at Receiver.ontext (/opt/iobroker/node_modules/ws/lib/WebSocket.js:841:10)
                          javascript.0	2019-08-15 00:14:30.437	warn	at WebSocket.emit (events.js:214:7)
                          javascript.0	2019-08-15 00:14:30.436	warn	at emitTwo (events.js:126:13)
                          javascript.0	2019-08-15 00:14:30.435	warn	at WebSocket.onMessage (/opt/iobroker/node_modules/ws/lib/WebSocket.js:442:14)
                          javascript.0	2019-08-15 00:14:30.434	warn	at WebSocket.ws.onmessage (/opt/iobroker/node_modules/engine.io-client/lib/transports/websocket.js:146:10)
                          javascript.0	2019-08-15 00:14:30.433	warn	at WS.Transport.onData (/opt/iobroker/node_modules/engine.io-client/lib/transport.js:137:8)
                          javascript.0	2019-08-15 00:14:30.433	warn	at WS.Transport.onPacket (/opt/iobroker/node_modules/engine.io-client/lib/transport.js:145:8)
                          javascript.0	2019-08-15 00:14:30.432	warn	at WS.Emitter.emit (/opt/iobroker/node_modules/engine.io-client/node_modules/component-emitter/index.js:133:20)
                          javascript.0	2019-08-15 00:14:30.432	warn	at WS.<anonymous> (/opt/iobroker/node_modules/engine.io-client/lib/socket.js:268:10)
                          javascript.0	2019-08-15 00:14:30.432	warn	at Socket.onPacket (/opt/iobroker/node_modules/engine.io-client/lib/socket.js:451:14)
                          javascript.0	2019-08-15 00:14:30.431	warn	at Socket.Emitter.emit (/opt/iobroker/node_modules/engine.io-client/node_modules/component-emitter/index.js:133:20)
                          javascript.0	2019-08-15 00:14:30.431	warn	at Socket.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                          javascript.0	2019-08-15 00:14:30.430	warn	at Manager.ondata (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:322:16)
                          javascript.0	2019-08-15 00:14:30.430	warn	at Decoder.add (/opt/iobroker/node_modules/socket.io-parser/index.js:246:12)
                          javascript.0	2019-08-15 00:14:30.429	warn	at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:134:20)
                          javascript.0	2019-08-15 00:14:30.429	warn	at Decoder.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                          javascript.0	2019-08-15 00:14:30.429	warn	at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:332:8)
                          javascript.0	2019-08-15 00:14:30.428	warn	at Manager.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
                          javascript.0	2019-08-15 00:14:30.428	warn	at Manager.<anonymous> (/opt/iobroker/node_modules/component-bind/index.js:21:15)
                          javascript.0	2019-08-15 00:14:30.427	warn	at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:228:12)
                          javascript.0	2019-08-15 00:14:30.427	warn	at Socket.onevent (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:270:10)
                          javascript.0	2019-08-15 00:14:30.426	warn	at Socket.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
                          javascript.0	2019-08-15 00:14:30.425	warn	at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30)
                          javascript.0	2019-08-15 00:14:30.424	warn	at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3706:37)
                          javascript.0	2019-08-15 00:14:30.424	warn	at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:364:25)
                          javascript.0	2019-08-15 00:14:30.423	warn	at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:973:38)
                          javascript.0	2019-08-15 00:14:30.421	warn	at Object.<anonymous> (script.js.Automatik_Steuerung.Aquarium_Niveau_Sensor:20:14)
                          javascript.0	2019-08-15 00:14:30.418	warn	getState "Aqua_Control.0.Aquarium_ausschalten" not found (3)
                          

                          Ist vielleicht die Datenbank Verbindung nicht hergestellt ?
                          Nur müssten die Fehler was mit der Futter Automatik zu tun haben, jetzt hatte ich die Steuerung abgeschaltet die Fehler in der log kommen nicht mehr

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

                            @Aphofis sagte in Hilfe bei zeitsteuerung:

                            javascript.0	2019-08-15 00:14:30.418	warn	getState "Aqua_Control.0.Aquarium_ausschalten" not found (3)
                            

                            Nicht existierender Datenpunkt ? Wo wird er verwendet ?

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

                              @paul53
                              Den hatte ich schon korrigiert!
                              Danach liefen die Zähler Steuerungen immer noch nicht und die dosier Steuerung Haut die JavaScript Fehler in die log

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

                                @Aphofis Poste bitte den Javascript-Code ohne letzte Zeile, da ich sonst mit der Fehlermeldung zu Zeile 27 nichts anfangen kann.

                                Die Konvertierung des "multiplikator" nach Zahl ist erforderlich.

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

                                  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
                                  
                                  paul53 1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @Aphofis last edited by

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

                                    Aphofis 1 Reply Last reply Reply Quote 0
                                    • Aphofis
                                      Aphofis @paul53 last edited by 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)
                                      
                                      paul53 1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @Aphofis last edited by paul53

                                        @Aphofis sagte:

                                        Doch der fehler ist immer noch geblieben.

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

                                        Das ist auch der falsche Datenpunkt ! Der richtige ist

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

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

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

                                          @paul53
                                          Meinst du so ?

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

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

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

                                            @Aphofis sagte:

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

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

                                            Zeile 25: Wieso steht da plötzlich ?

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

                                            Richtig ist

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

                                            Blockly_temp.JPG

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            834
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            80
                                            4132
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo