Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Script wird zweimal ausgeführt?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Script wird zweimal ausgeführt?

Scheduled Pinned Locked Moved JavaScript
22 Posts 4 Posters 2.2k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 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
    wrote on last edited by
    #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 Reply Last reply
    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 Do not disturb
      T Do not disturb
      ticaki
      wrote on last edited by
      #10

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

      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

      Spenden

      T 1 Reply Last reply
      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
        wrote on last edited by
        #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 Reply Last reply
        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
          wrote on last edited by
          #12

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

          1 Reply Last reply
          0
          • T ticaki

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

            T Offline
            T Offline
            Th3RockYeah
            wrote on last edited by 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 Reply Last reply
            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 Do not disturb
              T Do not disturb
              ticaki
              wrote on last edited by 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 Reply Last reply
              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
                wrote on last edited by
                #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 Reply Last reply
                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 Online
                  A Online
                  Ahnungsbefreit
                  wrote on last edited by
                  #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 Reply Last reply
                  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
                    wrote on last edited by 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 Reply Last reply
                    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 Online
                      A Online
                      Ahnungsbefreit
                      wrote on last edited by
                      #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 Reply Last reply
                      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
                        wrote on last edited by
                        #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 Reply Last reply
                        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 Do not disturb
                          T Do not disturb
                          ticaki
                          wrote on last edited by 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 Reply Last reply
                          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 Online
                            A Online
                            Ahnungsbefreit
                            wrote on last edited by
                            #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 Reply Last reply
                            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 Do not disturb
                              T Do not disturb
                              ticaki
                              wrote on last edited by 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 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              416

                              Online

                              32.7k

                              Users

                              82.4k

                              Topics

                              1.3m

                              Posts
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Home
                              • Recent
                              • Tags
                              • Unread 0
                              • Categories
                              • Unreplied
                              • Popular
                              • GitHub
                              • Docu
                              • Hilfe