Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Steuerung Poolpumpe

    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

    Steuerung Poolpumpe

    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      GeorgS last edited by

      @paul53:

      Ich habe an 3 Stellen geändert:

      • zweimal Wert: geändert von Variable in Datenpunkt-Eigenschaft

      • stop zyklische Ausführung Intervall2: im 2. Block `

      leider funktioniert es immer noch nicht 😞 er will einfach meine pumpe nicht anmachen 😕

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

        @paul53:

        Damit das Schedule gesetzt wird, muss die Startzeit einmal verändert werden, da ohne diese Änderung nicht getriggert wird. `
        Diese Änderung der Startzeit muss nach dem Starten des Skriptes erfolgen !

        1 Reply Last reply Reply Quote 0
        • G
          GeorgS last edited by

          ja das ist mir klar, ich ändere ja auch die Zeit um zu Testen ob es geht immer so um 5min der aktuellen Zeit

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

            Dann bau mal ein Log ein.
            493_blockly_debug_trigger-wert.jpg

            1 Reply Last reply Reply Quote 0
            • G
              GeorgS last edited by

              Wo sehe ich den Debug dann bis jetzt wurde nix ausgegeben

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

                @GeorgS:

                Wo sehe ich den Debug `
                Im Reiter "Log" sollte zum Zeitpunkt der Änderung die Uhrzeit (Startzeit) erscheinen.

                1 Reply Last reply Reply Quote 0
                • G
                  GeorgS last edited by

                  So siehtr der Log ich jetzt… Die Zeit wird erstellt 😃

                  javascript.0 2018-06-12 20:52:15.304 info script.js.common.Pool.Filterpumpe: schedule(cron=55 20 * * *)

                  javascript.0 2018-06-12 20:52:15.303 info script.js.common.Pool.Filterpumpe: 20:55

                  javascript.0 2018-06-12 18:46:51.298 info script.js.common.Pool.Filterpumpe: registered 2 subscriptions and 0 schedules

                  javascript.0 2018-06-12 18:46:51.297 info script.js.common.Pool.Filterpumpe: subscribe: {"pattern":{"id":"javascript.0.Pool.Filteranlage.Startzeit_2","change":"ne"},"name":"script.js.common.Pool.Filterpumpe"}

                  javascript.0 2018-06-12 18:46:51.297 info script.js.common.Pool.Filterpumpe: subscribe: {"pattern":{"id":"javascript.0.Pool.Filteranlage.Startzeit_1","change":"ne"},"name":"script.js.common.Pool.Filterpumpe"}

                  javascript.0 2018-06-12 18:46:51.281 info Start javascript script.js.common.Pool.Filterpumpe

                  javascript.0 2018-06-12 18:46:51.276 info Stop script script.js.common.Pool.Filterpumpe

                  javascript.0 2018-06-12 18:46:05.942 info script.js.common.Pool.Filterpumpe: 20:50

                  javascript.0 2018-06-12 18:45:54.851 info script.js.common.Pool.Filterpumpe: registered 2 subscriptions and 0 schedules

                  javascript.0 2018-06-12 18:45:54.836 info Start javascript script.js.common.Pool.Filterpumpe

                  javascript.0 2018-06-12 18:45:53.099 info Stop script script.js.common.Pool.Filterpumpe

                  javascript.0 2018-06-12 18:45:51.073 info script.js.common.Pool.Filterpumpe: registered 2 subscriptions and 0 schedules

                  javascript.0 2018-06-12 18:45:51.058 info Start javascript script.js.common.Pool.Filterpumpe

                  javascript.0 2018-06-12 18:45:51.053 info Stop script script.js.common.Pool.Filterpumpe

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

                    Habe mal getestet: Datenpunkt "Test.Schalter" (anstelle DECT) ging um 21:08 Uhr auf "Ein" (true) und um 21:10 Uhr auf "Aus" (false).
                    493_test_poolfilter.jpg

                    1 Reply Last reply Reply Quote 0
                    • G
                      GeorgS last edited by

                      Da werde ich morgen noch mal das ganze versuchen und melde mich dann 🙂 bin nämlich auf Arbeit 😞

                      Aber danke für die Hilfe

                      Gesendet von iPhone mit Tapatalk

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

                        Wenn das Schedule auch bei Skriptstart gesetzt werden soll, ohne dass man anschließend den Zeitpunkt ändern muss, pacck man das ganze in eine Funktion, die sowohl bei Skriptstart als auch bei Startzeitänderung aufgerufen wird. Beispiel für Schedule1:
                        493_blockly_edsteuern_minuten_funktion.jpg

                        1 Reply Last reply Reply Quote 0
                        • G
                          GeorgS last edited by

                          @paul53:

                          Ich habe an 3 Stellen geändert:

                          • zweimal Wert: geändert von Variable in Datenpunkt-Eigenschaft

                          • stop zyklische Ausführung Intervall2: im 2. Block

                          ! ````
                          <block xmlns="http://www.w3.org/1999/xhtml" type="on_ext" id="tzEakSYvsczBQKTDZ*#H" x="488" y="238"><mutation items="1"></mutation>
                          <field name="CONDITION">ne</field>

                          <value name="OID0"><shadow type="field_oid" id="b];8{DmYj]w|gNQv=w,2"><field name="oid">javascript.0.Pool.Filteranlage.Startzeit_2</field></shadow></value>
                          <statement name="STATEMENT"><block type="variables_set" id=",S;J8_Zn={+~=0T)FtnH"><field name="VAR">uhrzeit</field>
                          <value name="VALUE"><block type="lists_split" id="f,p24^vaq7ACQ(30=^Yx"><mutation mode="SPLIT"></mutation>
                          <field name="MODE">SPLIT</field>
                          <value name="INPUT"><block type="on_source" id="0HGo.JkI^mkRAU#i*e4"><field name="ATTR">state.val</field></block></value> <value name="DELIM"><shadow type="text" id="Z_uEO+Fh)/BJmRl[klKf"><field name="TEXT">:</field></shadow> <block type="text" id="^)3qEBA)f8,^4!F,+28:"><field name="TEXT">:</field></block></value></block></value> <next><block type="schedule_clear" id="{V|FbXQ{(rj.j1bU(|Su"><field name="NAME">schedule2</field> <next><block type="schedule_create" id="3Me4AcS^}8KXC)SX:?^J"><field name="NAME">schedule2</field> <value name="SCHEDULE"><shadow type="field_cron" id="+8y!j8q]Sur^hPyYtgi%"><field name="CRON">* * * * *</field></shadow> <block type="cron_builder" id="p~d##YJBzxZ[Oe}k@rUn"><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="os?i*i*Xk-Z{9)Q^k,8o"><field name="TEXT">*</field></shadow></value> <value name="MONTHS"><shadow type="text" id="z_YotHQUg:!EQjBCL%*b"><field name="TEXT">*</field></shadow></value> <value name="DAYS"><shadow type="text" id="P4YD,5]m3Sw*i=fw;0aw"><field name="TEXT">*</field></shadow></value> <value name="HOURS"><shadow type="text" id="y^toRZqL/!F:IrwUX~P5"><field name="TEXT">*</field></shadow> <block type="lists_getIndex" id="eQO9RUa89Yaoy%#fzUdJ"><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="M;le9OQQd;Z.%x/LC^3]"><field name="VAR">uhrzeit</field></block></value> <value name="AT"><block type="math_number" id="DJI4!uu1/9!WROzf+7e}"><field name="NUM">1</field></block></value></block></value> <value name="MINUTES"><shadow type="text" id="*XJ_AGS|ga_k?kCmlZ9g"><field name="TEXT">*</field></shadow> <block type="lists_getIndex" id="H_kg+B7w]d{wo}U!a6|%"><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="F9P*b,pOXA8a!=-ZA!?"><field name="VAR">uhrzeit</field></block></value>
                          <value name="AT"><block type="math_number" id="65b0xa{ifhW(@QjmGzeO"><field name="NUM">2</field></block></value></block></value></block></value>
                          <statement name="STATEMENT"><block type="controls_if" id="/~-#8xq~{1hw,CPypwWY"><value name="IF0"><block type="logic_compare" id="sbT~+5Py)d:Sg3!{^d:G"><field name="OP">EQ</field>
                          <value name="A"><block type="get_value" id="/guqKmfGo[qUc;?oQZoC"><field name="ATTR">val</field>
                          <field name="OID">javascript.0.Pool.Filteranlage.Automatik_an_aus</field></block></value>
                          <value name="B"><block type="logic_boolean" id="drW]vr[bm45cG)HP3J"><field name="BOOL">TRUE</field></block></value></block></value>
                          <statement name="DO0"><block type="variables_set" id="Bk%G[nETvPp.;[jkJwb"><field name="VAR">cnt1</field>
                          <value name="VALUE"><block type="math_number" id=":OQyJiPaj{f49C0bDhO#"><field name="NUM">0</field></block></value>
                          <next><block type="control" id="JNd/uAUOp;4An8ale=8S"><mutation delay_input="false"></mutation>
                          <field name="OID">fritzdect.0.DECT200_087610446720.state</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE"><block type="logic_boolean" id=":Wl~-[W7C?+vLjl~4m:K"><field name="BOOL">TRUE</field></block></value>
                          <next><block type="timeouts_setinterval" id="Jo,9{RFHlwHB7c:hsm]w"><field name="NAME">Intervall2</field>
                          <field name="INTERVAL">1</field>
                          <field name="UNIT">min</field>
                          <statement name="STATEMENT"><block type="math_change" id="GOO~-!Wv-
                          BG6lpQ(js"><field name="VAR">cnt1</field> <value name="DELTA"><shadow type="math_number" id="?v%)-9T?:)2^S)qrM~,*"><field name="NUM">1</field></shadow></value> <next><block type="controls_if" id="/.RfPCKQDpMj~(h550|j"><value name="IF0"><block type="logic_compare" id="4=rUb=SED~!1@^rN9ppx"><field name="OP">EQ</field> <value name="A"><block type="variables_get" id="94n=MgN@*p={Nf|5%Ef2"><field name="VAR">cnt1</field></block></value> <value name="B"><block type="get_value" id="wj~sm?xxSPsu~AI|v_Jd"><field name="ATTR">val</field> <field name="OID">javascript.0.Pool.Filteranlage.Laufzeit_2</field></block></value></block></value> <statement name="DO0"><block type="control" id="8B3Bd*XF*,:C30c2jN}-"><mutation delay_input="false"></mutation> <field name="OID">fritzdect.0.DECT200_087610446720.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="-w6Q@}l15W3/H@{@-]Su"><field name="BOOL">FALSE</field></block></value> <next><block type="timeouts_clearinterval" id="tr!(S]0g/n3)9|aLn9-N"><field name="NAME">Intervall2</field></block></next></block></statement></block></next></block></statement></block></next></block></next></block></statement></block></statement></block></next></block></next></block></statement></block> ````

                          Ich habe zum Test ein neues Skript erstellt und nur diesen Teil eingefügt. Um zu versucht diesen zu Starten ohne Erfolg. Entwerder stimmt was mit meinem io nicht oder ich weiß auch nicht was ich falsch machen 😞

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

                            Wird die Poolpumpe nicht eingeschaltet ? Dann teste bitte, ob es am Skript oder am Datenpunkt "Switch on/off" liegt, indem Du vor beide steuere Switch on/off einen Debug-Baustein einfügst (Texte z.B. "Pumpe ein" und "Pumpe aus").

                            1 Reply Last reply Reply Quote 0
                            • G
                              GeorgS last edited by

                              Also er setzt die Zeit aber danach passiert nix mehr. Habe es auch mal mit eionem Datenpunbkt wie du versucht auch den schaltet er nicht.
                              7208_1.png
                              7208_2.png

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

                                Poste bitte den Javascript-Code (nicht den Blockly-Export) ohne die letzte Zeile.

                                1 Reply Last reply Reply Quote 0
                                • G
                                  GeorgS last edited by

                                  Bitte

                                  ! ````
                                  var uhrzeit, schedule2, cnt1, Intervall2;
                                  ! on({id: 'javascript.0.Pool.Filteranlage.Startzeit_2', change: "ne"}, function (obj) {
                                  var value = obj.state.val;
                                  var oldValue = obj.oldState.val;
                                  console.log((obj.state ? obj.state.val : ""));
                                  uhrzeit = (obj.state ? obj.state.val : "").split(':');
                                  (function () {if (schedule2) {clearSchedule(schedule2); schedule2 = null;}})();
                                  schedule2 = schedule((uhrzeit[1]).trim() + ' ' + (uhrzeit[0]).trim() + ' ' + ''.trim() + ' ' + ''.trim() + ' ' + '*'.trim(), function () {
                                  if (getState("javascript.0.Pool.Filteranlage.Automatik_an_aus").val == true) {
                                  cnt1 = 0;
                                  setState("fritzdect.0.DECT200_087610446720.state"/Switch on/off/, true);
                                  console.log('Pumpe an');
                                  Intervall2 = setInterval(function () {
                                  cnt1 = (typeof cnt1 == 'number' ? cnt1 : 0) + 1;
                                  if (cnt1 == getState("javascript.0.Pool.Filteranlage.Laufzeit_2").val) {
                                  setState("fritzdect.0.DECT200_087610446720.state"/Switch on/off/, false);
                                  (function () {if (Intervall2) {clearInterval(Intervall2); Intervall2 = null;}})();
                                  }
                                  console.log('Pumpe aus');
                                  }, 60000);
                                  }
                                  });
                                  });

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

                                    Der Code ist in Ordnung.

                                    Der Datenpunkt "javascript.0.Pool.Filteranlage.Automatik_an_aus" ist vom Typ "Logikwert" (boolean) und der Wert wird im Reiter "Objekte" durch eine Checkbox geändert ?

                                    Der Datenpunkt "javascript.0.Pool.Filteranlage.Laufzeit_2" ist vom Typ "Zahl" (number) ?

                                    1 Reply Last reply Reply Quote 0
                                    • G
                                      GeorgS last edited by

                                      @paul53:

                                      Der Code ist in Ordnung.

                                      Der Datenpunkt "javascript.0.Pool.Filteranlage.Automatik_an_aus" ist vom Typ "Logikwert" (boolean) und der Wert wird im Reiter "Objekte" durch eine Checkbox geändert ?

                                      Der Datenpunkt "javascript.0.Pool.Filteranlage.Laufzeit_2" ist vom Typ "Zahl" (number) ? `

                                      Ich denke schon…

                                      An/Aus wird über einen kleinen Hacken an/aus gemacht und Start- und Laufzeit werden über Zahlen eingestellt
                                      7208_anaus.png
                                      7208_laufzeit.png
                                      7208_startzeit.png

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

                                        @GeorgS:

                                        An/Aus wird über einen kleinen Hacken an/aus gemacht `
                                        Und der ist true ?
                                        @GeorgS:

                                        Start- und Laufzeit werden über Zahlen eingestellt `
                                        Startzeit ist ein String ! Das hat aber nichts damit zu tun, dass es nicht funktioniert, denn die Startzeit wird manuell eingegeben.

                                        Dann bin ich mit meinem Latein am Ende :shock:

                                        Der von Dir gepostete Blockly-Export läuft bei mir nach den erwähnten Änderungen, die im Javascript-Code richtig enthalten sind.

                                        1 Reply Last reply Reply Quote 0
                                        • G
                                          GeorgS last edited by

                                          @paul53:

                                          @GeorgS:

                                          An/Aus wird über einen kleinen Hacken an/aus gemacht `
                                          Und der ist true ?
                                          @GeorgS:

                                          Start- und Laufzeit werden über Zahlen eingestellt `
                                          Startzeit ist ein String ! Das hat aber nichts damit zu tun, dass es nicht funktioniert, denn die Startzeit wird manuell eingegeben.

                                          Dann bin ich mit meinem Latein am Ende :shock:

                                          Der von Dir gepostete Blockly-Export läuft bei mir nach den erwähnten Änderungen, die im Javascript-Code richtig enthalten sind. `

                                          Js die Automatik ist auf "true" Startzeit wird über das Vis Manuel eingegeben und wird auch im Objekt eingetragen…

                                          Kann es am io Broker oder einem Adapter liegen das das Script bei mir nicht geht?

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

                                            Hallo Paul,

                                            ich habe jetzt nicht nochmal den ganzen Thread gelesen.

                                            wie ich dich kenne ist das Skript vollautomatisiert incl. Anlage der States.

                                            Hast du mal den (Link zum) aktuellen Stand des Blockly incl. Export, bitte?

                                            Dann kann ich das mal reproduzieren

                                            Gruß

                                            Rainer

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            949
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            144
                                            14805
                                            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