Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst]Objektdaten von einer Instanz in die andere kopieren

    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

    [gelöst]Objektdaten von einer Instanz in die andere kopieren

    This topic has been deleted. Only users with topic management privileges can see it.
    • coyote
      coyote Most Active last edited by coyote

      Hallo,
      ich müsste von einer Modbus Instanz die Daten verschiedener Objekte in eine zweite Modbus Instanz kopieren.

      on('modbus.0.inputRegisters.2.30001_L1-N'/*30001 L1-n*/, function(){
         setState('modbus.1.inputRegisters.30001_L1'/*30001 L1*/, getState('modbus.0.inputRegisters.2.30001_L1-N').val);
      });
      

      So funktioniert das zwar, aber ich müsste das 76 Mal machen. Geht das nicht einfacher?
      Die Register fangen bei 30001 an bis 30381, leider nicht in 2er Schritten wie ich gehofft habe. Es sind immer mal wieder größere Sprünge drin z.B. 30269 dann kommt 30335

      Kann ich das einfacher lösen mit javascript?

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

        @coyote sagte: Geht das nicht einfacher?

        Problem: Die IDs unterscheiden sich nicht nur in der Instanz, sondern auch am Ende. Ist der Unterschied am Ende immer identisch?

        coyote 1 Reply Last reply Reply Quote 0
        • coyote
          coyote Most Active @paul53 last edited by

          @paul53 das wäre kein Problem, das hier war nur zum Testen. Das könnte ich schon abgleichen. So dann:

          on('modbus.0.inputRegisters.2.30001_L1-N', function(){
          
             setState('modbus.1.inputRegisters.30001_L1-N', getState('modbus.0.inputRegisters.2.30001_L1-N').val);
          
          });
          
          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @coyote last edited by paul53

            @coyote sagte: Kann ich das einfacher lösen mit javascript?

            Mittels RegExp:

            on(/^modbus\.0\.inputRegisters\.2\.30.+/, function(dp) {
                let idDst = dp.id.replace('modbus.0.inputRegisters.2', 'modbus.1.inputRegisters');
                setState(idDst, dp.state.val);
            });
            
            coyote 1 Reply Last reply Reply Quote 1
            • coyote
              coyote Most Active @paul53 last edited by

              @paul53 wie immer ein Dank an Dich. Musste es nur etwas korrigieren, da in der zweiten Instanz der Unterordner "2" nicht vorhanden ist. Das ist die ID des Modbus Gerätes und das hab ich in der zweiten Instanz nicht, da Slave.

              on(/^modbus\.0\.inputRegisters\.2\.30.+/, function(dp) {
              
                  let idDst = dp.id.replace('modbus.0.inputRegisters.2', 'modbus.1.inputRegisters');
              
                  setState(idDst, dp.state.val);
              
              });
              
              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @coyote last edited by

                @coyote sagte: korrigieren, da in der zweiten Instanz der Unterordner "2" nicht vorhanden ist.

                Das hatte ich inzwischen auch registriert und korrigiert.

                coyote 1 Reply Last reply Reply Quote 0
                • coyote
                  coyote Most Active @paul53 last edited by

                  @paul53 hatte ich nicht gesehen. Danke Dir

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  871
                  Online

                  31.9k
                  Users

                  80.1k
                  Topics

                  1.3m
                  Posts

                  javascript
                  2
                  7
                  268
                  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