Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Wie bekommt man Änderung mit on function und Array mit?

    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

    Wie bekommt man Änderung mit on function und Array mit?

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

      IDs stehen in einem DP. Daraus soll eine Subscription gesetzt werden, um die Änderungen bei allen DPs mitzubekommen.
      javascript 5.6.0, admin 6.1.2
      Mein Versuch, so funktioniert es nicht.

      let iDs =JSON.parse(getState(dpListDPs).val);
      for (let i=0;i<iDs.length;i++){
          log(iDs[i]);
          on({id: iDs[i] , change: "any"}, function (obj){
              log(obj.channelId+' geändert')
          });
      }
      
      Ergebnis:
      16:17:12.998	info	javascript.0 (1684) Start javascript script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach
      16:17:13.641	info	javascript.0 (1684) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.temperature
      16:17:13.642	info	javascript.0 (1684) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: registered 27214 subscriptions and 0 schedules
      
      

      @paul53 ?

      Vielen Dank.

      EDIT: mit diesem funktioniert es bei admin 5.2.3 , javascript 5.2.21
      Diese Version funktionierte beim admin 6.1.2, javascript 5.6.0 nicht.

      let iDDPs =JSON.parse(getState(dpListDPs).val);
      on({id:iDDPs, change:"ne"}, function (obj){
          log(obj.channelId+' geändert')
      });
      
      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @MCU last edited by

        @mcu sagte: funktionierte beim admin 6.1.2, javascript 5.6.0 nicht.

        Das kann ich mit Javascript 5.7.0 nicht nachvollziehen.

        Bild_2022-06-24_175656479.png

        Was ergibt?

        let iDDPs =JSON.parse(getState(dpListDPs).val);
        log(iDDPs);
        
        M 1 Reply Last reply Reply Quote 0
        • M
          MCU @paul53 last edited by MCU

          @paul53 Komischerweise läuft es jetzt mit admin 5.2.3.
          Bekomme jetzt die logs nur 2x?

          17:53:20.454	info	javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.temperature geändert auf 27.33 °C
          17:53:20.455	info	javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.temperature geändert auf 27.33 °C
          17:53:20.518	info	javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.humidity geändert auf 60.03 °C
          17:53:20.519	info	javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.humidity geändert auf 60.03 °C
          17:53:26.060	info	javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.temperature geändert auf 26.88 °C
          17:53:26.060	info	javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.temperature geändert auf 26.88 °C
          17:53:26.089	info	javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.humidity geändert auf 80.05 °C
          17:53:26.089	info	javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.humidity geändert auf 80.05 °C
          
          ['zigbee.0.00158d00025ea1d6.temperature','zigbee.0.00158d00025ea1d6.humidity','zigbee.0.00158d0004607e34.opened']
          

          Habe den admin wieder auf stable gesetzt?

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

            @mcu sagte: Habe den admin wieder auf stable gesetzt?

            Der Javascript-Adapter funktioniert unabhängig vom Admin.

            @mcu sagte in Wie bekommt man Änderung mit on function und Array mit?:

            Bekomme jetzt die logs nur 2x?

            Skript? Laufen 2 gleiche (ähnliche) Skripte parallel?

            M 1 Reply Last reply Reply Quote 0
            • M
              MCU @paul53 last edited by MCU

              @paul53

              if (existsState(dpListDPs)){
              
                  let iDDPs = JSON.parse(getState(dpListDPs).val);
                  log(iDDPs);
                  on({id:iDDPs, change:"ne"}, function (obj){
                      log(obj.id+' geändert auf ' +getState(obj.id).val +' °C');
                  });
              
              }
              

              Jetzt nur noch eine 1. Also irgendetwas war faul?
              c7a11eaa-979e-4a14-bd0e-ec2b7de7eab9-image.png

              Hat der Admin Einfluss auf javascript?

              paul53 2 Replies Last reply Reply Quote 0
              • paul53
                paul53 @MCU last edited by

                @mcu
                Weshalb getState(obj.id).val und nicht obj.state.val? Der Zugriff auf eine existierende Variable ist effizienter als der Funktionsaufruf.

                M 1 Reply Last reply Reply Quote 0
                • M
                  MCU @paul53 last edited by

                  @paul53 Stimmt, korrigiere ich, danke.

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

                    @mcu sagte: Hat der Admin Einfluss auf javascript?

                    Auf die Skriptabarbeitung nicht, höchstens auf die Log-Darstellung.

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      MCU @paul53 last edited by

                      @paul53 Dann war bei mir irgendetwas nicht ok. Nach Neustart funktioniert es. Danke.

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      777
                      Online

                      31.8k
                      Users

                      80.0k
                      Topics

                      1.3m
                      Posts

                      2
                      9
                      392
                      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