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. JavaScript
  5. Script wird zweimal ausgeführt?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

Script wird zweimal ausgeführt?

Geplant Angeheftet Gesperrt Verschoben JavaScript
22 Beiträge 4 Kommentatoren 1.9k Aufrufe 3 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.
  • T Th3RockYeah

    @ticaki Nein, sicher bin ich mir nicht.
    Ich editiere über VScode (Windows) und spiele die Änderung über VScode auf den Pi, dabei wird das Skript beendet und neugestartet. OS ist das neuste Raspberry Pi.
    Ich habe deine Zeile ergänzt und folgendes Log dabei erhalten:

    javascript.0
    2023-08-02 17:11:39.151	info	script.js.common.BewegungsmelderV2: Bewegungsmelder StairsToFirstFloor: Ausgelöst
    javascript.0
    2023-08-02 17:11:39.110	info	script.js.common.BewegungsmelderV2: Bewegungsmelder StairsToFirstFloor: Ausgelöst
    javascript.0
    2023-08-02 17:10:59.288	info	script.js.common.CommonMix: registered 8 subscriptions, 2 schedules, 0 messages, 0 logs and 0 file subscriptions
    javascript.0
    2023-08-02 17:10:59.272	info	script.js.common.CommonMix: 0.4416924518034808
    javascript.0
    2023-08-02 17:10:59.238	info	Start javascript script.js.common.CommonMix
    javascript.0
    2023-08-02 17:10:59.079	info	Stop script script.js.common.CommonMix
    javascript.0
    2023-08-02 17:10:58.914	info	Stop script script.js.common.CommonMix
    

    Beim Übertragen der Änderung schreibt er zweimal stop, dann start des Scripts und es läuft mit der Math.random() Ausgabe, danach gab es wieder zweimal die Ausgabe des Bewegungsmelders.

    Vielleicht sind es auch zwei getrennte Probleme. 1. doppelter Stop beim Beenden des Skripts und 2. die Ausgabe des BewegungsmelderLogs?
    Bei der Ausgabe des Logs vom Bewegungsmelder liegt es vielleicht auch am "any" in der On-Event Methode. Ich bin unsicher, ob das normal ist oder ob eben etwas nicht richtig im IoBroker konfiguriert ist.

      on({id: sensorState(lpSensorState, 'stateMotion'), change: "any", val:true}, function(obj) {...}
    
    T Nicht stören
    T Nicht stören
    ticaki
    schrieb am zuletzt editiert von ticaki
    #8

    @th3rockyeah

    javascript.0
    2023-08-02 17:11:39.151	info	script.js.common.BewegungsmelderV2: Bewegungsmelder StairsToFirstFloor: Ausgelöst
    javascript.0
    2023-08-02 17:11:39.110	info	script.js.common.BewegungsmelderV2: Bewegungsmelder StairsToFirstFloor: Ausgelöst
    

    Das sieht eher nach 2 Aufrufen von on() aus. 2 Skripte sollte keine Pause von 40ms haben. Weiß aber natürlich nicht welcher Betrieb bei dir ist :)

    hm setzt mal:

    log('dp: ' + obj.state.id + ' val: ' + obj.state.val + ' ack: ' + obj.state.ack + ' from: '+obj.state.from)
    

    in on()

    oder einfach

    log(JSON.stringify(obj))
    

    EDIT: Das any hab ich eher im Verdacht, daher die Logausgaben

    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

    Spenden

    T 1 Antwort Letzte Antwort
    0
    • T Th3RockYeah

      @ticaki Nein, sicher bin ich mir nicht.
      Ich editiere über VScode (Windows) und spiele die Änderung über VScode auf den Pi, dabei wird das Skript beendet und neugestartet. OS ist das neuste Raspberry Pi.
      Ich habe deine Zeile ergänzt und folgendes Log dabei erhalten:

      javascript.0
      2023-08-02 17:11:39.151	info	script.js.common.BewegungsmelderV2: Bewegungsmelder StairsToFirstFloor: Ausgelöst
      javascript.0
      2023-08-02 17:11:39.110	info	script.js.common.BewegungsmelderV2: Bewegungsmelder StairsToFirstFloor: Ausgelöst
      javascript.0
      2023-08-02 17:10:59.288	info	script.js.common.CommonMix: registered 8 subscriptions, 2 schedules, 0 messages, 0 logs and 0 file subscriptions
      javascript.0
      2023-08-02 17:10:59.272	info	script.js.common.CommonMix: 0.4416924518034808
      javascript.0
      2023-08-02 17:10:59.238	info	Start javascript script.js.common.CommonMix
      javascript.0
      2023-08-02 17:10:59.079	info	Stop script script.js.common.CommonMix
      javascript.0
      2023-08-02 17:10:58.914	info	Stop script script.js.common.CommonMix
      

      Beim Übertragen der Änderung schreibt er zweimal stop, dann start des Scripts und es läuft mit der Math.random() Ausgabe, danach gab es wieder zweimal die Ausgabe des Bewegungsmelders.

      Vielleicht sind es auch zwei getrennte Probleme. 1. doppelter Stop beim Beenden des Skripts und 2. die Ausgabe des BewegungsmelderLogs?
      Bei der Ausgabe des Logs vom Bewegungsmelder liegt es vielleicht auch am "any" in der On-Event Methode. Ich bin unsicher, ob das normal ist oder ob eben etwas nicht richtig im IoBroker konfiguriert ist.

        on({id: sensorState(lpSensorState, 'stateMotion'), change: "any", val:true}, function(obj) {...}
      
      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #9

      @th3rockyeah sagte: liegt es vielleicht auch am "any"

      Dann versuche mal:

      on({id: sensorState(lpSensorState, 'stateMotion'), change: "gt"}, function(obj) {...}
      

      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

      T 1 Antwort Letzte Antwort
      0
      • T Th3RockYeah

        @ticaki Nein, sicher bin ich mir nicht.
        Ich editiere über VScode (Windows) und spiele die Änderung über VScode auf den Pi, dabei wird das Skript beendet und neugestartet. OS ist das neuste Raspberry Pi.
        Ich habe deine Zeile ergänzt und folgendes Log dabei erhalten:

        javascript.0
        2023-08-02 17:11:39.151	info	script.js.common.BewegungsmelderV2: Bewegungsmelder StairsToFirstFloor: Ausgelöst
        javascript.0
        2023-08-02 17:11:39.110	info	script.js.common.BewegungsmelderV2: Bewegungsmelder StairsToFirstFloor: Ausgelöst
        javascript.0
        2023-08-02 17:10:59.288	info	script.js.common.CommonMix: registered 8 subscriptions, 2 schedules, 0 messages, 0 logs and 0 file subscriptions
        javascript.0
        2023-08-02 17:10:59.272	info	script.js.common.CommonMix: 0.4416924518034808
        javascript.0
        2023-08-02 17:10:59.238	info	Start javascript script.js.common.CommonMix
        javascript.0
        2023-08-02 17:10:59.079	info	Stop script script.js.common.CommonMix
        javascript.0
        2023-08-02 17:10:58.914	info	Stop script script.js.common.CommonMix
        

        Beim Übertragen der Änderung schreibt er zweimal stop, dann start des Scripts und es läuft mit der Math.random() Ausgabe, danach gab es wieder zweimal die Ausgabe des Bewegungsmelders.

        Vielleicht sind es auch zwei getrennte Probleme. 1. doppelter Stop beim Beenden des Skripts und 2. die Ausgabe des BewegungsmelderLogs?
        Bei der Ausgabe des Logs vom Bewegungsmelder liegt es vielleicht auch am "any" in der On-Event Methode. Ich bin unsicher, ob das normal ist oder ob eben etwas nicht richtig im IoBroker konfiguriert ist.

          on({id: sensorState(lpSensorState, 'stateMotion'), change: "any", val:true}, function(obj) {...}
        
        T Nicht stören
        T Nicht stören
        ticaki
        schrieb am zuletzt editiert von
        #10

        @th3rockyeah
        Danke für das... habs jetzt auch auf ssh umgestellt :)

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        T 1 Antwort Letzte Antwort
        0
        • T ticaki

          @th3rockyeah

          javascript.0
          2023-08-02 17:11:39.151	info	script.js.common.BewegungsmelderV2: Bewegungsmelder StairsToFirstFloor: Ausgelöst
          javascript.0
          2023-08-02 17:11:39.110	info	script.js.common.BewegungsmelderV2: Bewegungsmelder StairsToFirstFloor: Ausgelöst
          

          Das sieht eher nach 2 Aufrufen von on() aus. 2 Skripte sollte keine Pause von 40ms haben. Weiß aber natürlich nicht welcher Betrieb bei dir ist :)

          hm setzt mal:

          log('dp: ' + obj.state.id + ' val: ' + obj.state.val + ' ack: ' + obj.state.ack + ' from: '+obj.state.from)
          

          in on()

          oder einfach

          log(JSON.stringify(obj))
          

          EDIT: Das any hab ich eher im Verdacht, daher die Logausgaben

          T Offline
          T Offline
          Th3RockYeah
          schrieb am zuletzt editiert von
          #11

          @ticaki Ich habe deine Ideen einmal in das Skript eingebaut:

          
          javascript.0
          2023-08-02 19:20:30.563	info	script.js.common.BewegungsmelderV2: {"id":"zigbee.0.00158d00042d7b1f.occupancy","newState":{"val":true,"ts":1690996830549,"ack":true,"lc":1690996830502,"from":"system.adapter.zigbee.0","q":0,"user":"system.user.admin"},"oldState":{"val":true,"ts":1690996830502,"ack":true,"lc":1690996830502,"from":"system.adapter.zigbee.0","q":0,"user":"system.user.admin"},"state":{"val":true,"ts":1690996830549,"ack":true,"lc":1690996830502,"from":"system.adapter.zigbee.0","q":0,"user":"system.user.admin"}}
          
          javascript.0
          2023-08-02 19:20:30.512	info	script.js.common.BewegungsmelderV2: Bewegungsmelder StairsToFirstFloor: Ausgelöst, 
          javascript.0
          2023-08-02 19:20:30.509	info	script.js.common.BewegungsmelderV2: dp: undefined val: true ack: true from: system.adapter.zigbee.0
          javascript.0
          2023-08-02 19:20:30.508	info	script.js.common.BewegungsmelderV2: {"id":"zigbee.0.00158d00042d7b1f.occupancy","newState":{"val":true,"ts":1690996830502,"ack":true,"lc":1690996830502,"from":"system.adapter.zigbee.0","q":0,"user":"system.user.admin"},"oldState":{"val":false,"ts":1690995672419,"ack":true,"lc":1690995672419,"from":"system.adapter.zigbee.0","q":0,"user":"system.user.admin"},"state":{"val":true,"ts":1690996830502,"ack":true,"lc":1690996830502,"from":"system.adapter.zigbee.0","q":0,"user":"system.user.admin"}}
          

          Was ich gerade bei dem Test entdeckt habe, ist, dass der neue Aqara Motion Sensor nur einmal feuert und der alte zweimal... Merkwürdig...

          1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @th3rockyeah sagte: liegt es vielleicht auch am "any"

            Dann versuche mal:

            on({id: sensorState(lpSensorState, 'stateMotion'), change: "gt"}, function(obj) {...}
            
            T Offline
            T Offline
            Th3RockYeah
            schrieb am zuletzt editiert von
            #12

            @paul53 Hatte ich schon mal ausprobiert, leider funktionierte die Erkennung des Bewegungsmelder nicht mehr richtig. Ich teste es nachher noch mal.

            1 Antwort Letzte Antwort
            0
            • T ticaki

              @th3rockyeah
              Danke für das... habs jetzt auch auf ssh umgestellt :)

              T Offline
              T Offline
              Th3RockYeah
              schrieb am zuletzt editiert von Th3RockYeah
              #13

              @ticaki :-)
              Hast du jetzt auch das Problem, dass das Skript zweimal gestoppt wird?

              javascript.0
              2023-08-02 17:10:59.079	info	Stop script script.js.common.CommonMix
              javascript.0
              2023-08-02 17:10:58.914	info	Stop script script.js.common.CommonMix
              
              
              T 1 Antwort Letzte Antwort
              0
              • T Th3RockYeah

                @ticaki :-)
                Hast du jetzt auch das Problem, dass das Skript zweimal gestoppt wird?

                javascript.0
                2023-08-02 17:10:59.079	info	Stop script script.js.common.CommonMix
                javascript.0
                2023-08-02 17:10:58.914	info	Stop script script.js.common.CommonMix
                
                
                T Nicht stören
                T Nicht stören
                ticaki
                schrieb am zuletzt editiert von ticaki
                #14

                @th3rockyeah
                jup, ich kann mich erinnern damals einen report zu 2 mal stop und 2 mal start geschrieben zu haben und damals sind die tatsächlich 2 mal gelaufen. 2 mal stop ist doch ok :)

                ups ein Fehler das ist nicht obj.state.id sondern obj.id sry

                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                Spenden

                T 1 Antwort Letzte Antwort
                0
                • T ticaki

                  @th3rockyeah
                  jup, ich kann mich erinnern damals einen report zu 2 mal stop und 2 mal start geschrieben zu haben und damals sind die tatsächlich 2 mal gelaufen. 2 mal stop ist doch ok :)

                  ups ein Fehler das ist nicht obj.state.id sondern obj.id sry

                  T Offline
                  T Offline
                  Th3RockYeah
                  schrieb am zuletzt editiert von
                  #15

                  @ticaki ok. Danke. dann habe ich da schon einmal einen Haken dran.
                  Muss ich jetzt nur noch mal klären, warum der Bewegungsmelder zweimal feuert...

                  Danke erstmal für eure schnelle Hilfe! :-)

                  A 1 Antwort Letzte Antwort
                  0
                  • T Th3RockYeah

                    @ticaki ok. Danke. dann habe ich da schon einmal einen Haken dran.
                    Muss ich jetzt nur noch mal klären, warum der Bewegungsmelder zweimal feuert...

                    Danke erstmal für eure schnelle Hilfe! :-)

                    A Offline
                    A Offline
                    Ahnungsbefreit
                    schrieb am zuletzt editiert von
                    #16

                    @th3rockyeah ich denke mal der löst einmal aus beim Wechsel false-->true und dann umgekehrt. Lass doch mal den Wert im Log ausgeben, dann siehst Du das

                    Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • A Ahnungsbefreit

                      @th3rockyeah ich denke mal der löst einmal aus beim Wechsel false-->true und dann umgekehrt. Lass doch mal den Wert im Log ausgeben, dann siehst Du das

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

                      @ahnungsbefreit sagte: Wert im Log ausgeben

                      Das hat @Th3RockYeah bereits hier:
                      Einmal false --> true und 55 ms später true --> true.
                      Deshalb sollte er triggern mit

                      change: 'gt'
                      

                      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

                      A 1 Antwort Letzte Antwort
                      1
                      • paul53P paul53

                        @ahnungsbefreit sagte: Wert im Log ausgeben

                        Das hat @Th3RockYeah bereits hier:
                        Einmal false --> true und 55 ms später true --> true.
                        Deshalb sollte er triggern mit

                        change: 'gt'
                        
                        A Offline
                        A Offline
                        Ahnungsbefreit
                        schrieb am zuletzt editiert von
                        #18

                        @paul53 ok, das hatte ich nicht gesehen aber genau darauf wollte ich hinaus, Trigger "any" ist vermutlich die Ursache

                        Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

                        T 1 Antwort Letzte Antwort
                        0
                        • A Ahnungsbefreit

                          @paul53 ok, das hatte ich nicht gesehen aber genau darauf wollte ich hinaus, Trigger "any" ist vermutlich die Ursache

                          T Offline
                          T Offline
                          Th3RockYeah
                          schrieb am zuletzt editiert von
                          #19

                          @ahnungsbefreit, @paul53 Ja trigger "any" ist die Ursache. Wenn ich auf "GT" stelle, schaltet der Bewegungsmelder nicht erneut an, wenn ich im Raum bin und er die Bewegung erfasst. "GT" geht erst, wenn der Bewegungsmelder keine Bewegung mehr registriert.

                          Scheint bei mir aber ggf. ein Logik-Problem zu sein. Ich muss das mehr Debuggen. Auf jeden Fall DANKE für euren Input!!

                          T 1 Antwort Letzte Antwort
                          0
                          • T Th3RockYeah

                            @ahnungsbefreit, @paul53 Ja trigger "any" ist die Ursache. Wenn ich auf "GT" stelle, schaltet der Bewegungsmelder nicht erneut an, wenn ich im Raum bin und er die Bewegung erfasst. "GT" geht erst, wenn der Bewegungsmelder keine Bewegung mehr registriert.

                            Scheint bei mir aber ggf. ein Logik-Problem zu sein. Ich muss das mehr Debuggen. Auf jeden Fall DANKE für euren Input!!

                            T Nicht stören
                            T Nicht stören
                            ticaki
                            schrieb am zuletzt editiert von ticaki
                            #20

                            @th3rockyeah

                            Hatte gerade 12:00 ebenfalls ein doppelt laufendens Skript, das ich jedoch mit restart der Javascript-Instanz entfernen konnte. Ist auch mit dem Code von 11:15 gelaufen. Also ist ein restart der Javascript Instanz nach dem Beenden der Bearbeitung anzuraten.

                            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                            Spenden

                            A 1 Antwort Letzte Antwort
                            0
                            • T ticaki

                              @th3rockyeah

                              Hatte gerade 12:00 ebenfalls ein doppelt laufendens Skript, das ich jedoch mit restart der Javascript-Instanz entfernen konnte. Ist auch mit dem Code von 11:15 gelaufen. Also ist ein restart der Javascript Instanz nach dem Beenden der Bearbeitung anzuraten.

                              A Offline
                              A Offline
                              Ahnungsbefreit
                              schrieb am zuletzt editiert von
                              #21

                              @ticaki das ist eigentlich nicht nötig. Ich habe so etwa 40 Scripte und bearbeitete einige davon öfters und hatte so ein Problem noch nie.

                              Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

                              T 1 Antwort Letzte Antwort
                              0
                              • A Ahnungsbefreit

                                @ticaki das ist eigentlich nicht nötig. Ich habe so etwa 40 Scripte und bearbeitete einige davon öfters und hatte so ein Problem noch nie.

                                T Nicht stören
                                T Nicht stören
                                ticaki
                                schrieb am zuletzt editiert von ticaki
                                #22

                                @ahnungsbefreit
                                Ich hatte das Problem bisher auch ausschließlich mit Skripten die async und await benutzen. Wobei ich jetzt 2 mal in letzter Zeit 100% Auslastung des Javascript Adapters hatte, weil er sich verschluckt hat. Bei eben diesem Skript. Aber auch nur wenn ich beim starten des Skripts die Arbeitsfunktion aufrufe, und gleichzeitig mit extendObject/setObject teste... 2 mal ist aber nicht genug um es an irgendwas fest zu machen.

                                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                Spenden

                                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

                                397

                                Online

                                32.4k

                                Benutzer

                                81.5k

                                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