Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Error/Bug
    4. Javascript - doppelte Ausführung von Scripten

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Javascript - doppelte Ausführung von Scripten

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

      Hallo Gemeinde

      Aktuell passiert es hier das Scripte zweimal hintereinander abgearbeitet werden.

      So kommen sayit Texte über Sonos 2 mal in folge. Aber auch Schaltaktionen mit HM Komponenten werden 2 mal abgearbeitet.

      z.B. es gibt ein Script in dem ein Bewegungsmelder einen Schaltaktor toggelt und nach 1000ms zurück toggelt.

      Wenn der Bewegungsmelder auslöst höre ich normalerweise klack –- klack. Mittlerweile höre ich klack --- klack-klack --- klack.

      Wenn ich den Javascript Adapter neu starte ist für 4-5 Tage alles OK, dann fängt das doppelt ausführen wieder an.

      Gibt es da - ausser den Adapter per Cron regelmässig neu zu starten- einen Stellschraube an der ich drehen kann?

      1 Reply Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active last edited by

        wat hör ich zum ersten mal.. ich habe unzählige Scripte laufen.. ohne dass diese 2 mal ausgeführt werden.. und mein Pi rennt manchmal Wochenlang..

        1 Reply Last reply Reply Quote 0
        • AlCalzone
          AlCalzone Developer last edited by

          Hast du mal ein Beispielskript mit dem das auftritt? Eventuell liegt es ja an deinem Code.

          1 Reply Last reply Reply Quote 0
          • L
            Linedancer last edited by

            Na klar, hier der Blockly Export.

            Einfacher geht's ja kaum:

             <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on" id="hT;GJ~fjM7|ThoXeV8[U" x="37" y="13"><field name="OID">hm-rpc.0.MEQ1849371.3.MOTION</field>
                <field name="CONDITION">ne</field>
            
                <statement name="STATEMENT"><block type="controls_if" id="4oqT?{Hb#hBnv@g)4Aco"><value name="IF0"><block type="logic_compare" id="v-pM/7T%BWW68i81[.[H"><field name="OP">EQ</field>
                        <value name="A"><block type="get_value" id="Qok0AE7Dy[=-()j:M13#"><field name="ATTR">val</field>
                            <field name="OID">hm-rpc.0.MEQ1849371.3.MOTION</field></block></value> 
                        <value name="B"><block type="logic_boolean" id="i!iE]bKPj:z1X5+2zB*c"><field name="BOOL">TRUE</field></block></value></block></value> 
                    <statement name="DO0"><block type="control" id="4R(@t59#XCK[+LZ_!t51"><mutation delay_input="false"></mutation>
                        <field name="OID">hm-rpc.1.CUX0200006.1.TOGGLE</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE"><block type="logic_boolean" id="MD-{YDe2,0Z~BbLI2LVn"><field name="BOOL">TRUE</field></block></value> 
                        <next><block type="control" id="{h^uHFL*!XA/G=[884#V"><mutation delay_input="true"></mutation>
                            <field name="OID">hm-rpc.1.CUX0200006.1.TOGGLE</field>
                            <field name="WITH_DELAY">TRUE</field>
                            <field name="DELAY_MS">1000</field>
                            <field name="UNIT">ms</field>
                            <field name="CLEAR_RUNNING">FALSE</field>
                            <value name="VALUE"><block type="logic_boolean" id="C8~GAaI{^Mh}PEES7Rrx"><field name="BOOL">FALSE</field></block></value></block></next></block></statement></block></statement></block></xml> 
            
            1 Reply Last reply Reply Quote 0
            • AlCalzone
              AlCalzone Developer last edited by

              Danke, aber ich bin nicht so der Blockly-Typ. Schon gar nicht wenns um den rohen XML-Code geht 😄

              Geht auch ein Screenshot?

              1 Reply Last reply Reply Quote 0
              • L
                Linedancer last edited by

                Auch das:

                Hier der Code den Blockly erzeugt:

                on({id: "hm-rpc.0.MEQ1849371.3.MOTION"/*Bewegung-OG_Flur.MOTION*/, change: "ne"}, function (obj) {
                  var value = obj.state.val;
                  var oldValue = obj.oldState.val;
                  if (getState("hm-rpc.0.MEQ1849371.3.MOTION").val == true) {
                    setState("hm-rpc.1.CUX0200006.1.TOGGLE"/*OG_Flur_Wandtablet.TOGGLE*/, true);
                    setStateDelayed("hm-rpc.1.CUX0200006.1.TOGGLE"/*OG_Flur_Wandtablet.TOGGLE*/, false, 1000, false);
                  }
                });
                

                Screenshot kommt noch

                1 Reply Last reply Reply Quote 0
                • L
                  Linedancer last edited by

                  So, hier der Screenshot:
                  1564_2017-08-03.png

                  1 Reply Last reply Reply Quote 0
                  • D
                    dna909 last edited by

                    Liegt das Script unter "Global"??

                    Wenn ja, nimm es da raus. Hatte ich glaub ich zum Anfang auch mal.

                    MfG

                    dna909

                    1 Reply Last reply Reply Quote 0
                    • L
                      Linedancer last edited by

                      Ne, da liegts nicht. Unter "global" hab ich gar nix.

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

                        Ich hab das auch seit ein paar Tagen so ähnlich.

                        Zuerst kann man wohl hiermit checken ob was doppelt läuft:

                        ps -A | grep io
                        

                        Ist bei mir nicht der Fall.

                        Bei mir läuft das Script parallel auf instanz.1, obwohl das script auf instanz.0 gestellt ist. Ich habe mal in Vergangenheit zum Testen die Instanz gewechselt. Das bleibt irgendwo noch gespeichert. Nur wo? Deswegen will das Script nicht mehr laufen. Hatte ich monatelang ohne Probleme am Laufen.

                        javascript.1	2017-08-03 13:59:15.483	info	Stop script script.js.common.Telegram.Cam2_motion
                        javascript.0	2017-08-03 13:59:15.483	info	Stop script script.js.common.Telegram.Cam2_motion
                        javascript.0	2017-08-03 13:59:14.561	info	Stop script script.js.common.Telegram.Cam2_motion
                        
                        1 Reply Last reply Reply Quote 0
                        • AlCalzone
                          AlCalzone Developer last edited by

                          @lobomau:

                          Bei mir läuft das Script parallel auf instanz.1, obwohl das script auf instanz.0 gestellt ist. `
                          @Linedancer hast du mehrere Instanzen vom JavaScript-Adapter?

                          Das könnte erklären, warum ich solche Probleme noch nicht hatte. Ich habe nur eine Instanz.

                          1 Reply Last reply Reply Quote 0
                          • R
                            RappiRN Most Active last edited by

                            Stell mal bei "ist anerkannt" auf bestätigt, oder was da noch zur Auswahl steht. So, wie das bei dir steht, kommt eine Ansage beim Ändern des Datenpunktes und eine Ansage beim Bestätigen durch die CCU.

                            Enrico

                            1 Reply Last reply Reply Quote 0
                            • L
                              Linedancer last edited by

                              Ne, hab nur eine Instanz laufen.

                              @ RappiRN

                              Das klingt interessant, wird ausprobiert. Würde aber nicht erklären warum das Problem erst nach ein paar Tagen auftaucht und nach Adapter Neustart erstmal verschwindet.

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

                                @AlCalzone:

                                @Linedancer hast du mehrere Instanzen vom JavaScript-Adapter?

                                Das könnte erklären, warum ich solche Probleme noch nicht hatte. Ich habe nur eine Instanz. `
                                Ich habe auch zwei Instanzen.

                                0 = produktiv

                                1 = testen

                                Ich probiere und teste etliches aus. Nachdem ich mir schon einigemale Instanz 0 abgeschossen habe, teste ich nur noch in Instanz 1.

                                Dopplungen habe ich noch nie gehabt.

                                Grüße

                                1 Reply Last reply Reply Quote 0
                                • arteck
                                  arteck Developer Most Active last edited by

                                  @rantanplan:

                                  @AlCalzone:

                                  @Linedancer hast du mehrere Instanzen vom JavaScript-Adapter?

                                  Das könnte erklären, warum ich solche Probleme noch nicht hatte. Ich habe nur eine Instanz. `
                                  Ich habe auch zwei Instanzen.

                                  0 = produktiv

                                  1 = testen

                                  Ich probiere und teste etliches aus. Nachdem ich mir schon einigemale Instanz 0 abgeschossen habe, teste ich nur noch in Instanz 1.

                                  Dopplungen habe ich noch nie gehabt.

                                  Grüße `

                                  ditto ich nutze auch 2 instanzen ..

                                  und bis dato keine Probleme mit doppelung..

                                  was ich mir mal eingebaut habe ist … ein Script setzt die variabe und ein anderes der einmal die woche läuft setzte die wieder um .. da suchst du dir nen wolf..

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

                                    @arteck:

                                    was ich mir mal eingebaut habe ist … ein Script setzt die variabe und ein anderes der einmal die woche läuft setzte die wieder um .. da suchst du dir nen wolf.. `
                                    Das wäre so ein Wunsch… nach allen Scripten/Programmen suchen wo eine bestimmte Variable, State vorkommt... so wie bei homematic.

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

                                      Ja genau. Diesen Wunsch der globalen Suche hätte ich auch. Ich glaube das wurde auch irgendwo hier im Forum schon mal angesprochen.

                                      Wäre mir wesentlich lieber als das ganze Alexa, Cloud und sonstwie Zeugs 😉 Soll aber keine Kritik an Bluefox & Co. sein. Ich wollte mich nur mal outen als jemand für den der ganze SocialMedia-Kram noch nicht lebenswichtig ist 😉

                                      1 Reply Last reply Reply Quote 0
                                      • arteck
                                        arteck Developer Most Active last edited by

                                        als workaround

                                        exportiere alle Scripte.. diese liegen dann in txt format..

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

                                          Das mit dem Exportieren ist schon klar. Aber auch wenn ich ein Dino bin 😉 dieser Weg ist wohl dann doch mehr als mittelalterlich

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

                                            Ich finde die Idee erstmal gar nicht schlecht mit dem Export. Habe ich gemacht. Alle Dateien sind aber .json!?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            883
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            22
                                            2380
                                            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