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.3k

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) {...}
    
    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

                              427

                              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